}
}
re = newRE(pattern,flags);
- put("source",pattern);
- put("global",wrapBool(global));
- put("ignoreCase",wrapBool(flags & RE.REG_ICASE));
- put("multiline",wrapBool(flags & RE.REG_MULTILINE));
+ _put("source",pattern);
+ _put("global",wrapBool(global));
+ _put("ignoreCase",wrapBool(flags & RE.REG_ICASE));
+ _put("multiline",wrapBool(flags & RE.REG_MULTILINE));
}
// FIXME: Do whatever we need to do to take advantage of the GETCALL bytecode when its available
final JS.Callable execFN = new JS.Callable() { public Object call(JS.Array args) { return exec(args); } };
final JS.Callable testFN = new JS.Callable() { public Object call(JS.Array args) { return test(args); } };
final JS.Callable toStringFN = new JS.Callable() { public Object call(JS.Array args) { return Regexp.this.toString(); } };
- put("exec",execFN);
- put("test",testFN);
- put("toString",toStringFN);
+ _put("exec",execFN);
+ _put("test",testFN);
+ _put("toString",toStringFN);
}
- public Object get(Object key) {
+ // gcj bug...
+ public Object get(Object key) { return _get(key); }
+ public void put(Object key,Object value) { _put(key,value); }
+
+ public Object _get(Object key) {
if(key.equals("lastIndex")) return new Integer(lastIndex);
return super.get(key);
}
- public void put(Object key, Object value) {
+ public void _put(Object key, Object value) {
if(key.equals("lastIndex")) lastIndex = JS.toNumber(value).intValue();
super.put(key,value);
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append('/');
- sb.append(get("source"));
+ sb.append(_get("source"));
sb.append('/');
if(global) sb.append('g');
- if(Boolean.TRUE.equals(get("ignoreCase"))) sb.append('i');
- if(Boolean.TRUE.equals(get("multiline"))) sb.append('m');
+ if(Boolean.TRUE.equals(_get("ignoreCase"))) sb.append('i');
+ if(Boolean.TRUE.equals(_get("multiline"))) sb.append('m');
return sb.toString();
}