]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/PropertySlot.cpp
JavaScriptCore-7600.1.4.11.8.tar.gz
[apple/javascriptcore.git] / runtime / PropertySlot.cpp
index a0a2f48f9c5c1d9334ec4c88eae3702cf17152ca..c949f4bd23441cc87f7f663c48b5a694220bc1b8 100644 (file)
 #include "config.h"
 #include "PropertySlot.h"
 
-#include "JSFunction.h"
-#include "JSGlobalObject.h"
+#include "GetterSetter.h"
+#include "JSCJSValueInlines.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 asFunction(slot.m_data.getterFunc)->call(exec, slot.slotBase(), exec->emptyList());
+    ASSERT(m_thisValue);
+    return callGetter(exec, m_thisValue, m_data.getter.getterSetter);
 }
 
 } // namespace JSC