X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/f9bf01c6616d5ddcf65b13b33cedf9e387ff7a63..ef99ff287df9046eb88937225e0554eabb00e33c:/API/JSCallbackFunction.h diff --git a/API/JSCallbackFunction.h b/API/JSCallbackFunction.h index 10dae6b..a4fdd06 100644 --- a/API/JSCallbackFunction.h +++ b/API/JSCallbackFunction.h @@ -10,10 +10,10 @@ * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR @@ -32,23 +32,28 @@ namespace JSC { class JSCallbackFunction : public InternalFunction { + friend struct APICallbackFunction; public: - JSCallbackFunction(ExecState*, JSObjectCallAsFunctionCallback, const Identifier& name); + typedef InternalFunction Base; - static const ClassInfo info; + static JSCallbackFunction* create(VM&, JSGlobalObject*, JSObjectCallAsFunctionCallback, const String& name); + + DECLARE_INFO; // InternalFunction mish-mashes constructor and function behavior -- we should // refactor the code so this override isn't necessary - static PassRefPtr<Structure> createStructure(JSValue proto) + static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue proto) { - return Structure::create(proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount); + return Structure::create(vm, globalObject, proto, TypeInfo(ObjectType, StructureFlags), info()); } private: - virtual CallType getCallData(CallData&); - virtual const ClassInfo* classInfo() const { return &info; } + JSCallbackFunction(VM&, Structure*, JSObjectCallAsFunctionCallback); + void finishCreation(VM&, const String& name); + + static CallType getCallData(JSCell*, CallData&); - static JSValue JSC_HOST_CALL call(ExecState*, JSObject*, JSValue, const ArgList&); + JSObjectCallAsFunctionCallback functionCallback() { return m_callback; } JSObjectCallAsFunctionCallback m_callback; };