if (v.equals("length")) return new Integer(((String)o).length());
else if (v.equals("substring")) return new JS.Callable() {
public Object call(JS.Array args) {
if (args.length() == 1) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue());
else if (args.length() == 2) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue(),
JS.toNumber(args.elementAt(1)).intValue());
if (v.equals("length")) return new Integer(((String)o).length());
else if (v.equals("substring")) return new JS.Callable() {
public Object call(JS.Array args) {
if (args.length() == 1) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue());
else if (args.length() == 2) return ((String)o).substring(JS.toNumber(args.elementAt(0)).intValue(),
JS.toNumber(args.elementAt(1)).intValue());
if (args.length() != 1) return null;
return new Integer(((String)o).indexOf(args.elementAt(0).toString()));
} };
if (args.length() != 1) return null;
return new Integer(((String)o).indexOf(args.elementAt(0).toString()));
} };