X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/b37bf2e156556c589aea3e1f58a377f2b1189665..14957cd040308e3eeec43d26bae5d76da13fcd85:/API/JSCallbackConstructor.h diff --git a/API/JSCallbackConstructor.h b/API/JSCallbackConstructor.h index fc45cb5..64b237d 100644 --- a/API/JSCallbackConstructor.h +++ b/API/JSCallbackConstructor.h @@ -1,6 +1,5 @@ -// -*- mode: c++; c-basic-offset: 4 -*- /* - * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. + * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -28,32 +27,33 @@ #define JSCallbackConstructor_h #include "JSObjectRef.h" -#include +#include -namespace KJS { +namespace JSC { -class JSCallbackConstructor : public JSObject -{ +class JSCallbackConstructor : public JSObjectWithGlobalObject { public: - JSCallbackConstructor(ExecState* exec, JSClassRef jsClass, JSObjectCallAsConstructorCallback callback); + JSCallbackConstructor(JSGlobalObject*, Structure*, JSClassRef, JSObjectCallAsConstructorCallback); virtual ~JSCallbackConstructor(); - - virtual bool implementsHasInstance() const; - - virtual bool implementsConstruct() const; - virtual JSObject* construct(ExecState*, const List &args); - - virtual const ClassInfo *classInfo() const { return &info; } - static const ClassInfo info; - + JSClassRef classRef() const { return m_class; } + JSObjectCallAsConstructorCallback callback() const { return m_callback; } + static const ClassInfo s_info; + + static Structure* createStructure(JSGlobalData& globalData, JSValue proto) + { + return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), AnonymousSlotCount, &s_info); + } + +protected: + static const unsigned StructureFlags = ImplementsHasInstance | JSObject::StructureFlags; + private: - JSCallbackConstructor(); // prevent default construction - JSCallbackConstructor(const JSCallbackConstructor&); + virtual ConstructType getConstructData(ConstructData&); JSClassRef m_class; JSObjectCallAsConstructorCallback m_callback; }; -} // namespace KJS +} // namespace JSC #endif // JSCallbackConstructor_h