X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/14957cd040308e3eeec43d26bae5d76da13fcd85..a253471d7f8e4d91bf6ebabab00155c3b387d3d0:/runtime/InternalFunction.h diff --git a/runtime/InternalFunction.h b/runtime/InternalFunction.h index 28e260e..532bd0c 100644 --- a/runtime/InternalFunction.h +++ b/runtime/InternalFunction.h @@ -24,38 +24,36 @@ #ifndef InternalFunction_h #define InternalFunction_h -#include "JSObjectWithGlobalObject.h" +#include "JSObject.h" #include "Identifier.h" namespace JSC { class FunctionPrototype; - class InternalFunction : public JSObjectWithGlobalObject { + class InternalFunction : public JSNonFinalObject { public: + typedef JSNonFinalObject Base; + static JS_EXPORTDATA const ClassInfo s_info; - const UString& name(ExecState*); + JS_EXPORT_PRIVATE const UString& name(ExecState*); const UString displayName(ExecState*); const UString calculatedDisplayName(ExecState*); - static Structure* createStructure(JSGlobalData& globalData, JSValue proto) + static Structure* createStructure(JSGlobalData& globalData, JSGlobalObject* globalObject, JSValue proto) { - return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); + return Structure::create(globalData, globalObject, proto, TypeInfo(ObjectType, StructureFlags), &s_info); } protected: static const unsigned StructureFlags = ImplementsHasInstance | JSObject::StructureFlags; - // Only used to allow us to determine the JSFunction vptr - InternalFunction(VPtrStealingHackType); - - InternalFunction(JSGlobalData*, JSGlobalObject*, Structure*, const Identifier&); + JS_EXPORT_PRIVATE InternalFunction(JSGlobalObject*, Structure*); - private: - virtual CallType getCallData(CallData&) = 0; + JS_EXPORT_PRIVATE void finishCreation(JSGlobalData&, const Identifier& name); - virtual void vtableAnchor(); + static CallType getCallData(JSCell*, CallData&); }; InternalFunction* asInternalFunction(JSValue);