Changeset 96996 in webkit
- Timestamp:
- Oct 7, 2011 6:44:10 PM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 80 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/API/JSCallbackFunction.cpp
r96627 r96996 79 79 } 80 80 81 CallType JSCallbackFunction::getCallDataVirtual(CallData& callData)82 {83 return getCallData(this, callData);84 }85 86 81 CallType JSCallbackFunction::getCallData(JSCell*, CallData& callData) 87 82 { -
trunk/Source/JavaScriptCore/API/JSCallbackFunction.h
r96627 r96996 60 60 61 61 private: 62 virtual CallType getCallDataVirtual(CallData&);63 62 static CallType getCallData(JSCell*, CallData&); 64 63 -
trunk/Source/JavaScriptCore/API/JSCallbackObject.h
r96992 r96996 196 196 197 197 virtual ConstructType getConstructData(ConstructData&); 198 virtual CallType getCallDataVirtual(CallData&);199 198 static CallType getCallData(JSCell*, CallData&); 200 199 -
trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h
r96992 r96996 380 380 381 381 template <class Parent> 382 CallType JSCallbackObject<Parent>::getCallDataVirtual(CallData& callData)383 {384 return getCallData(this, callData);385 }386 387 template <class Parent>388 382 CallType JSCallbackObject<Parent>::getCallData(JSCell* cell, CallData& callData) 389 383 { -
trunk/Source/JavaScriptCore/API/JSObjectRef.cpp
r96164 r96996 417 417 { 418 418 CallData callData; 419 return toJS(object)->getCallDataVirtual(callData) != CallTypeNone; 419 JSCell* cell = toJS(object); 420 return cell->methodTable()->getCallData(cell, callData) != CallTypeNone; 420 421 } 421 422 … … 436 437 437 438 CallData callData; 438 CallType callType = jsObject-> getCallDataVirtual(callData);439 CallType callType = jsObject->methodTable()->getCallData(jsObject, callData); 439 440 if (callType == CallTypeNone) 440 441 return 0; -
trunk/Source/JavaScriptCore/ChangeLog
r96995 r96996 1 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 3 Remove getCallDataVirtual methods 4 https://bugs.webkit.org/show_bug.cgi?id=69186 5 6 Reviewed by Geoffrey Garen. 7 8 Removed all getCallDataVirtual methods and replaced their call sites 9 with an explicit lookup in the MethodTable. 10 11 * API/JSCallbackFunction.cpp: 12 * API/JSCallbackFunction.h: 13 * API/JSCallbackObject.h: 14 * API/JSCallbackObjectFunctions.h: 15 * API/JSObjectRef.cpp: 16 (JSObjectIsFunction): 17 (JSObjectCallAsFunction): 18 * JavaScriptCore.exp: 19 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 20 * interpreter/Interpreter.cpp: 21 (JSC::Interpreter::privateExecute): 22 * jit/JITStubs.cpp: 23 (JSC::DEFINE_STUB_FUNCTION): 24 * runtime/ArrayConstructor.cpp: 25 * runtime/ArrayConstructor.h: 26 * runtime/BooleanConstructor.cpp: 27 * runtime/BooleanConstructor.h: 28 * runtime/DateConstructor.cpp: 29 * runtime/DateConstructor.h: 30 * runtime/Error.cpp: 31 (JSC::createTypeErrorFunction): 32 33 Moved StrictModeTypeErrorFunction to Error.h in order to be able to include 34 the class definition in JSGlobalObject.cpp. 35 * runtime/Error.h: 36 (JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction): 37 (JSC::StrictModeTypeErrorFunction::create): 38 (JSC::StrictModeTypeErrorFunction::constructThrowTypeError): 39 (JSC::StrictModeTypeErrorFunction::getConstructData): 40 (JSC::StrictModeTypeErrorFunction::callThrowTypeError): 41 (JSC::StrictModeTypeErrorFunction::getCallData): 42 (JSC::StrictModeTypeErrorFunction::createStructure): 43 * runtime/ErrorConstructor.cpp: 44 * runtime/ErrorConstructor.h: 45 * runtime/FunctionConstructor.cpp: 46 * runtime/FunctionConstructor.h: 47 * runtime/FunctionPrototype.cpp: 48 * runtime/FunctionPrototype.h: 49 50 To allow subclasses of InternalFunction (e.g. QtRuntimeMethod) to not have 51 to declare their own ClassInfo if they don't override getCallData, provided 52 an implementation that calls ASSERT_NOT_REACHED if called, providing roughly the same 53 functionality as of the pure virtual method InternalFunction used to have. 54 Also made this new implementation protected rather than private for the same reason. 55 Also added an ASSERT in InternalFunction::finishCreation to make sure that whatever 56 object is being created provides their own implementation of getCallData. This 57 just makes execution fail earlier in a place where the source of the error is 58 easy to trace. These ASSERTs are better than putting a null in the MethodTable because 59 they appear much more intentional to anybody who fails to provide their own 60 implementation or who tries to explicitly call InternalFunction::getCallData. 61 * runtime/InternalFunction.cpp: 62 (JSC::InternalFunction::finishCreation): 63 (JSC::InternalFunction::getCallData): 64 * runtime/InternalFunction.h: 65 * runtime/JSCell.cpp: 66 * runtime/JSCell.h: 67 * runtime/JSFunction.cpp: 68 * runtime/JSFunction.h: 69 70 Added a global structure to JSGlobalObject for StrictModeTypeErrorFunction to enable 71 it to be reused rather than creating a new Structure every time we instantiate it. 72 * runtime/JSGlobalObject.cpp: 73 (JSC::JSGlobalObject::reset): 74 (JSC::JSGlobalObject::visitChildren): 75 * runtime/JSGlobalObject.h: 76 (JSC::JSGlobalObject::strictModeTypeErrorFunctionStructure): 77 * runtime/JSONObject.cpp: 78 (JSC::Stringifier::Stringifier): 79 (JSC::Stringifier::toJSON): 80 (JSC::Stringifier::appendStringifiedValue): 81 * runtime/JSObject.cpp: 82 (JSC::JSObject::put): 83 * runtime/JSObject.h: 84 (JSC::getCallData): 85 * runtime/NativeErrorConstructor.cpp: 86 * runtime/NativeErrorConstructor.h: 87 * runtime/NumberConstructor.cpp: 88 * runtime/NumberConstructor.h: 89 * runtime/ObjectConstructor.cpp: 90 * runtime/ObjectConstructor.h: 91 * runtime/Operations.cpp: 92 (JSC::jsTypeStringForValue): 93 (JSC::jsIsObjectType): 94 (JSC::jsIsFunctionType): 95 * runtime/PropertySlot.cpp: 96 (JSC::PropertySlot::functionGetter): 97 * runtime/RegExpConstructor.cpp: 98 * runtime/RegExpConstructor.h: 99 * runtime/StringConstructor.cpp: 100 * runtime/StringConstructor.h: 101 * runtime/Structure.h: 102 1 103 2011-10-07 Oliver Hunt <oliver@apple.com> 2 104 -
trunk/Source/JavaScriptCore/JavaScriptCore.exp
r96992 r96996 261 261 __ZN3JSC6JSCell14deletePropertyEPNS_9ExecStateEj 262 262 __ZN3JSC6JSCell16getConstructDataERNS_13ConstructDataE 263 __ZN3JSC6JSCell18getCallDataVirtualERNS_8CallDataE264 263 __ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE 265 264 __ZN3JSC6JSCell18getOwnPropertySlotEPNS_9ExecStateEjRNS_12PropertySlotE -
trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
r96992 r96996 191 191 ?get@Structure@JSC@@QAEIAAVJSGlobalData@2@PAVStringImpl@WTF@@AAIAAPAVJSCell@2@@Z 192 192 ?getCallData@JSCell@JSC@@SA?AW4CallType@2@PAV12@AATCallData@2@@Z 193 ?getCallDataVirtual@JSCell@JSC@@UAE?AW4CallType@2@AATCallData@2@@Z194 193 ?getConstructData@JSCell@JSC@@UAE?AW4ConstructType@2@AATConstructData@2@@Z 195 194 ?getObject@JSCell@JSC@@QAEPAVJSObject@2@XZ -
trunk/Source/JavaScriptCore/interpreter/Interpreter.cpp
r96717 r96996 2830 2830 JSObject* getter = getterSetter->getter(); 2831 2831 CallData callData; 2832 CallType callType = getter-> getCallDataVirtual(callData);2832 CallType callType = getter->methodTable()->getCallData(getter, callData); 2833 2833 JSValue result = call(callFrame, getter, callType, callData, asObject(baseCell), ArgList()); 2834 2834 CHECK_FOR_EXCEPTION(); … … 2965 2965 JSObject* getter = getterSetter->getter(); 2966 2966 CallData callData; 2967 CallType callType = getter-> getCallDataVirtual(callData);2967 CallType callType = getter->methodTable()->getCallData(getter, callData); 2968 2968 JSValue result = call(callFrame, getter, callType, callData, baseObject, ArgList()); 2969 2969 CHECK_FOR_EXCEPTION(); … … 3073 3073 JSObject* getter = getterSetter->getter(); 3074 3074 CallData callData; 3075 CallType callType = getter-> getCallDataVirtual(callData);3075 CallType callType = getter->methodTable()->getCallData(getter, callData); 3076 3076 JSValue result = call(callFrame, getter, callType, callData, baseValue, ArgList()); 3077 3077 CHECK_FOR_EXCEPTION(); -
trunk/Source/JavaScriptCore/jit/JITStubs.cpp
r96717 r96996 1753 1753 JSObject* getter = asObject(getterSetter->getter()); 1754 1754 CallData callData; 1755 CallType callType = getter-> getCallDataVirtual(callData);1755 CallType callType = getter->methodTable()->getCallData(getter, callData); 1756 1756 JSValue result = call(callFrame, getter, callType, callData, stackFrame.args[1].jsObject(), ArgList()); 1757 1757 if (callFrame->hadException()) … … 2154 2154 #if !ASSERT_DISABLED 2155 2155 CallData callData; 2156 ASSERT(stackFrame.callFrame->callee()-> getCallDataVirtual(callData) == CallTypeJS);2156 ASSERT(stackFrame.callFrame->callee()->methodTable()->getCallData(stackFrame.callFrame->callee(), callData) == CallTypeJS); 2157 2157 #endif 2158 2158 -
trunk/Source/JavaScriptCore/runtime/ArrayConstructor.cpp
r96164 r96996 110 110 } 111 111 112 CallType ArrayConstructor::getCallDataVirtual(CallData& callData)113 {114 return getCallData(this, callData);115 }116 117 112 CallType ArrayConstructor::getCallData(JSCell*, CallData& callData) 118 113 { -
trunk/Source/JavaScriptCore/runtime/ArrayConstructor.h
r96164 r96996 56 56 57 57 virtual ConstructType getConstructData(ConstructData&); 58 virtual CallType getCallDataVirtual(CallData&);59 58 static CallType getCallData(JSCell*, CallData&); 60 59 }; -
trunk/Source/JavaScriptCore/runtime/BooleanConstructor.cpp
r96674 r96996 71 71 } 72 72 73 CallType BooleanConstructor::getCallDataVirtual(CallData& callData)74 {75 return getCallData(this, callData);76 }77 78 73 CallType BooleanConstructor::getCallData(JSCell*, CallData& callData) 79 74 { -
trunk/Source/JavaScriptCore/runtime/BooleanConstructor.h
r96674 r96996 52 52 BooleanConstructor(JSGlobalObject*, Structure*); 53 53 virtual ConstructType getConstructData(ConstructData&); 54 virtual CallType getCallDataVirtual(CallData&);55 54 static CallType getCallData(JSCell*, CallData&); 56 55 }; -
trunk/Source/JavaScriptCore/runtime/DateConstructor.cpp
r96164 r96996 177 177 } 178 178 179 CallType DateConstructor::getCallDataVirtual(CallData& callData)180 {181 return getCallData(this, callData);182 }183 184 179 CallType DateConstructor::getCallData(JSCell*, CallData& callData) 185 180 { -
trunk/Source/JavaScriptCore/runtime/DateConstructor.h
r96164 r96996 53 53 DateConstructor(JSGlobalObject*, Structure*); 54 54 virtual ConstructType getConstructData(ConstructData&); 55 virtual CallType getCallDataVirtual(CallData&);56 55 static CallType getCallData(JSCell*, CallData&); 57 56 -
trunk/Source/JavaScriptCore/runtime/Error.cpp
r96674 r96996 27 27 #include "ConstructData.h" 28 28 #include "ErrorConstructor.h" 29 #include "FunctionPrototype.h" 29 30 #include "JSFunction.h" 30 31 #include "JSGlobalObject.h" … … 166 167 } 167 168 168 class StrictModeTypeErrorFunction : public InternalFunction {169 private:170 StrictModeTypeErrorFunction(JSGlobalObject* globalObject, Structure* structure, const UString& message)171 : InternalFunction(globalObject, structure)172 , m_message(message)173 {174 }175 176 public:177 typedef InternalFunction Base;178 179 static StrictModeTypeErrorFunction* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, const UString& message)180 {181 StrictModeTypeErrorFunction* function = new (allocateCell<StrictModeTypeErrorFunction>(*exec->heap())) StrictModeTypeErrorFunction(globalObject, structure, message);182 function->finishCreation(exec->globalData(), exec->globalData().propertyNames->emptyIdentifier);183 return function;184 }185 186 static EncodedJSValue JSC_HOST_CALL constructThrowTypeError(ExecState* exec)187 {188 throwTypeError(exec, static_cast<StrictModeTypeErrorFunction*>(exec->callee())->m_message);189 return JSValue::encode(jsNull());190 }191 192 ConstructType getConstructData(ConstructData& constructData)193 {194 constructData.native.function = constructThrowTypeError;195 return ConstructTypeHost;196 }197 198 static EncodedJSValue JSC_HOST_CALL callThrowTypeError(ExecState* exec)199 {200 throwTypeError(exec, static_cast<StrictModeTypeErrorFunction*>(exec->callee())->m_message);201 return JSValue::encode(jsNull());202 }203 204 virtual CallType getCallDataVirtual(CallData& callData)205 {206 return getCallData(this, callData);207 }208 209 static CallType getCallData(JSCell*, CallData& callData)210 {211 callData.native.function = callThrowTypeError;212 return CallTypeHost;213 }214 215 static const ClassInfo s_info;216 217 static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype)218 {219 return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info);220 }221 222 private:223 UString m_message;224 };225 226 169 ASSERT_CLASS_FITS_IN_CELL(StrictModeTypeErrorFunction); 227 170 … … 230 173 JSValue createTypeErrorFunction(ExecState* exec, const UString& message) 231 174 { 232 return StrictModeTypeErrorFunction::create(exec, exec->lexicalGlobalObject(), exec->lexicalGlobalObject()->internalFunctionStructure(), message); 175 JSGlobalObject* globalObject = exec->lexicalGlobalObject(); 176 return StrictModeTypeErrorFunction::create(exec, globalObject, globalObject->strictModeTypeErrorFunctionStructure(), message); 233 177 } 234 178 -
trunk/Source/JavaScriptCore/runtime/Error.h
r96146 r96996 24 24 #define Error_h 25 25 26 #include "InternalFunction.h" 26 27 #include "JSObject.h" 27 28 #include <stdint.h> … … 74 75 JSValue createTypeErrorFunction(ExecState* exec, const UString& message); 75 76 77 class StrictModeTypeErrorFunction : public InternalFunction { 78 private: 79 StrictModeTypeErrorFunction(JSGlobalObject* globalObject, Structure* structure, const UString& message) 80 : InternalFunction(globalObject, structure) 81 , m_message(message) 82 { 83 } 84 85 public: 86 typedef InternalFunction Base; 87 88 static StrictModeTypeErrorFunction* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, const UString& message) 89 { 90 StrictModeTypeErrorFunction* function = new (allocateCell<StrictModeTypeErrorFunction>(*exec->heap())) StrictModeTypeErrorFunction(globalObject, structure, message); 91 function->finishCreation(exec->globalData(), exec->globalData().propertyNames->emptyIdentifier); 92 return function; 93 } 94 95 static EncodedJSValue JSC_HOST_CALL constructThrowTypeError(ExecState* exec) 96 { 97 throwTypeError(exec, static_cast<StrictModeTypeErrorFunction*>(exec->callee())->m_message); 98 return JSValue::encode(jsNull()); 99 } 100 101 ConstructType getConstructData(ConstructData& constructData) 102 { 103 constructData.native.function = constructThrowTypeError; 104 return ConstructTypeHost; 105 } 106 107 static EncodedJSValue JSC_HOST_CALL callThrowTypeError(ExecState* exec) 108 { 109 throwTypeError(exec, static_cast<StrictModeTypeErrorFunction*>(exec->callee())->m_message); 110 return JSValue::encode(jsNull()); 111 } 112 113 static CallType getCallData(JSCell*, CallData& callData) 114 { 115 callData.native.function = callThrowTypeError; 116 return CallTypeHost; 117 } 118 119 static const ClassInfo s_info; 120 121 static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype) 122 { 123 return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); 124 } 125 126 private: 127 UString m_message; 128 }; 129 76 130 } // namespace JSC 77 131 -
trunk/Source/JavaScriptCore/runtime/ErrorConstructor.cpp
r96674 r96996 67 67 } 68 68 69 CallType ErrorConstructor::getCallDataVirtual(CallData& callData)70 {71 return getCallData(this, callData);72 }73 74 69 CallType ErrorConstructor::getCallData(JSCell*, CallData& callData) 75 70 { -
trunk/Source/JavaScriptCore/runtime/ErrorConstructor.h
r96674 r96996 53 53 ErrorConstructor(JSGlobalObject*, Structure*); 54 54 virtual ConstructType getConstructData(ConstructData&); 55 virtual CallType getCallDataVirtual(CallData&);56 55 static CallType getCallData(JSCell*, CallData&); 57 56 }; -
trunk/Source/JavaScriptCore/runtime/FunctionConstructor.cpp
r96674 r96996 72 72 } 73 73 74 CallType FunctionConstructor::getCallDataVirtual(CallData& callData)75 {76 return getCallData(this, callData);77 }78 79 74 // ECMA 15.3.1 The Function Constructor Called as a Function 80 75 CallType FunctionConstructor::getCallData(JSCell*, CallData& callData) -
trunk/Source/JavaScriptCore/runtime/FunctionConstructor.h
r96674 r96996 50 50 void finishCreation(ExecState*, FunctionPrototype*); 51 51 virtual ConstructType getConstructData(ConstructData&); 52 virtual CallType getCallDataVirtual(CallData&);53 52 static CallType getCallData(JSCell*, CallData&); 54 53 }; -
trunk/Source/JavaScriptCore/runtime/FunctionPrototype.cpp
r96674 r96996 35 35 ASSERT_CLASS_FITS_IN_CELL(FunctionPrototype); 36 36 37 const ClassInfo FunctionPrototype::s_info = { "Function", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(FunctionPrototype) }; 38 37 39 static EncodedJSValue JSC_HOST_CALL functionProtoFuncToString(ExecState*); 38 40 static EncodedJSValue JSC_HOST_CALL functionProtoFuncApply(ExecState*); … … 40 42 static EncodedJSValue JSC_HOST_CALL functionProtoFuncBind(ExecState*); 41 43 42 const ClassInfo FunctionPrototype::s_info = { "Function", &Base::s_info, 0, 0, CREATE_METHOD_TABLE(FunctionPrototype) };43 44 44 FunctionPrototype::FunctionPrototype(JSGlobalObject* globalObject, Structure* structure) 45 45 : InternalFunction(globalObject, structure) … … 71 71 { 72 72 return JSValue::encode(jsUndefined()); 73 }74 75 CallType FunctionPrototype::getCallDataVirtual(CallData& callData)76 {77 return getCallData(this, callData);78 73 } 79 74 -
trunk/Source/JavaScriptCore/runtime/FunctionPrototype.h
r96674 r96996 51 51 private: 52 52 FunctionPrototype(JSGlobalObject*, Structure*); 53 virtual CallType getCallDataVirtual(CallData&);54 53 static CallType getCallData(JSCell*, CallData&); 55 54 }; -
trunk/Source/JavaScriptCore/runtime/InternalFunction.cpp
r95936 r96996 51 51 Base::finishCreation(globalData); 52 52 ASSERT(inherits(&s_info)); 53 ASSERT(methodTable()->getCallData != InternalFunction::s_info.methodTable.getCallData); 53 54 putDirect(globalData, globalData.propertyNames->name, jsString(&globalData, name.isNull() ? "" : name.ustring()), DontDelete | ReadOnly | DontEnum); 54 55 } … … 69 70 } 70 71 72 CallType InternalFunction::getCallData(JSCell*, CallData&) 73 { 74 ASSERT_NOT_REACHED(); 75 return CallTypeNone; 76 } 77 71 78 const UString InternalFunction::calculatedDisplayName(ExecState* exec) 72 79 { -
trunk/Source/JavaScriptCore/runtime/InternalFunction.h
r96164 r96996 57 57 void finishCreation(JSGlobalData&, const Identifier& name); 58 58 59 static CallType getCallData(JSCell*, CallData&); 60 59 61 private: 60 virtual CallType getCallDataVirtual(CallData&) = 0;61 62 62 virtual void vtableAnchor(); 63 63 }; -
trunk/Source/JavaScriptCore/runtime/JSCell.cpp
r96992 r96996 53 53 { 54 54 return isObject() ? static_cast<const JSObject*>(this) : 0; 55 }56 57 CallType JSCell::getCallDataVirtual(CallData& callData)58 {59 return getCallData(this, callData);60 55 } 61 56 -
trunk/Source/JavaScriptCore/runtime/JSCell.h
r96992 r96996 74 74 const JSObject* getObject() const; // NULL if not an object 75 75 76 virtual CallType getCallDataVirtual(CallData&);77 76 static CallType getCallData(JSCell*, CallData&); 78 77 virtual ConstructType getConstructData(ConstructData&); … … 139 138 WriteBarrier<Structure> m_structure; 140 139 }; 141 140 142 141 inline JSCell::JSCell(JSGlobalData& globalData, Structure* structure) 143 142 : m_structure(globalData, this, structure) … … 230 229 { 231 230 return isCell() ? asCell()->getObject() : 0; 232 }233 234 inline CallType getCallData(JSValue value, CallData& callData)235 {236 CallType result = value.isCell() ? value.asCell()->getCallDataVirtual(callData) : CallTypeNone;237 ASSERT(result == CallTypeNone || value.isValidCallee());238 return result;239 231 } 240 232 -
trunk/Source/JavaScriptCore/runtime/JSFunction.cpp
r96992 r96996 165 165 } 166 166 167 CallType JSFunction::getCallDataVirtual(CallData& callData)168 {169 return getCallData(this, callData);170 }171 172 167 CallType JSFunction::getCallData(JSCell* cell, CallData& callData) 173 168 { -
trunk/Source/JavaScriptCore/runtime/JSFunction.h
r96992 r96996 110 110 111 111 virtual ConstructType getConstructData(ConstructData&); 112 virtual CallType getCallDataVirtual(CallData&);113 112 static CallType getCallData(JSCell*, CallData&); 114 113 -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
r96992 r96996 43 43 #include "DateConstructor.h" 44 44 #include "DatePrototype.h" 45 #include "Error.h" 45 46 #include "ErrorConstructor.h" 46 47 #include "ErrorPrototype.h" … … 198 199 m_namedFunctionStructure.set(exec->globalData(), this, Structure::addPropertyTransition(exec->globalData(), m_functionStructure.get(), exec->globalData().propertyNames->name, DontDelete | ReadOnly | DontEnum, 0, m_functionNameOffset)); 199 200 m_internalFunctionStructure.set(exec->globalData(), this, InternalFunction::createStructure(exec->globalData(), this, m_functionPrototype.get())); 201 m_strictModeTypeErrorFunctionStructure.set(exec->globalData(), this, StrictModeTypeErrorFunction::createStructure(exec->globalData(), this, m_functionPrototype.get())); 200 202 JSFunction* callFunction = 0; 201 203 JSFunction* applyFunction = 0; … … 366 368 visitIfNeeded(visitor, &thisObject->m_stringObjectStructure); 367 369 visitIfNeeded(visitor, &thisObject->m_internalFunctionStructure); 370 visitIfNeeded(visitor, &thisObject->m_strictModeTypeErrorFunctionStructure); 368 371 369 372 if (thisObject->m_registerArray) { -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h
r96992 r96996 120 120 WriteBarrier<Structure> m_stringObjectStructure; 121 121 WriteBarrier<Structure> m_internalFunctionStructure; 122 WriteBarrier<Structure> m_strictModeTypeErrorFunctionStructure; 122 123 123 124 Debugger* m_debugger; … … 239 240 Structure* numberObjectStructure() const { return m_numberObjectStructure.get(); } 240 241 Structure* internalFunctionStructure() const { return m_internalFunctionStructure.get(); } 242 Structure* strictModeTypeErrorFunctionStructure() const { return m_strictModeTypeErrorFunctionStructure.get(); } 241 243 Structure* regExpMatchesArrayStructure() const { return m_regExpMatchesArrayStructure.get(); } 242 244 Structure* regExpStructure() const { return m_regExpStructure.get(); } -
trunk/Source/JavaScriptCore/runtime/JSONObject.cpp
r96673 r96996 246 246 } 247 247 248 m_replacerCallType = m_replacer.asObject()-> getCallDataVirtual(m_replacerCallData);248 m_replacerCallType = m_replacer.asObject()->methodTable()->getCallData(m_replacer.asObject().get(), m_replacerCallData); 249 249 } 250 250 … … 337 337 JSObject* object = asObject(toJSONFunction); 338 338 CallData callData; 339 CallType callType = object-> getCallDataVirtual(callData);339 CallType callType = object->methodTable()->getCallData(object, callData); 340 340 if (callType == CallTypeNone) 341 341 return value; … … 401 401 402 402 CallData callData; 403 if (object-> getCallDataVirtual(callData) != CallTypeNone) {403 if (object->methodTable()->getCallData(object, callData) != CallTypeNone) { 404 404 if (holder->inherits(&JSArray::s_info)) { 405 405 builder.append("null"); -
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r96992 r96996 162 162 163 163 CallData callData; 164 CallType callType = setterFunc-> getCallDataVirtual(callData);164 CallType callType = setterFunc->methodTable()->getCallData(setterFunc, callData); 165 165 MarkedArgumentBuffer args; 166 166 args.append(value); -
trunk/Source/JavaScriptCore/runtime/JSObject.h
r96992 r96996 410 410 } 411 411 412 inline CallType getCallData(JSValue value, CallData& callData) 413 { 414 CallType result = value.isCell() ? value.asCell()->methodTable()->getCallData(value.asCell(), callData) : CallTypeNone; 415 ASSERT(result == CallTypeNone || value.isValidCallee()); 416 return result; 417 } 418 412 419 inline Structure* createEmptyObjectStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype) 413 420 { -
trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp
r96346 r96996 70 70 } 71 71 72 CallType NativeErrorConstructor::getCallDataVirtual(CallData& callData)73 {74 return getCallData(this, callData);75 }76 77 72 CallType NativeErrorConstructor::getCallData(JSCell*, CallData& callData) 78 73 { -
trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h
r96346 r96996 70 70 static const unsigned StructureFlags = OverridesVisitChildren | InternalFunction::StructureFlags; 71 71 virtual ConstructType getConstructData(ConstructData&); 72 virtual CallType getCallDataVirtual(CallData&);73 72 static CallType getCallData(JSCell*, CallData&); 74 73 static void visitChildren(JSCell*, SlotVisitor&); -
trunk/Source/JavaScriptCore/runtime/NumberConstructor.cpp
r96164 r96996 128 128 } 129 129 130 CallType NumberConstructor::getCallDataVirtual(CallData& callData)131 {132 return getCallData(this, callData);133 }134 135 130 CallType NumberConstructor::getCallData(JSCell*, CallData& callData) 136 131 { -
trunk/Source/JavaScriptCore/runtime/NumberConstructor.h
r96164 r96996 59 59 NumberConstructor(JSGlobalObject*, Structure*); 60 60 virtual ConstructType getConstructData(ConstructData&); 61 virtual CallType getCallDataVirtual(CallData&);62 61 static CallType getCallData(JSCell*, CallData&); 63 62 }; -
trunk/Source/JavaScriptCore/runtime/ObjectConstructor.cpp
r96164 r96996 127 127 } 128 128 129 CallType ObjectConstructor::getCallDataVirtual(CallData& callData)130 {131 return getCallData(this, callData);132 }133 134 129 CallType ObjectConstructor::getCallData(JSCell*, CallData& callData) 135 130 { -
trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h
r96164 r96996 56 56 ObjectConstructor(JSGlobalObject*, Structure*); 57 57 virtual ConstructType getConstructData(ConstructData&); 58 virtual CallType getCallDataVirtual(CallData&);59 58 static CallType getCallData(JSCell*, CallData&); 60 59 }; -
trunk/Source/JavaScriptCore/runtime/Operations.cpp
r96164 r96996 75 75 return jsNontrivialString(callFrame, "undefined"); 76 76 CallData callData; 77 if (asObject(v)->getCallDataVirtual(callData) != CallTypeNone) 77 JSObject* object = asObject(v); 78 if (object->methodTable()->getCallData(object, callData) != CallTypeNone) 78 79 return jsNontrivialString(callFrame, "function"); 79 80 } … … 93 94 return false; 94 95 CallData callData; 95 if (asObject(v)->getCallDataVirtual(callData) != CallTypeNone) 96 JSObject* object = asObject(v); 97 if (object->methodTable()->getCallData(object, callData) != CallTypeNone) 96 98 return false; 97 99 } … … 103 105 if (v.isObject()) { 104 106 CallData callData; 105 if (asObject(v)->getCallDataVirtual(callData) != CallTypeNone) 107 JSObject* object = asObject(v); 108 if (object->methodTable()->getCallData(object, callData) != CallTypeNone) 106 109 return true; 107 110 } -
trunk/Source/JavaScriptCore/runtime/PropertySlot.cpp
r96164 r96996 34 34 35 35 CallData callData; 36 CallType callType = m_data.getterFunc-> getCallDataVirtual(callData);36 CallType callType = m_data.getterFunc->methodTable()->getCallData(m_data.getterFunc, callData); 37 37 38 38 // Only objects can have accessor properties. -
trunk/Source/JavaScriptCore/runtime/RegExpConstructor.cpp
r96992 r96996 363 363 } 364 364 365 CallType RegExpConstructor::getCallDataVirtual(CallData& callData)366 {367 return getCallData(this, callData);368 }369 370 365 CallType RegExpConstructor::getCallData(JSCell*, CallData& callData) 371 366 { -
trunk/Source/JavaScriptCore/runtime/RegExpConstructor.h
r96992 r96996 101 101 RegExpConstructor(JSGlobalObject*, Structure*); 102 102 virtual ConstructType getConstructData(ConstructData&); 103 virtual CallType getCallDataVirtual(CallData&);104 103 static CallType getCallData(JSCell*, CallData&); 105 104 -
trunk/Source/JavaScriptCore/runtime/StringConstructor.cpp
r96164 r96996 110 110 } 111 111 112 CallType StringConstructor::getCallDataVirtual(CallData& callData)113 {114 return getCallData(this, callData);115 }116 117 112 CallType StringConstructor::getCallData(JSCell*, CallData& callData) 118 113 { -
trunk/Source/JavaScriptCore/runtime/StringConstructor.h
r96164 r96996 53 53 void finishCreation(ExecState*, StringPrototype*); 54 54 virtual ConstructType getConstructData(ConstructData&); 55 virtual CallType getCallDataVirtual(CallData&);56 55 static CallType getCallData(JSCell*, CallData&); 57 56 -
trunk/Source/JavaScriptCore/runtime/Structure.h
r96883 r96996 50 50 class SlotVisitor; 51 51 52 struct ClassInfo;53 54 52 enum EnumerationMode { 55 53 ExcludeDontEnumProperties, … … 308 306 return entry ? entry->offset : notFound; 309 307 } 310 308 311 309 inline bool JSCell::isObject() const 312 310 { -
trunk/Source/JavaScriptGlue/ChangeLog
r96992 r96996 1 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 3 Remove getCallDataVirtual methods 4 https://bugs.webkit.org/show_bug.cgi?id=69186 5 6 Reviewed by Geoffrey Garen. 7 8 Removed all getCallDataVirtual methods and replaced their call sites 9 with an explicit lookup in the MethodTable. 10 11 * JSValueWrapper.cpp: 12 (JSValueWrapper::JSObjectCallFunction): 13 * UserObjectImp.cpp: 14 * UserObjectImp.h: 15 1 16 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 17 -
trunk/Source/JavaScriptGlue/JSValueWrapper.cpp
r96465 r96996 165 165 166 166 CallData callData; 167 CallType callType = objValue-> getCallDataVirtual(callData);167 CallType callType = objValue->methodTable()->getCallData(objValue, callData); 168 168 if (callType == CallTypeNone) 169 169 return 0; -
trunk/Source/JavaScriptGlue/UserObjectImp.cpp
r96992 r96996 47 47 } 48 48 49 CallType UserObjectImp::getCallDataVirtual(CallData& callData)50 {51 return getCallData(this, callData);52 }53 54 49 CallType UserObjectImp::getCallData(JSCell* cell, CallData& callData) 55 50 { -
trunk/Source/JavaScriptGlue/UserObjectImp.h
r96992 r96996 50 50 static const ClassInfo s_info; 51 51 52 virtual CallType getCallDataVirtual(CallData&);53 52 static CallType getCallData(JSCell*, CallData&); 54 53 -
trunk/Source/WebCore/ChangeLog
r96992 r96996 1 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 3 Remove getCallDataVirtual methods 4 https://bugs.webkit.org/show_bug.cgi?id=69186 5 6 Reviewed by Geoffrey Garen. 7 8 No new tests. 9 10 Removed all getCallDataVirtual methods and replaced their call sites 11 with an explicit lookup in the MethodTable. 12 13 * WebCore.exp.in: 14 * bindings/js/JSCallbackData.cpp: 15 (WebCore::JSCallbackData::invokeCallback): 16 * bindings/js/JSCustomXPathNSResolver.cpp: 17 (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI): 18 * bindings/js/JSErrorHandler.cpp: 19 (WebCore::JSErrorHandler::handleEvent): 20 * bindings/js/JSEventListener.cpp: 21 (WebCore::JSEventListener::handleEvent): 22 * bindings/js/JSHTMLAllCollectionCustom.cpp: 23 * bindings/js/JSHTMLAppletElementCustom.cpp: 24 * bindings/js/JSHTMLEmbedElementCustom.cpp: 25 * bindings/js/JSHTMLObjectElementCustom.cpp: 26 * bindings/js/JSInjectedScriptHostCustom.cpp: 27 (WebCore::JSInjectedScriptHost::evaluate): 28 * bindings/js/JSPluginElementFunctions.cpp: 29 (WebCore::runtimeObjectGetCallData): 30 * bindings/scripts/CodeGeneratorJS.pm: 31 (GenerateHeader): 32 * bridge/objc/objc_runtime.h: 33 * bridge/objc/objc_runtime.mm: 34 * bridge/qt/qt_runtime.cpp: 35 (JSC::Bindings::QtRuntimeConnectionMethod::call): 36 (JSC::Bindings::isJavaScriptFunction): 37 * bridge/qt/qt_runtime.h: 38 (JSC::Bindings::QtRuntimeMetaMethod::createStructure): 39 (JSC::Bindings::QtRuntimeConnectionMethod::createStructure): 40 * bridge/runtime_method.cpp: 41 * bridge/runtime_method.h: 42 * bridge/runtime_object.cpp: 43 * bridge/runtime_object.h: 44 1 45 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 46 -
trunk/Source/WebCore/WebCore.exp.in
r96859 r96996 1682 1682 __ZN3JSC13RuntimeMethod11getCallDataEPNS_6JSCellERNS_8CallDataE 1683 1683 __ZN3JSC13RuntimeMethod14finishCreationERNS_12JSGlobalDataERKNS_10IdentifierE 1684 __ZN3JSC13RuntimeMethod18getCallDataVirtualERNS_8CallDataE1685 1684 __ZN3JSC13RuntimeMethod18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE 1686 1685 __ZN3JSC13RuntimeMethod24getOwnPropertyDescriptorEPNS_9ExecStateERKNS_10IdentifierERNS_18PropertyDescriptorE … … 1692 1691 __ZN3JSC8Bindings13RuntimeObject14finishCreationEPNS_14JSGlobalObjectE 1693 1692 __ZN3JSC8Bindings13RuntimeObject16getConstructDataERNS_13ConstructDataE 1694 __ZN3JSC8Bindings13RuntimeObject18getCallDataVirtualERNS_8CallDataE1695 1693 __ZN3JSC8Bindings13RuntimeObject18getOwnPropertySlotEPNS_9ExecStateERKNS_10IdentifierERNS_12PropertySlotE 1696 1694 __ZN3JSC8Bindings13RuntimeObject19getOwnPropertyNamesEPNS_9ExecStateERNS_17PropertyNameArrayENS_15EnumerationModeE -
trunk/Source/WebCore/bindings/js/JSCallbackData.cpp
r96164 r96996 54 54 CallType callType = getCallData(function, callData); 55 55 if (callType == CallTypeNone) { 56 callType = callback()-> getCallDataVirtual(callData);56 callType = callback()->methodTable()->getCallData(callback(), callData); 57 57 if (callType == CallTypeNone) 58 58 return JSValue(); -
trunk/Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp
r96164 r96996 78 78 CallType callType = getCallData(function, callData); 79 79 if (callType == CallTypeNone) { 80 callType = m_customResolver-> getCallDataVirtual(callData);80 callType = m_customResolver->methodTable()->getCallData(m_customResolver, callData); 81 81 if (callType == CallTypeNone) { 82 82 // FIXME: Pass actual line number and source URL. -
trunk/Source/WebCore/bindings/js/JSErrorHandler.cpp
r96673 r96996 75 75 76 76 CallData callData; 77 CallType callType = jsFunction-> getCallDataVirtual(callData);77 CallType callType = jsFunction->methodTable()->getCallData(jsFunction, callData); 78 78 79 79 if (callType != CallTypeNone) { -
trunk/Source/WebCore/bindings/js/JSEventListener.cpp
r96673 r96996 102 102 if (callType == CallTypeNone) { 103 103 handleEventFunction = JSValue(); 104 callType = jsFunction-> getCallDataVirtual(callData);104 callType = jsFunction->methodTable()->getCallData(jsFunction, callData); 105 105 } 106 106 -
trunk/Source/WebCore/bindings/js/JSHTMLAllCollectionCustom.cpp
r96164 r96996 100 100 } 101 101 102 CallType JSHTMLAllCollection::getCallDataVirtual(CallData& callData)103 {104 return getCallData(this, callData);105 }106 107 102 CallType JSHTMLAllCollection::getCallData(JSCell*, CallData& callData) 108 103 { -
trunk/Source/WebCore/bindings/js/JSHTMLAppletElementCustom.cpp
r96164 r96996 49 49 } 50 50 51 CallType JSHTMLAppletElement::getCallDataVirtual(CallData& callData)52 {53 return getCallData(this, callData);54 }55 56 51 CallType JSHTMLAppletElement::getCallData(JSCell* cell, CallData& callData) 57 52 { -
trunk/Source/WebCore/bindings/js/JSHTMLEmbedElementCustom.cpp
r96164 r96996 49 49 } 50 50 51 CallType JSHTMLEmbedElement::getCallDataVirtual(CallData& callData)52 {53 return getCallData(this, callData);54 }55 56 51 CallType JSHTMLEmbedElement::getCallData(JSCell* cell, CallData& callData) 57 52 { -
trunk/Source/WebCore/bindings/js/JSHTMLObjectElementCustom.cpp
r96164 r96996 49 49 } 50 50 51 CallType JSHTMLObjectElement::getCallDataVirtual(CallData& callData)52 {53 return getCallData(this, callData);54 }55 56 51 CallType JSHTMLObjectElement::getCallData(JSCell* cell, CallData& callData) 57 52 { -
trunk/Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp
r96164 r96996 86 86 JSFunction* evalFunction = globalObject->evalFunction(); 87 87 CallData callData; 88 CallType callType = evalFunction-> getCallDataVirtual(callData);88 CallType callType = evalFunction->methodTable()->getCallData(evalFunction, callData); 89 89 if (callType == CallTypeNone) 90 90 return jsUndefined(); -
trunk/Source/WebCore/bindings/js/JSPluginElementFunctions.cpp
r96164 r96996 178 178 CallData scriptObjectCallData; 179 179 180 if (scriptObject-> getCallDataVirtual(scriptObjectCallData) == CallTypeNone)180 if (scriptObject->methodTable()->getCallData(scriptObject, scriptObjectCallData) == CallTypeNone) 181 181 return CallTypeNone; 182 182 -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
r96992 r96996 818 818 819 819 # Custom call functions 820 push(@headerContent, " virtual JSC::CallType getCallDataVirtual(JSC::CallData&);\n\n") if $dataNode->extendedAttributes->{"CustomCall"};821 820 push(@headerContent, " static JSC::CallType getCallData(JSC::JSCell*, JSC::CallData&);\n\n") if $dataNode->extendedAttributes->{"CustomCall"}; 822 821 -
trunk/Source/WebCore/bridge/objc/objc_runtime.h
r96992 r96996 128 128 virtual void put(ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); 129 129 static void put(JSCell*, ExecState*, const Identifier& propertyName, JSValue, PutPropertySlot&); 130 virtual CallType getCallDataVirtual(CallData&);131 130 static CallType getCallData(JSCell*, CallData&); 132 131 virtual bool deleteProperty(ExecState*, const Identifier& propertyName); -
trunk/Source/WebCore/bridge/objc/objc_runtime.mm
r96992 r96996 260 260 } 261 261 262 CallType ObjcFallbackObjectImp::getCallDataVirtual(CallData& callData)263 {264 return getCallData(this, callData);265 }266 267 262 CallType ObjcFallbackObjectImp::getCallData(JSCell* cell, CallData& callData) 268 263 { -
trunk/Source/WebCore/bridge/qt/qt_runtime.cpp
r96674 r96996 1489 1489 } 1490 1490 1491 CallType QtRuntimeMetaMethod::getCallDataVirtual(CallData& callData)1492 {1493 return getCallData(this, callData);1494 }1495 1496 1491 CallType QtRuntimeMetaMethod::getCallData(JSCell*, CallData& callData) 1497 1492 { … … 1625 1620 funcObject = exec->argument(0).toObject(exec); 1626 1621 CallData callData; 1627 if (funcObject-> getCallDataVirtual(callData) == CallTypeNone) {1622 if (funcObject->methodTable()->getCallData(funcObject, callData) == CallTypeNone) { 1628 1623 if (d->m_isConnect) 1629 1624 return throwVMError(exec, createTypeError(exec, "QtMetaMethod.connect: target is not a function")); … … 1638 1633 JSObject *asObj = exec->argument(1).toObject(exec); 1639 1634 CallData callData; 1640 if (asObj-> getCallDataVirtual(callData) != CallTypeNone) {1635 if (asObj->methodTable()->getCallData(asObj, callData) != CallTypeNone) { 1641 1636 // Function version 1642 1637 funcObject = asObj; … … 1651 1646 JSObject* asFuncObj = val.toObject(exec); 1652 1647 1653 if (asFuncObj-> getCallDataVirtual(callData) != CallTypeNone) {1648 if (asFuncObj->methodTable()->getCallData(asFuncObj, callData) != CallTypeNone) { 1654 1649 funcObject = asFuncObj; 1655 1650 } else { … … 1735 1730 } 1736 1731 1737 CallType QtRuntimeConnectionMethod::getCallDataVirtual(CallData& callData)1738 {1739 return getCallData(this, callData);1740 }1741 1742 1732 CallType QtRuntimeConnectionMethod::getCallData(JSCell*, CallData& callData) 1743 1733 { … … 1863 1853 { 1864 1854 CallData callData; 1865 return toJS(object)->getCallDataVirtual(callData) == CallTypeJS; 1855 JSObject* jsObject = toJS(object); 1856 return jsObject->methodTable()->getCallData(jsObject, callData) == CallTypeJS; 1866 1857 } 1867 1858 -
trunk/Source/WebCore/bridge/qt/qt_runtime.h
r96674 r96996 170 170 171 171 static void visitChildren(JSCell*, SlotVisitor&); 172 172 173 173 static const ClassInfo s_info; 174 175 static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype) 176 { 177 return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); 178 } 174 179 175 180 protected: … … 180 185 void finishCreation(ExecState*, const Identifier&, PassRefPtr<QtInstance>, int index, const QByteArray& signature, bool allowPrivate); 181 186 182 virtual CallType getCallDataVirtual(CallData&);183 187 static CallType getCallData(JSCell*, CallData&); 184 188 static EncodedJSValue JSC_HOST_CALL call(ExecState* exec); … … 207 211 static const ClassInfo s_info; 208 212 213 static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue prototype) 214 { 215 return Structure::create(globalData, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), &s_info); 216 } 217 209 218 protected: 210 219 QtRuntimeConnectionMethodData* d_func() const {return reinterpret_cast<QtRuntimeConnectionMethodData*>(d_ptr);} … … 214 223 void finishCreation(ExecState*, const Identifier&, bool isConnect, PassRefPtr<QtInstance>, int index, const QByteArray& signature); 215 224 216 virtual CallType getCallDataVirtual(CallData&);217 225 static CallType getCallData(JSCell*, CallData&); 218 226 static EncodedJSValue JSC_HOST_CALL call(ExecState* exec); -
trunk/Source/WebCore/bridge/runtime_method.cpp
r96164 r96996 124 124 } 125 125 126 CallType RuntimeMethod::getCallDataVirtual(CallData& callData)127 {128 return getCallData(this, callData);129 }130 131 126 CallType RuntimeMethod::getCallData(JSCell*, CallData& callData) 132 127 { -
trunk/Source/WebCore/bridge/runtime_method.h
r96406 r96996 63 63 void finishCreation(JSGlobalData&, const Identifier&); 64 64 static const unsigned StructureFlags = OverridesGetOwnPropertySlot | InternalFunction::StructureFlags; 65 virtual CallType getCallDataVirtual(CallData&);66 65 static CallType getCallData(JSCell*, CallData&); 67 66 -
trunk/Source/WebCore/bridge/runtime_object.cpp
r96992 r96996 266 266 } 267 267 268 CallType RuntimeObject::getCallDataVirtual(CallData& callData)269 {270 return getCallData(this, callData);271 }272 273 268 CallType RuntimeObject::getCallData(JSCell* cell, CallData& callData) 274 269 { -
trunk/Source/WebCore/bridge/runtime_object.h
r96992 r96996 52 52 virtual bool deleteProperty(ExecState*, const Identifier& propertyName); 53 53 virtual JSValue defaultValue(ExecState*, PreferredPrimitiveType) const; 54 virtual CallType getCallDataVirtual(CallData&);55 54 static CallType getCallData(JSCell*, CallData&); 56 55 virtual ConstructType getConstructData(ConstructData&); -
trunk/Source/WebKit/mac/ChangeLog
r96881 r96996 1 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 3 Remove getCallDataVirtual methods 4 https://bugs.webkit.org/show_bug.cgi?id=69186 5 6 Reviewed by Geoffrey Garen. 7 8 Removed all getCallDataVirtual methods and replaced their call sites 9 with an explicit lookup in the MethodTable. 10 11 * Plugins/Hosted/NetscapePluginInstanceProxy.mm: 12 (WebKit::NetscapePluginInstanceProxy::invokeDefault): 13 1 14 2011-10-06 Anders Carlsson <andersca@apple.com> 2 15 -
trunk/Source/WebKit/mac/Plugins/Hosted/NetscapePluginInstanceProxy.mm
r96880 r96996 943 943 JSLock lock(SilenceAssertionsOnly); 944 944 CallData callData; 945 CallType callType = object-> getCallDataVirtual(callData);945 CallType callType = object->methodTable()->getCallData(object, callData); 946 946 if (callType == CallTypeNone) 947 947 return false; -
trunk/Source/WebKit2/ChangeLog
r96979 r96996 1 2011-10-07 Mark Hahnenberg <mhahnenberg@apple.com> 2 3 Remove getCallDataVirtual methods 4 https://bugs.webkit.org/show_bug.cgi?id=69186 5 6 Reviewed by Geoffrey Garen. 7 8 Removed all getCallDataVirtual methods and replaced their call sites 9 with an explicit lookup in the MethodTable. 10 11 * WebProcess/Plugins/Netscape/JSNPMethod.cpp: 12 * WebProcess/Plugins/Netscape/JSNPMethod.h: 13 * WebProcess/Plugins/Netscape/JSNPObject.cpp: 14 * WebProcess/Plugins/Netscape/JSNPObject.h: 15 1 16 2011-10-07 Alexey Proskuryakov <ap@apple.com> 2 17 -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPMethod.cpp
r96164 r96996 78 78 } 79 79 80 CallType JSNPMethod::getCallDataVirtual(CallData& callData)81 {82 return getCallData(this, callData);83 }84 85 80 CallType JSNPMethod::getCallData(JSCell*, CallData& callData) 86 81 { -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPMethod.h
r96164 r96996 63 63 } 64 64 65 virtual JSC::CallType getCallDataVirtual(JSC::CallData&);66 65 static JSC::CallType getCallData(JSC::JSCell*, JSC::CallData&); 67 66 -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.cpp
r96164 r96996 218 218 } 219 219 220 CallType JSNPObject::getCallDataVirtual(CallData& callData)221 {222 return getCallData(this, callData);223 }224 225 220 JSC::CallType JSNPObject::getCallData(JSC::JSCell* cell, JSC::CallData& callData) 226 221 { -
trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h
r96164 r96996 80 80 } 81 81 82 virtual JSC::CallType getCallDataVirtual(JSC::CallData&);83 82 static JSC::CallType getCallData(JSC::JSCell*, JSC::CallData&); 84 83 virtual JSC::ConstructType getConstructData(JSC::ConstructData&);
Note: See TracChangeset
for help on using the changeset viewer.