]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/PropertySlot.cpp
JavaScriptCore-903.5.tar.gz
[apple/javascriptcore.git] / runtime / PropertySlot.cpp
index 36fa5d83d6102e29c2a2f15bd4c454c92075da2c..fd16c0c092b740e99fd91b3ec34a7527cfc1de48 100644 (file)
 
 #include "JSFunction.h"
 #include "JSGlobalObject.h"
-#include "JSObject.h"
 
 namespace JSC {
 
-JSValue PropertySlot::functionGetter(ExecState* exec, const Identifier&, const PropertySlot& slot)
+JSValue PropertySlot::functionGetter(ExecState* exec) const
 {
     // Prevent getter functions from observing execution if an exception is pending.
     if (exec->hadException())
         return exec->exception();
 
     CallData callData;
-    CallType callType = slot.m_data.getterFunc->getCallData(callData);
-    if (callType == CallTypeHost)
-        return callData.native.function(exec, slot.m_data.getterFunc, slot.slotBase(), exec->emptyList());
-    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());
+    CallType callType = m_data.getterFunc->getCallData(callData);
+    return call(exec, m_data.getterFunc, callType, callData, thisValue(), exec->emptyList());
 }
 
 } // namespace JSC