2008-09-23 Tor Arne Vestbø <tavestbo@trolltech.com>
[WebKit-https.git] / WebCore / bridge / qt / qt_instance.cpp
index 07fdf9094515772689b01f901570637f4481ad8c..3d8af4251e0b0fcc9509cddb795496f7d17fa9eb 100644 (file)
@@ -61,9 +61,6 @@ class QtRuntimeObjectImp : public RuntimeObjectImp {
             RuntimeObjectImp::mark();
         }
 
-        // Additions
-        virtual ConstructType getConstructData(ConstructData&);
-        virtual JSObject* construct(ExecState* exec, const ArgList& args);
     protected:
         void removeFromCache();
 };
@@ -92,38 +89,6 @@ void QtRuntimeObjectImp::removeFromCache()
         cachedObjects.remove(key);
 }
 
-ConstructType QtRuntimeObjectImp::getConstructData(ConstructData& constructData)
-{
-    CallData callData;
-    ConstructType type = ConstructTypeNone;
-    switch (getCallData(callData)) {
-    case CallTypeNone:
-        break;
-    case CallTypeHost:
-        type = ConstructTypeHost;
-        break;
-    case CallTypeJS:
-        type = ConstructTypeJS;
-        constructData.js.functionBody = callData.js.functionBody;
-        constructData.js.scopeChain = callData.js.scopeChain;
-        break;
-    }
-    return type;
-}
-
-JSObject* QtRuntimeObjectImp::construct(ExecState* exec, const ArgList& args)
-{
-    // ECMA 15.2.2.1 (?)
-    CallData callData;
-    CallType callType = getCallData(callData);
-    JSValue* val = call(exec, this, callType, callData, this, args);
-
-    if (!val || val->isUndefinedOrNull())
-        return new (exec) JSObject(exec->lexicalGlobalObject()->emptyObjectStructure());
-    else
-        return val->toObject(exec);
-}
-
 // QtInstance
 QtInstance::QtInstance(QObject* o, PassRefPtr<RootObject> rootObject)
     : Instance(rootObject)
@@ -131,7 +96,6 @@ QtInstance::QtInstance(QObject* o, PassRefPtr<RootObject> rootObject)
     , m_object(o)
     , m_hashkey(o)
     , m_defaultMethod(0)
-    , m_defaultMethodIndex(-2)
 {
 }
 
@@ -248,52 +212,6 @@ JSValue* QtInstance::invokeMethod(ExecState*, const MethodList&, const ArgList&)
     return jsUndefined();
 }
 
-CallType QtInstance::getCallData(CallData&)
-{
-    // See if we have qscript_call
-    if (m_defaultMethodIndex == -2) {
-        if (m_object) {
-            const QMetaObject* meta = m_object->metaObject();
-            int count = meta->methodCount();
-            const QByteArray defsig("qscript_call");
-            for (int index = count - 1; index >= 0; --index) {
-                const QMetaMethod m = meta->method(index);
-
-                QByteArray signature = m.signature();
-                signature.truncate(signature.indexOf('('));
-
-                if (defsig == signature) {
-                    m_defaultMethodIndex = index;
-                    break;
-                }
-            }
-        }
-
-        if (m_defaultMethodIndex == -2) // Not checked
-            m_defaultMethodIndex = -1; // No qscript_call
-    }
-
-    // typeof object that implements call == function
-    return (m_defaultMethodIndex >= 0 ? CallTypeHost : CallTypeNone);
-}
-
-JSValue* QtInstance::invokeDefaultMethod(ExecState* exec, const ArgList& args)
-{
-    // QtScript tries to invoke a meta method qscript_call
-    if (!getObject())
-        return throwError(exec, GeneralError, "cannot call function of deleted QObject");
-
-    // implementsCall will update our default method cache, if possible
-    CallData callData;
-    CallType callType = getCallData(callData);
-    if (callType != CallTypeNone) {
-        if (!m_defaultMethod)
-            m_defaultMethod = new (exec) QtRuntimeMetaMethod(exec, Identifier(exec, "[[Call]]"),this, m_defaultMethodIndex, QByteArray("qscript_call"), true);
-
-        return call(exec, m_defaultMethod, callType, callData, 0, args); // Luckily QtRuntimeMetaMethod ignores the obj parameter
-    } else
-        return throwError(exec, TypeError, "not a function");
-}
 
 JSValue* QtInstance::defaultValue(ExecState* exec, PreferredPrimitiveType hint) const
 {