Changeset 156679 in webkit
- Timestamp:
- Sep 30, 2013 2:41:04 PM (10 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r156677 r156679 1 2013-09-30 Andreas Kling <akling@apple.com> 2 3 Pass VM instead of JSGlobalObject to MathObject constructor. 4 <https://webkit.org/b/122119> 5 6 Reviewed by Geoffrey Garen. 7 8 The MathObject constructor was only using the global object to get 9 to the VM. finishCreation() still uses it to set up functions. 10 1 11 2013-09-30 Filip Pizlo <fpizlo@apple.com> 2 12 -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
r156668 r156679 389 389 390 390 putDirectWithoutTransition(vm, vm.propertyNames->JSON, JSONObject::create(exec, this, JSONObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum); 391 putDirectWithoutTransition(vm, vm.propertyNames->Math, MathObject::create( exec, this, MathObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum);391 putDirectWithoutTransition(vm, vm.propertyNames->Math, MathObject::create(vm, this, MathObject::createStructure(vm, this, m_objectPrototype.get())), DontEnum); 392 392 393 393 FixedArray<InternalFunction*, NUMBER_OF_TYPED_ARRAY_TYPES> typedArrayConstructors; -
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r156620 r156679 2211 2211 } 2212 2212 2213 void JSObject::putDirectNativeFunctionWithoutTransition( ExecState* exec, JSGlobalObject* globalObject, const PropertyName& propertyName, unsigned functionLength, NativeFunction nativeFunction, Intrinsic intrinsic, unsigned attributes)2213 void JSObject::putDirectNativeFunctionWithoutTransition(VM& vm, JSGlobalObject* globalObject, const PropertyName& propertyName, unsigned functionLength, NativeFunction nativeFunction, Intrinsic intrinsic, unsigned attributes) 2214 2214 { 2215 2215 StringImpl* name = propertyName.publicName(); 2216 2216 ASSERT(name); 2217 2217 2218 VM& vm = exec->vm();2219 2218 JSFunction* function = JSFunction::create(vm, globalObject, functionLength, name, nativeFunction, intrinsic); 2220 2219 putDirectWithoutTransition(vm, propertyName, function, attributes); -
trunk/Source/JavaScriptCore/runtime/JSObject.h
r156620 r156679 579 579 580 580 void putDirectNativeFunction(VM&, JSGlobalObject*, const PropertyName&, unsigned functionLength, NativeFunction, Intrinsic, unsigned attributes); 581 void putDirectNativeFunctionWithoutTransition( ExecState*, JSGlobalObject*, const PropertyName&, unsigned functionLength, NativeFunction, Intrinsic, unsigned attributes);581 void putDirectNativeFunctionWithoutTransition(VM&, JSGlobalObject*, const PropertyName&, unsigned functionLength, NativeFunction, Intrinsic, unsigned attributes); 582 582 583 583 JS_EXPORT_PRIVATE static bool defineOwnProperty(JSObject*, ExecState*, PropertyName, const PropertyDescriptor&, bool shouldThrow); -
trunk/Source/JavaScriptCore/runtime/MathObject.cpp
r156240 r156679 61 61 const ClassInfo MathObject::s_info = { "Math", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(MathObject) }; 62 62 63 MathObject::MathObject( JSGlobalObject* globalObject, Structure* structure)64 : JSNonFinalObject( globalObject->vm(), structure)65 { 66 } 67 68 void MathObject::finishCreation( ExecState* exec, JSGlobalObject* globalObject)69 { 70 Base::finishCreation( globalObject->vm());63 MathObject::MathObject(VM& vm, Structure* structure) 64 : JSNonFinalObject(vm, structure) 65 { 66 } 67 68 void MathObject::finishCreation(VM& vm, JSGlobalObject* globalObject) 69 { 70 Base::finishCreation(vm); 71 71 ASSERT(inherits(info())); 72 72 73 putDirectWithoutTransition( exec->vm(), Identifier(exec, "E"), jsNumber(exp(1.0)), DontDelete | DontEnum | ReadOnly);74 putDirectWithoutTransition( exec->vm(), Identifier(exec, "LN2"), jsNumber(log(2.0)), DontDelete | DontEnum | ReadOnly);75 putDirectWithoutTransition( exec->vm(), Identifier(exec, "LN10"), jsNumber(log(10.0)), DontDelete | DontEnum | ReadOnly);76 putDirectWithoutTransition( exec->vm(), Identifier(exec, "LOG2E"), jsNumber(1.0 / log(2.0)), DontDelete | DontEnum | ReadOnly);77 putDirectWithoutTransition( exec->vm(), Identifier(exec, "LOG10E"), jsNumber(0.4342944819032518), DontDelete | DontEnum | ReadOnly);78 putDirectWithoutTransition( exec->vm(), Identifier(exec, "PI"), jsNumber(piDouble), DontDelete | DontEnum | ReadOnly);79 putDirectWithoutTransition( exec->vm(), Identifier(exec, "SQRT1_2"), jsNumber(sqrt(0.5)), DontDelete | DontEnum | ReadOnly);80 putDirectWithoutTransition( exec->vm(), Identifier(exec, "SQRT2"), jsNumber(sqrt(2.0)), DontDelete | DontEnum | ReadOnly);81 82 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "abs"), 1, mathProtoFuncAbs, AbsIntrinsic, DontEnum | Function);83 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "acos"), 1, mathProtoFuncACos, NoIntrinsic, DontEnum | Function);84 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "asin"), 1, mathProtoFuncASin, NoIntrinsic, DontEnum | Function);85 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "atan"), 1, mathProtoFuncATan, NoIntrinsic, DontEnum | Function);86 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "atan2"), 2, mathProtoFuncATan2, NoIntrinsic, DontEnum | Function);87 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "ceil"), 1, mathProtoFuncCeil, CeilIntrinsic, DontEnum | Function);88 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "cos"), 1, mathProtoFuncCos, NoIntrinsic, DontEnum | Function);89 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "exp"), 1, mathProtoFuncExp, ExpIntrinsic, DontEnum | Function);90 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "floor"), 1, mathProtoFuncFloor, FloorIntrinsic, DontEnum | Function);91 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "log"), 1, mathProtoFuncLog, LogIntrinsic, DontEnum | Function);92 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "max"), 2, mathProtoFuncMax, MaxIntrinsic, DontEnum | Function);93 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "min"), 2, mathProtoFuncMin, MinIntrinsic, DontEnum | Function);94 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "pow"), 2, mathProtoFuncPow, PowIntrinsic, DontEnum | Function);95 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "random"), 0, mathProtoFuncRandom, NoIntrinsic, DontEnum | Function);96 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "round"), 1, mathProtoFuncRound, RoundIntrinsic, DontEnum | Function);97 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "sin"), 1, mathProtoFuncSin, NoIntrinsic, DontEnum | Function);98 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "sqrt"), 1, mathProtoFuncSqrt, SqrtIntrinsic, DontEnum | Function);99 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "tan"), 1, mathProtoFuncTan, NoIntrinsic, DontEnum | Function);100 putDirectNativeFunctionWithoutTransition( exec, globalObject, Identifier(exec, "imul"), 1, mathProtoFuncIMul, IMulIntrinsic, DontEnum | Function);73 putDirectWithoutTransition(vm, Identifier(&vm, "E"), jsNumber(exp(1.0)), DontDelete | DontEnum | ReadOnly); 74 putDirectWithoutTransition(vm, Identifier(&vm, "LN2"), jsNumber(log(2.0)), DontDelete | DontEnum | ReadOnly); 75 putDirectWithoutTransition(vm, Identifier(&vm, "LN10"), jsNumber(log(10.0)), DontDelete | DontEnum | ReadOnly); 76 putDirectWithoutTransition(vm, Identifier(&vm, "LOG2E"), jsNumber(1.0 / log(2.0)), DontDelete | DontEnum | ReadOnly); 77 putDirectWithoutTransition(vm, Identifier(&vm, "LOG10E"), jsNumber(0.4342944819032518), DontDelete | DontEnum | ReadOnly); 78 putDirectWithoutTransition(vm, Identifier(&vm, "PI"), jsNumber(piDouble), DontDelete | DontEnum | ReadOnly); 79 putDirectWithoutTransition(vm, Identifier(&vm, "SQRT1_2"), jsNumber(sqrt(0.5)), DontDelete | DontEnum | ReadOnly); 80 putDirectWithoutTransition(vm, Identifier(&vm, "SQRT2"), jsNumber(sqrt(2.0)), DontDelete | DontEnum | ReadOnly); 81 82 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "abs"), 1, mathProtoFuncAbs, AbsIntrinsic, DontEnum | Function); 83 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "acos"), 1, mathProtoFuncACos, NoIntrinsic, DontEnum | Function); 84 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "asin"), 1, mathProtoFuncASin, NoIntrinsic, DontEnum | Function); 85 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "atan"), 1, mathProtoFuncATan, NoIntrinsic, DontEnum | Function); 86 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "atan2"), 2, mathProtoFuncATan2, NoIntrinsic, DontEnum | Function); 87 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "ceil"), 1, mathProtoFuncCeil, CeilIntrinsic, DontEnum | Function); 88 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "cos"), 1, mathProtoFuncCos, NoIntrinsic, DontEnum | Function); 89 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "exp"), 1, mathProtoFuncExp, ExpIntrinsic, DontEnum | Function); 90 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "floor"), 1, mathProtoFuncFloor, FloorIntrinsic, DontEnum | Function); 91 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "log"), 1, mathProtoFuncLog, LogIntrinsic, DontEnum | Function); 92 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "max"), 2, mathProtoFuncMax, MaxIntrinsic, DontEnum | Function); 93 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "min"), 2, mathProtoFuncMin, MinIntrinsic, DontEnum | Function); 94 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "pow"), 2, mathProtoFuncPow, PowIntrinsic, DontEnum | Function); 95 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "random"), 0, mathProtoFuncRandom, NoIntrinsic, DontEnum | Function); 96 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "round"), 1, mathProtoFuncRound, RoundIntrinsic, DontEnum | Function); 97 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "sin"), 1, mathProtoFuncSin, NoIntrinsic, DontEnum | Function); 98 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "sqrt"), 1, mathProtoFuncSqrt, SqrtIntrinsic, DontEnum | Function); 99 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "tan"), 1, mathProtoFuncTan, NoIntrinsic, DontEnum | Function); 100 putDirectNativeFunctionWithoutTransition(vm, globalObject, Identifier(&vm, "imul"), 1, mathProtoFuncIMul, IMulIntrinsic, DontEnum | Function); 101 101 } 102 102 -
trunk/Source/JavaScriptCore/runtime/MathObject.h
r154038 r156679 28 28 class MathObject : public JSNonFinalObject { 29 29 private: 30 MathObject( JSGlobalObject*, Structure*);30 MathObject(VM&, Structure*); 31 31 32 32 public: 33 33 typedef JSNonFinalObject Base; 34 34 35 static MathObject* create( ExecState* exec, JSGlobalObject* globalObject, Structure* structure)35 static MathObject* create(VM& vm, JSGlobalObject* globalObject, Structure* structure) 36 36 { 37 MathObject* object = new (NotNull, allocateCell<MathObject>( *exec->heap())) MathObject(globalObject, structure);38 object->finishCreation( exec, globalObject);37 MathObject* object = new (NotNull, allocateCell<MathObject>(vm.heap)) MathObject(vm, structure); 38 object->finishCreation(vm, globalObject); 39 39 return object; 40 40 } … … 48 48 49 49 protected: 50 void finishCreation( ExecState*, JSGlobalObject*);50 void finishCreation(VM&, JSGlobalObject*); 51 51 static const unsigned StructureFlags = OverridesGetOwnPropertySlot | JSObject::StructureFlags; 52 52 };
Note: See TracChangeset
for help on using the changeset viewer.