Changeset 44076 in webkit for trunk/JavaScriptCore/runtime/JSGlobalObject.cpp
- Timestamp:
- May 22, 2009, 6:48:32 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/JSGlobalObject.cpp
r43226 r44076 171 171 JSValue valueAfter = getDirect(propertyName); 172 172 if (valueAfter) 173 putDirect(propertyName, valueAfter, attributes);173 JSObject::putWithAttributes(exec, propertyName, valueAfter, attributes); 174 174 } 175 175 } … … 240 240 d()->regExpStructure = RegExpObject::createStructure(d()->regExpPrototype); 241 241 242 d()->methodCallDummy = constructEmptyObject(exec); 243 242 244 ErrorPrototype* errorPrototype = new (exec) ErrorPrototype(exec, ErrorPrototype::createStructure(d()->objectPrototype), d()->prototypeFunctionStructure.get()); 243 245 d()->errorStructure = ErrorInstance::createStructure(errorPrototype); … … 254 256 // Constructors 255 257 256 JS ValueobjectConstructor = new (exec) ObjectConstructor(exec, ObjectConstructor::createStructure(d()->functionPrototype), d()->objectPrototype);257 JS ValuefunctionConstructor = new (exec) FunctionConstructor(exec, FunctionConstructor::createStructure(d()->functionPrototype), d()->functionPrototype);258 JS ValuearrayConstructor = new (exec) ArrayConstructor(exec, ArrayConstructor::createStructure(d()->functionPrototype), d()->arrayPrototype);259 JS ValuestringConstructor = new (exec) StringConstructor(exec, StringConstructor::createStructure(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->stringPrototype);260 JS ValuebooleanConstructor = new (exec) BooleanConstructor(exec, BooleanConstructor::createStructure(d()->functionPrototype), d()->booleanPrototype);261 JS ValuenumberConstructor = new (exec) NumberConstructor(exec, NumberConstructor::createStructure(d()->functionPrototype), d()->numberPrototype);262 JS ValuedateConstructor = new (exec) DateConstructor(exec, DateConstructor::createStructure(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->datePrototype);258 JSCell* objectConstructor = new (exec) ObjectConstructor(exec, ObjectConstructor::createStructure(d()->functionPrototype), d()->objectPrototype); 259 JSCell* functionConstructor = new (exec) FunctionConstructor(exec, FunctionConstructor::createStructure(d()->functionPrototype), d()->functionPrototype); 260 JSCell* arrayConstructor = new (exec) ArrayConstructor(exec, ArrayConstructor::createStructure(d()->functionPrototype), d()->arrayPrototype); 261 JSCell* stringConstructor = new (exec) StringConstructor(exec, StringConstructor::createStructure(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->stringPrototype); 262 JSCell* booleanConstructor = new (exec) BooleanConstructor(exec, BooleanConstructor::createStructure(d()->functionPrototype), d()->booleanPrototype); 263 JSCell* numberConstructor = new (exec) NumberConstructor(exec, NumberConstructor::createStructure(d()->functionPrototype), d()->numberPrototype); 264 JSCell* dateConstructor = new (exec) DateConstructor(exec, DateConstructor::createStructure(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->datePrototype); 263 265 264 266 d()->regExpConstructor = new (exec) RegExpConstructor(exec, RegExpConstructor::createStructure(d()->functionPrototype), d()->regExpPrototype); … … 275 277 d()->URIErrorConstructor = new (exec) NativeErrorConstructor(exec, nativeErrorStructure, URIErrorPrototype); 276 278 277 d()->objectPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, objectConstructor, DontEnum);278 d()->functionPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, functionConstructor, DontEnum);279 d()->arrayPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, arrayConstructor, DontEnum);280 d()->booleanPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, booleanConstructor, DontEnum);281 d()->stringPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, stringConstructor, DontEnum);282 d()->numberPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, numberConstructor, DontEnum);283 d()->datePrototype->putDirect WithoutTransition(exec->propertyNames().constructor, dateConstructor, DontEnum);284 d()->regExpPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, d()->regExpConstructor, DontEnum);285 errorPrototype->putDirect WithoutTransition(exec->propertyNames().constructor, d()->errorConstructor, DontEnum);279 d()->objectPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, objectConstructor, DontEnum); 280 d()->functionPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, functionConstructor, DontEnum); 281 d()->arrayPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, arrayConstructor, DontEnum); 282 d()->booleanPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, booleanConstructor, DontEnum); 283 d()->stringPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, stringConstructor, DontEnum); 284 d()->numberPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, numberConstructor, DontEnum); 285 d()->datePrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, dateConstructor, DontEnum); 286 d()->regExpPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, d()->regExpConstructor, DontEnum); 287 errorPrototype->putDirectFunctionWithoutTransition(exec->propertyNames().constructor, d()->errorConstructor, DontEnum); 286 288 287 289 evalErrorPrototype->putDirect(exec->propertyNames().constructor, d()->evalErrorConstructor, DontEnum); … … 296 298 // FIXME: These properties could be handled by a static hash table. 297 299 298 putDirect WithoutTransition(Identifier(exec, "Object"), objectConstructor, DontEnum);299 putDirect WithoutTransition(Identifier(exec, "Function"), functionConstructor, DontEnum);300 putDirect WithoutTransition(Identifier(exec, "Array"), arrayConstructor, DontEnum);301 putDirect WithoutTransition(Identifier(exec, "Boolean"), booleanConstructor, DontEnum);302 putDirect WithoutTransition(Identifier(exec, "String"), stringConstructor, DontEnum);303 putDirect WithoutTransition(Identifier(exec, "Number"), numberConstructor, DontEnum);304 putDirect WithoutTransition(Identifier(exec, "Date"), dateConstructor, DontEnum);305 putDirect WithoutTransition(Identifier(exec, "RegExp"), d()->regExpConstructor, DontEnum);306 putDirect WithoutTransition(Identifier(exec, "Error"), d()->errorConstructor, DontEnum);307 putDirect WithoutTransition(Identifier(exec, "EvalError"), d()->evalErrorConstructor);308 putDirect WithoutTransition(Identifier(exec, "RangeError"), d()->rangeErrorConstructor);309 putDirect WithoutTransition(Identifier(exec, "ReferenceError"), d()->referenceErrorConstructor);310 putDirect WithoutTransition(Identifier(exec, "SyntaxError"), d()->syntaxErrorConstructor);311 putDirect WithoutTransition(Identifier(exec, "TypeError"), d()->typeErrorConstructor);312 putDirect WithoutTransition(Identifier(exec, "URIError"), d()->URIErrorConstructor);300 putDirectFunctionWithoutTransition(Identifier(exec, "Object"), objectConstructor, DontEnum); 301 putDirectFunctionWithoutTransition(Identifier(exec, "Function"), functionConstructor, DontEnum); 302 putDirectFunctionWithoutTransition(Identifier(exec, "Array"), arrayConstructor, DontEnum); 303 putDirectFunctionWithoutTransition(Identifier(exec, "Boolean"), booleanConstructor, DontEnum); 304 putDirectFunctionWithoutTransition(Identifier(exec, "String"), stringConstructor, DontEnum); 305 putDirectFunctionWithoutTransition(Identifier(exec, "Number"), numberConstructor, DontEnum); 306 putDirectFunctionWithoutTransition(Identifier(exec, "Date"), dateConstructor, DontEnum); 307 putDirectFunctionWithoutTransition(Identifier(exec, "RegExp"), d()->regExpConstructor, DontEnum); 308 putDirectFunctionWithoutTransition(Identifier(exec, "Error"), d()->errorConstructor, DontEnum); 309 putDirectFunctionWithoutTransition(Identifier(exec, "EvalError"), d()->evalErrorConstructor); 310 putDirectFunctionWithoutTransition(Identifier(exec, "RangeError"), d()->rangeErrorConstructor); 311 putDirectFunctionWithoutTransition(Identifier(exec, "ReferenceError"), d()->referenceErrorConstructor); 312 putDirectFunctionWithoutTransition(Identifier(exec, "SyntaxError"), d()->syntaxErrorConstructor); 313 putDirectFunctionWithoutTransition(Identifier(exec, "TypeError"), d()->typeErrorConstructor); 314 putDirectFunctionWithoutTransition(Identifier(exec, "URIError"), d()->URIErrorConstructor); 313 315 314 316 // Set global values. … … 388 390 markIfNeeded(d()->regExpPrototype); 389 391 392 markIfNeeded(d()->methodCallDummy); 393 390 394 markIfNeeded(d()->errorStructure); 391 395
Note:
See TracChangeset
for help on using the changeset viewer.