Patch from Stefan Matthias Aust:

Change arguments to format() and friends from String to Object in
order to be better able to handle null and undefined.
This commit is contained in:
hns 2003-07-29 12:39:01 +00:00
parent 4485040fb3
commit f0d4c51ef6

View file

@ -150,7 +150,7 @@ public class GlobalObject extends ScriptableObject {
if (defvalue == Undefined.instance) {
return app.getProperty(propname);
} else {
return app.getProperty(propname, defvalue.toString());
return app.getProperty(propname, toString(defvalue));
}
}
@ -260,8 +260,8 @@ public class GlobalObject extends ScriptableObject {
mime.eTag = etag;
return Context.toObject(mime, this);
} catch (Exception ignore) {
System.err.println ("EXCEPT: "+ignore);
} catch (Exception xcept) {
System.err.println ("Error in getURL(): "+xcept);
}
return null;
@ -274,8 +274,8 @@ public class GlobalObject extends ScriptableObject {
*
* @return ...
*/
public String encode(String str) {
return HtmlEncoder.encodeAll(str);
public String encode(Object obj) {
return HtmlEncoder.encodeAll(toString(obj));
}
/**
@ -285,8 +285,8 @@ public class GlobalObject extends ScriptableObject {
*
* @return ...
*/
public String encodeXml(String str) {
return HtmlEncoder.encodeXml(str);
public String encodeXml(Object obj) {
return HtmlEncoder.encodeXml(toString(obj));
}
/**
@ -296,8 +296,8 @@ public class GlobalObject extends ScriptableObject {
*
* @return ...
*/
public String encodeForm(String str) {
return HtmlEncoder.encodeFormValue(str);
public String encodeForm(Object obj) {
return HtmlEncoder.encodeFormValue(toString(obj));
}
/**
@ -307,8 +307,8 @@ public class GlobalObject extends ScriptableObject {
*
* @return ...
*/
public String format(String str) {
return HtmlEncoder.encode(str);
public String format(Object obj) {
return HtmlEncoder.encode(toString(obj));
}
/**
@ -375,4 +375,13 @@ public class GlobalObject extends ScriptableObject {
return str;
}
private static String toString(Object obj) {
if (obj == null || obj == Undefined.instance) {
// Note: we might return "" here in order
// to handle null/undefined as empty string
return null;
}
return Context.toString(obj);
}
}