Changeset 38440 in webkit for trunk/JavaScriptCore/runtime/JSGlobalObject.cpp
- Timestamp:
- Nov 15, 2008, 8:40:06 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/runtime/JSGlobalObject.cpp
r38423 r38440 85 85 } 86 86 87 static inline void markIfNeeded(const RefPtr<Structure ID>& s)87 static inline void markIfNeeded(const RefPtr<Structure>& s) 88 88 { 89 89 if (s) … … 201 201 // Prototypes 202 202 203 d()->functionPrototype = new (exec) FunctionPrototype(exec, FunctionPrototype::createStructure ID(jsNull())); // The real prototype will be set once ObjectPrototype is created.204 d()->prototypeFunctionStructure = PrototypeFunction::createStructure ID(d()->functionPrototype);203 d()->functionPrototype = new (exec) FunctionPrototype(exec, FunctionPrototype::createStructure(jsNull())); // The real prototype will be set once ObjectPrototype is created. 204 d()->prototypeFunctionStructure = PrototypeFunction::createStructure(d()->functionPrototype); 205 205 d()->functionPrototype->addFunctionProperties(exec, d()->prototypeFunctionStructure.get()); 206 d()->objectPrototype = new (exec) ObjectPrototype(exec, ObjectPrototype::createStructure ID(jsNull()), d()->prototypeFunctionStructure.get());207 d()->functionPrototype->structure ID()->setPrototypeWithoutTransition(d()->objectPrototype);206 d()->objectPrototype = new (exec) ObjectPrototype(exec, ObjectPrototype::createStructure(jsNull()), d()->prototypeFunctionStructure.get()); 207 d()->functionPrototype->structure()->setPrototypeWithoutTransition(d()->objectPrototype); 208 208 209 209 d()->emptyObjectStructure = d()->objectPrototype->inheritorID(); 210 210 211 d()->functionStructure = JSFunction::createStructure ID(d()->functionPrototype);212 d()->callbackFunctionStructure = JSCallbackFunction::createStructure ID(d()->functionPrototype);213 d()->argumentsStructure = Arguments::createStructure ID(d()->objectPrototype);214 d()->callbackConstructorStructure = JSCallbackConstructor::createStructure ID(d()->objectPrototype);215 d()->callbackObjectStructure = JSCallbackObject<JSObject>::createStructure ID(d()->objectPrototype);216 217 d()->arrayPrototype = new (exec) ArrayPrototype(ArrayPrototype::createStructure ID(d()->objectPrototype));218 d()->arrayStructure = JSArray::createStructure ID(d()->arrayPrototype);219 d()->regExpMatchesArrayStructure = RegExpMatchesArray::createStructure ID(d()->arrayPrototype);220 221 d()->stringPrototype = new (exec) StringPrototype(exec, StringPrototype::createStructure ID(d()->objectPrototype));222 d()->stringObjectStructure = StringObject::createStructure ID(d()->stringPrototype);223 224 d()->booleanPrototype = new (exec) BooleanPrototype(exec, BooleanPrototype::createStructure ID(d()->objectPrototype), d()->prototypeFunctionStructure.get());225 d()->booleanObjectStructure = BooleanObject::createStructure ID(d()->booleanPrototype);226 227 d()->numberPrototype = new (exec) NumberPrototype(exec, NumberPrototype::createStructure ID(d()->objectPrototype), d()->prototypeFunctionStructure.get());228 d()->numberObjectStructure = NumberObject::createStructure ID(d()->numberPrototype);229 230 d()->datePrototype = new (exec) DatePrototype(exec, DatePrototype::createStructure ID(d()->objectPrototype));231 d()->dateStructure = DateInstance::createStructure ID(d()->datePrototype);232 233 d()->regExpPrototype = new (exec) RegExpPrototype(exec, RegExpPrototype::createStructure ID(d()->objectPrototype), d()->prototypeFunctionStructure.get());234 d()->regExpStructure = RegExpObject::createStructure ID(d()->regExpPrototype);235 236 ErrorPrototype* errorPrototype = new (exec) ErrorPrototype(exec, ErrorPrototype::createStructure ID(d()->objectPrototype), d()->prototypeFunctionStructure.get());237 d()->errorStructure = ErrorInstance::createStructure ID(errorPrototype);238 239 RefPtr<Structure ID> nativeErrorPrototypeStructure = NativeErrorPrototype::createStructureID(errorPrototype);211 d()->functionStructure = JSFunction::createStructure(d()->functionPrototype); 212 d()->callbackFunctionStructure = JSCallbackFunction::createStructure(d()->functionPrototype); 213 d()->argumentsStructure = Arguments::createStructure(d()->objectPrototype); 214 d()->callbackConstructorStructure = JSCallbackConstructor::createStructure(d()->objectPrototype); 215 d()->callbackObjectStructure = JSCallbackObject<JSObject>::createStructure(d()->objectPrototype); 216 217 d()->arrayPrototype = new (exec) ArrayPrototype(ArrayPrototype::createStructure(d()->objectPrototype)); 218 d()->arrayStructure = JSArray::createStructure(d()->arrayPrototype); 219 d()->regExpMatchesArrayStructure = RegExpMatchesArray::createStructure(d()->arrayPrototype); 220 221 d()->stringPrototype = new (exec) StringPrototype(exec, StringPrototype::createStructure(d()->objectPrototype)); 222 d()->stringObjectStructure = StringObject::createStructure(d()->stringPrototype); 223 224 d()->booleanPrototype = new (exec) BooleanPrototype(exec, BooleanPrototype::createStructure(d()->objectPrototype), d()->prototypeFunctionStructure.get()); 225 d()->booleanObjectStructure = BooleanObject::createStructure(d()->booleanPrototype); 226 227 d()->numberPrototype = new (exec) NumberPrototype(exec, NumberPrototype::createStructure(d()->objectPrototype), d()->prototypeFunctionStructure.get()); 228 d()->numberObjectStructure = NumberObject::createStructure(d()->numberPrototype); 229 230 d()->datePrototype = new (exec) DatePrototype(exec, DatePrototype::createStructure(d()->objectPrototype)); 231 d()->dateStructure = DateInstance::createStructure(d()->datePrototype); 232 233 d()->regExpPrototype = new (exec) RegExpPrototype(exec, RegExpPrototype::createStructure(d()->objectPrototype), d()->prototypeFunctionStructure.get()); 234 d()->regExpStructure = RegExpObject::createStructure(d()->regExpPrototype); 235 236 ErrorPrototype* errorPrototype = new (exec) ErrorPrototype(exec, ErrorPrototype::createStructure(d()->objectPrototype), d()->prototypeFunctionStructure.get()); 237 d()->errorStructure = ErrorInstance::createStructure(errorPrototype); 238 239 RefPtr<Structure> nativeErrorPrototypeStructure = NativeErrorPrototype::createStructure(errorPrototype); 240 240 241 241 NativeErrorPrototype* evalErrorPrototype = new (exec) NativeErrorPrototype(exec, nativeErrorPrototypeStructure, "EvalError", "EvalError"); … … 248 248 // Constructors 249 249 250 JSValue* objectConstructor = new (exec) ObjectConstructor(exec, ObjectConstructor::createStructure ID(d()->functionPrototype), d()->objectPrototype);251 JSValue* functionConstructor = new (exec) FunctionConstructor(exec, FunctionConstructor::createStructure ID(d()->functionPrototype), d()->functionPrototype);252 JSValue* arrayConstructor = new (exec) ArrayConstructor(exec, ArrayConstructor::createStructure ID(d()->functionPrototype), d()->arrayPrototype);253 JSValue* stringConstructor = new (exec) StringConstructor(exec, StringConstructor::createStructure ID(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->stringPrototype);254 JSValue* booleanConstructor = new (exec) BooleanConstructor(exec, BooleanConstructor::createStructure ID(d()->functionPrototype), d()->booleanPrototype);255 JSValue* numberConstructor = new (exec) NumberConstructor(exec, NumberConstructor::createStructure ID(d()->functionPrototype), d()->numberPrototype);256 JSValue* dateConstructor = new (exec) DateConstructor(exec, DateConstructor::createStructure ID(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->datePrototype);257 258 d()->regExpConstructor = new (exec) RegExpConstructor(exec, RegExpConstructor::createStructure ID(d()->functionPrototype), d()->regExpPrototype);259 260 d()->errorConstructor = new (exec) ErrorConstructor(exec, ErrorConstructor::createStructure ID(d()->functionPrototype), errorPrototype);261 262 RefPtr<Structure ID> nativeErrorStructure = NativeErrorConstructor::createStructureID(d()->functionPrototype);250 JSValue* objectConstructor = new (exec) ObjectConstructor(exec, ObjectConstructor::createStructure(d()->functionPrototype), d()->objectPrototype); 251 JSValue* functionConstructor = new (exec) FunctionConstructor(exec, FunctionConstructor::createStructure(d()->functionPrototype), d()->functionPrototype); 252 JSValue* arrayConstructor = new (exec) ArrayConstructor(exec, ArrayConstructor::createStructure(d()->functionPrototype), d()->arrayPrototype); 253 JSValue* stringConstructor = new (exec) StringConstructor(exec, StringConstructor::createStructure(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->stringPrototype); 254 JSValue* booleanConstructor = new (exec) BooleanConstructor(exec, BooleanConstructor::createStructure(d()->functionPrototype), d()->booleanPrototype); 255 JSValue* numberConstructor = new (exec) NumberConstructor(exec, NumberConstructor::createStructure(d()->functionPrototype), d()->numberPrototype); 256 JSValue* dateConstructor = new (exec) DateConstructor(exec, DateConstructor::createStructure(d()->functionPrototype), d()->prototypeFunctionStructure.get(), d()->datePrototype); 257 258 d()->regExpConstructor = new (exec) RegExpConstructor(exec, RegExpConstructor::createStructure(d()->functionPrototype), d()->regExpPrototype); 259 260 d()->errorConstructor = new (exec) ErrorConstructor(exec, ErrorConstructor::createStructure(d()->functionPrototype), errorPrototype); 261 262 RefPtr<Structure> nativeErrorStructure = NativeErrorConstructor::createStructure(d()->functionPrototype); 263 263 264 264 d()->evalErrorConstructor = new (exec) NativeErrorConstructor(exec, nativeErrorStructure, evalErrorPrototype); … … 308 308 // Set global values. 309 309 GlobalPropertyInfo staticGlobals[] = { 310 GlobalPropertyInfo(Identifier(exec, "Math"), new (exec) MathObject(exec, MathObject::createStructure ID(d()->objectPrototype)), DontEnum | DontDelete),310 GlobalPropertyInfo(Identifier(exec, "Math"), new (exec) MathObject(exec, MathObject::createStructure(d()->objectPrototype)), DontEnum | DontDelete), 311 311 GlobalPropertyInfo(Identifier(exec, "NaN"), jsNaN(exec), DontEnum | DontDelete), 312 312 GlobalPropertyInfo(Identifier(exec, "Infinity"), jsNumber(exec, Inf), DontEnum | DontDelete), … … 318 318 // Set global functions. 319 319 320 d()->evalFunction = new (exec) GlobalEvalFunction(exec, GlobalEvalFunction::createStructure ID(d()->functionPrototype), 1, exec->propertyNames().eval, globalFuncEval, this);320 d()->evalFunction = new (exec) GlobalEvalFunction(exec, GlobalEvalFunction::createStructure(d()->functionPrototype), 1, exec->propertyNames().eval, globalFuncEval, this); 321 321 putDirectFunctionWithoutTransition(exec, d()->evalFunction, DontEnum); 322 322 putDirectFunctionWithoutTransition(exec, new (exec) PrototypeFunction(exec, d()->prototypeFunctionStructure.get(), 2, Identifier(exec, "parseInt"), globalFuncParseInt), DontEnum);
Note:
See TracChangeset
for help on using the changeset viewer.