diff options
Diffstat (limited to 'src/3rdparty')
4 files changed, 3 insertions, 100 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp index fe663ae..c78466e 100644 --- a/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/interpreter/Interpreter.cpp @@ -3507,20 +3507,6 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi ScopeChainNode* scopeChain = callFrame->scopeChain(); - Structure* structure; - JSValue prototype = callFrame->r(proto).jsValue(); - if (prototype.isObject()) - structure = asObject(prototype)->inheritorID(); - else - structure = scopeChain->globalObject()->emptyObjectStructure(); -#ifdef QT_BUILD_SCRIPT_LIB - // ### world-class hack - QScriptObject* newObject = new (globalData) QScriptObject(structure); -#else - JSObject* newObject = new (globalData) JSObject(structure); -#endif - callFrame[thisRegister] = JSValue(newObject); // "this" value - CallFrame* newCallFrame = CallFrame::create(callFrame->registers() + registerOffset); newCallFrame->init(0, vPC + 7, scopeChain, callFrame, dst, argCount, asObject(v)); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/CallData.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/CallData.cpp index b33c8ba..c89ebf8 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/CallData.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/CallData.cpp @@ -25,10 +25,6 @@ #include "config.h" #include "CallData.h" -#ifdef QT_BUILD_SCRIPT_LIB -#include "ExceptionHelpers.h" -#include "Interpreter.h" -#endif #include "JSFunction.h" #include "JSGlobalObject.h" @@ -59,29 +55,8 @@ JSValue JSC::NativeFuncWrapper::operator() (ExecState* exec, JSObject* jsobj, JS JSValue call(ExecState* exec, JSValue functionObject, CallType callType, const CallData& callData, JSValue thisValue, const ArgList& args) { - if (callType == CallTypeHost) { -#ifdef QT_BUILD_SCRIPT_LIB - ScopeChainNode* scopeChain = exec->scopeChain(); - Interpreter *interp = exec->interpreter(); - Register *oldEnd = interp->registerFile().end(); - int argc = 1 + args.size(); // implicit "this" parameter - if (!interp->registerFile().grow(oldEnd + argc + RegisterFile::CallFrameHeaderSize)) - return createStackOverflowError(exec); - CallFrame* newCallFrame = CallFrame::create(oldEnd); - newCallFrame[0] = thisValue; - size_t dst = 0; - ArgList::const_iterator it; - for (it = args.begin(); it != args.end(); ++it) - newCallFrame[++dst] = *it; - newCallFrame += argc + RegisterFile::CallFrameHeaderSize; - newCallFrame->init(0, /*vPC=*/0, scopeChain, exec, 0, argc, asObject(functionObject)); - JSValue result = callData.native.function(newCallFrame, asObject(functionObject), thisValue, args); - interp->registerFile().shrink(oldEnd); - return result; -#else + if (callType == CallTypeHost) return callData.native.function(exec, asObject(functionObject), thisValue, args); -#endif - } ASSERT(callType == CallTypeJS); // FIXME: Can this be done more efficiently using the callData? return asFunction(functionObject)->call(exec, thisValue, args); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.cpp index 5fe792f..d4eb307 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/ConstructData.cpp @@ -25,12 +25,6 @@ #include "config.h" #include "ConstructData.h" -#ifdef QT_BUILD_SCRIPT_LIB -#include "ExceptionHelpers.h" -#include "Interpreter.h" -#include "JSGlobalObject.h" -#include "bridge/qscriptobject_p.h" -#endif #include "JSFunction.h" @@ -60,39 +54,8 @@ JSObject* JSC::NativeConstrWrapper::operator() (ExecState* exec, JSObject* jsobj JSObject* construct(ExecState* exec, JSValue callee, ConstructType constructType, const ConstructData& constructData, const ArgList& args) { - if (constructType == ConstructTypeHost) { -#ifdef QT_BUILD_SCRIPT_LIB - Structure* structure; - JSValue prototype = callee.get(exec, exec->propertyNames().prototype); - if (prototype.isObject()) - structure = asObject(prototype)->inheritorID(); - else - structure = exec->lexicalGlobalObject()->emptyObjectStructure(); - JSObject* thisObj = new (exec) QScriptObject(structure); - - ScopeChainNode* scopeChain = exec->scopeChain(); - Interpreter *interp = exec->interpreter(); - Register *oldEnd = interp->registerFile().end(); - int argc = 1 + args.size(); // implicit "this" parameter - if (!interp->registerFile().grow(oldEnd + argc + RegisterFile::CallFrameHeaderSize)) - return asObject(createStackOverflowError(exec)); - CallFrame* newCallFrame = CallFrame::create(oldEnd); - size_t dst = 0; - newCallFrame[0] = JSValue(thisObj); - ArgList::const_iterator it; - for (it = args.begin(); it != args.end(); ++it) - newCallFrame[++dst] = *it; - newCallFrame += argc + RegisterFile::CallFrameHeaderSize; - newCallFrame->init(0, /*vPC=*/0, scopeChain, exec, 0, argc, asObject(callee)); - JSObject *result = constructData.native.function(newCallFrame, asObject(callee), args); - if (!result) - result = thisObj; - interp->registerFile().shrink(oldEnd); - return result; -#else + if (constructType == ConstructTypeHost) return constructData.native.function(exec, asObject(callee), args); -#endif - } ASSERT(constructType == ConstructTypeJS); // FIXME: Can this be done more efficiently using the constructData? return asFunction(callee)->construct(exec, args); diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.cpp index 08f50b4..36fa5d8 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/PropertySlot.cpp @@ -19,10 +19,6 @@ */ #include "config.h" -#ifdef QT_BUILD_SCRIPT_LIB -#include "ExceptionHelpers.h" -#include "Interpreter.h" -#endif #include "PropertySlot.h" #include "JSFunction.h" @@ -39,25 +35,8 @@ JSValue PropertySlot::functionGetter(ExecState* exec, const Identifier&, const P CallData callData; CallType callType = slot.m_data.getterFunc->getCallData(callData); - if (callType == CallTypeHost) { -#ifdef QT_BUILD_SCRIPT_LIB - ScopeChainNode* scopeChain = exec->scopeChain(); - Interpreter *interp = exec->interpreter(); - Register *oldEnd = interp->registerFile().end(); - int argc = 1; // implicit "this" parameter - if (!interp->registerFile().grow(oldEnd + argc + RegisterFile::CallFrameHeaderSize)) - return createStackOverflowError(exec); - JSC::CallFrame* newCallFrame = JSC::CallFrame::create(oldEnd); - newCallFrame[0] = slot.slotBase(); // this - newCallFrame += argc + JSC::RegisterFile::CallFrameHeaderSize; - newCallFrame->init(0, /*vPC=*/0, scopeChain, exec, 0, argc, slot.m_data.getterFunc); - JSValue result = callData.native.function(newCallFrame, slot.m_data.getterFunc, slot.slotBase(), exec->emptyList()); - interp->registerFile().shrink(oldEnd); - return result; -#else + if (callType == CallTypeHost) return callData.native.function(exec, slot.m_data.getterFunc, slot.slotBase(), exec->emptyList()); -#endif - } ASSERT(callType == CallTypeJS); // FIXME: Can this be done more efficiently using the callData? return static_cast<JSFunction*>(slot.m_data.getterFunc)->call(exec, slot.slotBase(), exec->emptyList()); |