Changeset 2783 in webkit for trunk/JavaScriptCore/kjs/regexp_object.cpp
- Timestamp:
- Nov 20, 2002, 1:12:14 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/regexp_object.cpp
r2766 r2783 41 41 ObjectPrototypeImp *objProto, 42 42 FunctionPrototypeImp *funcProto) 43 : ObjectImp( Object(objProto))43 : ObjectImp(objProto) 44 44 { 45 45 Value protect(this); … … 48 48 // The constructor will be added later in RegExpObject's constructor (?) 49 49 50 put(exec, "exec", Object(new RegExpProtoFuncImp(exec,funcProto,RegExpProtoFuncImp::Exec, 0)), DontEnum); 51 put(exec, "test", Object(new RegExpProtoFuncImp(exec,funcProto,RegExpProtoFuncImp::Test, 0)), DontEnum); 52 put(exec, toStringPropertyName, Object(new RegExpProtoFuncImp(exec,funcProto,RegExpProtoFuncImp::ToString, 0)), DontEnum); 50 static const Identifier execPropertyName("exec"); 51 putDirect(execPropertyName, new RegExpProtoFuncImp(exec,funcProto,RegExpProtoFuncImp::Exec, 0), DontEnum); 52 static const Identifier testPropertyName("test"); 53 putDirect(testPropertyName, new RegExpProtoFuncImp(exec,funcProto,RegExpProtoFuncImp::Test, 0), DontEnum); 54 putDirect(toStringPropertyName, new RegExpProtoFuncImp(exec,funcProto,RegExpProtoFuncImp::ToString, 0), DontEnum); 53 55 } 54 56 … … 60 62 { 61 63 Value protect(this); 62 put (exec,lengthPropertyName,Number(len),DontDelete|ReadOnly|DontEnum);64 putDirect(lengthPropertyName, len, DontDelete|ReadOnly|DontEnum); 63 65 } 64 66 … … 138 140 139 141 RegExpImp::RegExpImp(RegExpPrototypeImp *regexpProto) 140 : ObjectImp( Object(regexpProto)), reg(0L)142 : ObjectImp(regexpProto), reg(0L) 141 143 { 142 144 } … … 157 159 Value protect(this); 158 160 // ECMA 15.10.5.1 RegExp.prototype 159 put (exec,prototypePropertyName, Object(regProto), DontEnum|DontDelete|ReadOnly);161 putDirect(prototypePropertyName, regProto, DontEnum|DontDelete|ReadOnly); 160 162 161 163 // no. of arguments for constructor 162 put (exec,lengthPropertyName, Number(2), ReadOnly|DontDelete|DontEnum);164 putDirect(lengthPropertyName, NumberImp::two(), ReadOnly|DontDelete|DontEnum); 163 165 } 164 166 … … 222 224 Object RegExpObjectImp::construct(ExecState *exec, const List &args) 223 225 { 224 String p = args.isEmpty() ? UString("") : args[0].toString(exec);226 UString p = args.isEmpty() ? UString("") : args[0].toString(exec); 225 227 UString flags = args[1].toString(exec); 226 228 … … 234 236 // TODO: throw a syntax error on invalid flags 235 237 236 dat->put (exec, "global", Boolean(global));237 dat->put (exec, "ignoreCase", Boolean(ignoreCase));238 dat->put (exec, "multiline", Boolean(multiline));239 240 dat->put (exec, "source", p);241 dat->put (exec, "lastIndex", Number(0), DontDelete | DontEnum);238 dat->putDirect("global", global ? BooleanImp::staticTrue : BooleanImp::staticFalse); 239 dat->putDirect("ignoreCase", ignoreCase ? BooleanImp::staticTrue : BooleanImp::staticFalse); 240 dat->putDirect("multiline", multiline ? BooleanImp::staticTrue : BooleanImp::staticFalse); 241 242 dat->putDirect("source", new StringImp(p)); 243 dat->putDirect("lastIndex", NumberImp::zero(), DontDelete | DontEnum); 242 244 243 245 int reflags = RegExp::None; … … 248 250 if (multiline) 249 251 reflags |= RegExp::Multiline; 250 dat->setRegExp(new RegExp(p .value(), reflags));252 dat->setRegExp(new RegExp(p, reflags)); 251 253 252 254 return obj;
Note:
See TracChangeset
for help on using the changeset viewer.