Changeset 94701 in webkit for trunk/Source/JavaScriptCore/API
- Timestamp:
- Sep 7, 2011, 12:40:41 PM (14 years ago)
- Location:
- trunk/Source/JavaScriptCore/API
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/API/JSCallbackConstructor.cpp
r94644 r94701 37 37 namespace JSC { 38 38 39 const ClassInfo JSCallbackConstructor::s_info = { "CallbackConstructor", &JS ObjectWithGlobalObject::s_info, 0, 0 };39 const ClassInfo JSCallbackConstructor::s_info = { "CallbackConstructor", &JSNonFinalObject::s_info, 0, 0 }; 40 40 41 41 JSCallbackConstructor::JSCallbackConstructor(JSGlobalObject* globalObject, Structure* structure, JSClassRef jsClass, JSObjectCallAsConstructorCallback callback) 42 : JS ObjectWithGlobalObject(globalObject, structure)42 : JSNonFinalObject(globalObject->globalData(), structure) 43 43 , m_class(jsClass) 44 44 , m_callback(callback) … … 49 49 void JSCallbackConstructor::finishCreation(JSGlobalObject* globalObject, JSClassRef jsClass) 50 50 { 51 Base::finishCreation(globalObject->globalData() , globalObject);51 Base::finishCreation(globalObject->globalData()); 52 52 ASSERT(inherits(&s_info)); 53 53 if (m_class) -
trunk/Source/JavaScriptCore/API/JSCallbackConstructor.h
r94644 r94701 28 28 29 29 #include "JSObjectRef.h" 30 #include <runtime/JSObject WithGlobalObject.h>30 #include <runtime/JSObject.h> 31 31 32 32 namespace JSC { 33 33 34 class JSCallbackConstructor : public JS ObjectWithGlobalObject {34 class JSCallbackConstructor : public JSNonFinalObject { 35 35 public: 36 typedef JS ObjectWithGlobalObject Base;36 typedef JSNonFinalObject Base; 37 37 38 38 static JSCallbackConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef classRef, JSObjectCallAsConstructorCallback callback) -
trunk/Source/JavaScriptCore/API/JSCallbackObject.cpp
r83661 r94701 33 33 namespace JSC { 34 34 35 ASSERT_CLASS_FITS_IN_CELL(JSCallbackObject<JS ObjectWithGlobalObject>);35 ASSERT_CLASS_FITS_IN_CELL(JSCallbackObject<JSNonFinalObject>); 36 36 ASSERT_CLASS_FITS_IN_CELL(JSCallbackObject<JSGlobalObject>); 37 37 38 38 // Define the two types of JSCallbackObjects we support. 39 template <> const ClassInfo JSCallbackObject<JS ObjectWithGlobalObject>::s_info = { "CallbackObject", &JSObjectWithGlobalObject::s_info, 0, 0 };39 template <> const ClassInfo JSCallbackObject<JSNonFinalObject>::s_info = { "CallbackObject", &JSNonFinalObject::s_info, 0, 0 }; 40 40 template <> const ClassInfo JSCallbackObject<JSGlobalObject>::s_info = { "CallbackGlobalObject", &JSGlobalObject::s_info, 0, 0 }; 41 41 -
trunk/Source/JavaScriptCore/API/JSCallbackObject.h
r94599 r94701 118 118 class JSCallbackObject : public Parent { 119 119 protected: 120 JSCallbackObject(ExecState*, JSGlobalObject*,Structure*, JSClassRef, void* data);120 JSCallbackObject(ExecState*, Structure*, JSClassRef, void* data); 121 121 JSCallbackObject(JSGlobalData&, JSClassRef, Structure*); 122 122 // We'd like to use the placement version of operator new defined in JSCell, but … … 125 125 void* operator new(size_t, void* ptr) { return ptr; } 126 126 127 void finishCreation(ExecState* , JSGlobalObject*);127 void finishCreation(ExecState*); 128 128 void finishCreation(); 129 129 … … 133 133 static JSCallbackObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef classRef, void* data) 134 134 { 135 JSCallbackObject* callbackObject = new (allocateCell<JSCallbackObject>(*exec->heap())) JSCallbackObject(exec, globalObject, structure, classRef, data); 135 ASSERT(!structure->globalObject() || structure->globalObject() == globalObject); 136 JSCallbackObject* callbackObject = new (allocateCell<JSCallbackObject>(*exec->heap())) JSCallbackObject(exec, structure, classRef, data); 136 137 return callbackObject; 137 138 } -
trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h
r94364 r94701 51 51 52 52 template <class Parent> 53 JSCallbackObject<Parent>::JSCallbackObject(ExecState* exec, JSGlobalObject* globalObject,Structure* structure, JSClassRef jsClass, void* data)54 : Parent( globalObject, structure)53 JSCallbackObject<Parent>::JSCallbackObject(ExecState* exec, Structure* structure, JSClassRef jsClass, void* data) 54 : Parent(exec->globalData(), structure) 55 55 , m_callbackObjectData(adoptPtr(new JSCallbackObjectData(data, jsClass))) 56 56 { 57 finishCreation(exec , globalObject);57 finishCreation(exec); 58 58 } 59 59 … … 69 69 70 70 template <class Parent> 71 void JSCallbackObject<Parent>::finishCreation(ExecState* exec , JSGlobalObject* globalObject)72 { 73 Base::finishCreation( globalObject->globalData(), globalObject);71 void JSCallbackObject<Parent>::finishCreation(ExecState* exec) 72 { 73 Base::finishCreation(exec->globalData()); 74 74 ASSERT(Parent::inherits(&s_info)); 75 75 init(exec); … … 575 575 if (JSObjectCallAsFunctionCallback callAsFunction = entry->callAsFunction) { 576 576 577 JSObject* o = JSCallbackFunction::create(exec, asGlobalObject(thisObj->getAnonymousValue(0)), callAsFunction, propertyName);577 JSObject* o = JSCallbackFunction::create(exec, thisObj->globalObject(), callAsFunction, propertyName); 578 578 thisObj->putDirect(exec->globalData(), propertyName, o, entry->attributes); 579 579 return o; -
trunk/Source/JavaScriptCore/API/JSClassRef.cpp
r91194 r94701 252 252 if (!jsClassData.cachedPrototype) { 253 253 // Recursive, but should be good enough for our purposes 254 jsClassData.cachedPrototype.set(exec->globalData(), JSCallbackObject<JS ObjectWithGlobalObject>::create(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), prototypeClass, &jsClassData), 0); // set jsClassData as the object's private data, so it can clear our reference on destruction254 jsClassData.cachedPrototype.set(exec->globalData(), JSCallbackObject<JSNonFinalObject>::create(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), prototypeClass, &jsClassData), 0); // set jsClassData as the object's private data, so it can clear our reference on destruction 255 255 if (parentClass) { 256 256 if (JSObject* prototype = parentClass->prototype(exec)) -
trunk/Source/JavaScriptCore/API/JSObjectRef.cpp
r91194 r94701 82 82 return toRef(constructEmptyObject(exec)); 83 83 84 JSCallbackObject<JS ObjectWithGlobalObject>* object = JSCallbackObject<JSObjectWithGlobalObject>::create(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), jsClass, data);84 JSCallbackObject<JSNonFinalObject>* object = JSCallbackObject<JSNonFinalObject>::create(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->callbackObjectStructure(), jsClass, data); 85 85 if (JSObject* prototype = jsClass->prototype(exec)) 86 86 object->setPrototype(exec->globalData(), prototype); … … 343 343 if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info)) 344 344 return static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivate(); 345 if (jsObject->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info))346 return static_cast<JSCallbackObject<JS ObjectWithGlobalObject>*>(jsObject)->getPrivate();345 if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) 346 return static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->getPrivate(); 347 347 348 348 return 0; … … 357 357 return true; 358 358 } 359 if (jsObject->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info)) {360 static_cast<JSCallbackObject<JS ObjectWithGlobalObject>*>(jsObject)->setPrivate(data);359 if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) { 360 static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->setPrivate(data); 361 361 return true; 362 362 } … … 374 374 if (jsObject->inherits(&JSCallbackObject<JSGlobalObject>::s_info)) 375 375 result = static_cast<JSCallbackObject<JSGlobalObject>*>(jsObject)->getPrivateProperty(name); 376 else if (jsObject->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info))377 result = static_cast<JSCallbackObject<JS ObjectWithGlobalObject>*>(jsObject)->getPrivateProperty(name);376 else if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) 377 result = static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->getPrivateProperty(name); 378 378 return toRef(exec, result); 379 379 } … … 390 390 return true; 391 391 } 392 if (jsObject->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info)) {393 static_cast<JSCallbackObject<JS ObjectWithGlobalObject>*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue);392 if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) { 393 static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->setPrivateProperty(exec->globalData(), name, jsValue); 394 394 return true; 395 395 } … … 407 407 return true; 408 408 } 409 if (jsObject->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info)) {410 static_cast<JSCallbackObject<JS ObjectWithGlobalObject>*>(jsObject)->deletePrivateProperty(name);409 if (jsObject->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) { 410 static_cast<JSCallbackObject<JSNonFinalObject>*>(jsObject)->deletePrivateProperty(name); 411 411 return true; 412 412 } -
trunk/Source/JavaScriptCore/API/JSValueRef.cpp
r89219 r94701 132 132 if (o->inherits(&JSCallbackObject<JSGlobalObject>::s_info)) 133 133 return static_cast<JSCallbackObject<JSGlobalObject>*>(o)->inherits(jsClass); 134 if (o->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info))135 return static_cast<JSCallbackObject<JS ObjectWithGlobalObject>*>(o)->inherits(jsClass);134 if (o->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)) 135 return static_cast<JSCallbackObject<JSNonFinalObject>*>(o)->inherits(jsClass); 136 136 } 137 137 return false; -
trunk/Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp
r85117 r94701 58 58 if (!obj) 59 59 return; 60 ASSERT(obj->inherits(&JSCallbackObject<JSGlobalObject>::s_info) || obj->inherits(&JSCallbackObject<JS ObjectWithGlobalObject>::s_info));60 ASSERT(obj->inherits(&JSCallbackObject<JSGlobalObject>::s_info) || obj->inherits(&JSCallbackObject<JSNonFinalObject>::s_info)); 61 61 map->map().set(exec->globalData(), key, obj); 62 62 }
Note:
See TracChangeset
for help on using the changeset viewer.