Changeset 92706 in webkit


Ignore:
Timestamp:
Aug 9, 2011 1:46:17 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

Add ParentClass typedef in all JSC classes
https://bugs.webkit.org/show_bug.cgi?id=65731

Patch by Mark Hahnenberg <mhahnenberg@apple.com> on 2011-08-09
Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Just added the Base typedefs in all the classes that are a subclass of JSCell
to point at their parent classes. This is a change to support future changes to the way
constructors and destructors are implemented in JS objects, among other things.

  • API/JSCallbackConstructor.h:
  • API/JSCallbackFunction.h:
  • API/JSCallbackObject.h:

(JSC::JSCallbackObject::createStructure):
(JSC::JSCallbackObject::visitChildren):

  • API/JSCallbackObjectFunctions.h:

(JSC::::asCallbackObject):
(JSC::::JSCallbackObject):
(JSC::::init):
(JSC::::className):
(JSC::::getOwnPropertySlot):
(JSC::::getOwnPropertyDescriptor):
(JSC::::put):
(JSC::::deleteProperty):
(JSC::::getConstructData):
(JSC::::construct):
(JSC::::hasInstance):
(JSC::::getCallData):
(JSC::::call):
(JSC::::getOwnPropertyNames):
(JSC::::toNumber):
(JSC::::toString):
(JSC::::setPrivate):
(JSC::::getPrivate):
(JSC::::inherits):
(JSC::::getStaticValue):
(JSC::::staticFunctionGetter):
(JSC::::callbackGetter):

  • debugger/DebuggerActivation.h:
  • jsc.cpp:
  • runtime/Arguments.h:
  • runtime/ArrayConstructor.h:
  • runtime/ArrayPrototype.h:
  • runtime/BooleanConstructor.h:
  • runtime/BooleanObject.h:
  • runtime/BooleanPrototype.h:
  • runtime/DateConstructor.h:
  • runtime/DateInstance.h:
  • runtime/DatePrototype.h:
  • runtime/Error.cpp:
  • runtime/ErrorConstructor.h:
  • runtime/ErrorInstance.h:
  • runtime/ErrorPrototype.h:
  • runtime/ExceptionHelpers.cpp:
  • runtime/Executable.h:
  • runtime/FunctionConstructor.h:
  • runtime/FunctionPrototype.h:
  • runtime/GetterSetter.h:
  • runtime/InternalFunction.h:
  • runtime/JSAPIValueWrapper.h:
  • runtime/JSActivation.h:
  • runtime/JSArray.h:
  • runtime/JSFunction.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSNotAnObject.h:
  • runtime/JSONObject.h:
  • runtime/JSObject.h:
  • runtime/JSPropertyNameIterator.h:
  • runtime/JSStaticScopeObject.h:
  • runtime/JSString.h:
  • runtime/JSVariableObject.h:
  • runtime/JSWrapperObject.h:
  • runtime/MathObject.h:
  • runtime/NativeErrorConstructor.h:
  • runtime/NativeErrorPrototype.h:
  • runtime/NumberConstructor.h:
  • runtime/NumberObject.h:
  • runtime/NumberPrototype.h:
  • runtime/ObjectConstructor.h:
  • runtime/ObjectPrototype.h:
  • runtime/RegExp.h:
  • runtime/RegExpConstructor.h:
  • runtime/RegExpMatchesArray.h:
  • runtime/RegExpObject.h:

(JSC::RegExpObject::create):

  • runtime/RegExpPrototype.h:
  • runtime/ScopeChain.h:
  • runtime/StrictEvalActivation.h:
  • runtime/StringConstructor.h:
  • runtime/StringObject.h:
  • runtime/StringObjectThatMasqueradesAsUndefined.h:
  • runtime/StringPrototype.h:
  • runtime/Structure.h:
  • runtime/StructureChain.h:

Source/JavaScriptGlue:

Just added the Base typedefs in all the classes that are a subclass of JSCell
to point at their parent classes. This is a change to support future changes to the way
constructors and destructors are implemented in JS objects, among other things.

  • JSRun.h:
  • UserObjectImp.h:

Source/WebCore:

No new tests.

Just added the Base typedefs in all the classes that are a subclass of JSCell
to point at their parent classes. This is a change to support future changes to the way
constructors and destructors are implemented in JS objects, among other things.

  • bindings/js/JSAudioConstructor.h:
  • bindings/js/JSImageConstructor.h:
  • bindings/js/JSOptionConstructor.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateConstructorDeclaration):

  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bridge/c/CRuntimeObject.h:
  • bridge/c/c_instance.cpp:
  • bridge/jni/jsc/JavaInstanceJSC.cpp:
  • bridge/jni/jsc/JavaRuntimeObject.h:
  • bridge/objc/ObjCRuntimeObject.h:
  • bridge/objc/objc_runtime.h:
  • bridge/qt/qt_instance.cpp:
  • bridge/qt/qt_pixmapruntime.cpp:
  • bridge/qt/qt_runtime.h:
  • bridge/runtime_array.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:
  • bridge/testqtbindings.cpp:

(Global::className):

Source/WebKit/mac:

Just added the Base typedefs in all the classes that are a subclass of JSCell
to point at their parent classes. This is a change to support future changes to the way
constructors and destructors are implemented in JS objects, among other things.

  • Plugins/Hosted/ProxyInstance.mm:
  • Plugins/Hosted/ProxyRuntimeObject.h:

Source/WebKit2:

Just added the Base typedefs in all the classes that are a subclass of JSCell
to point at their parent classes. This is a change to support future changes to the way
constructors and destructors are implemented in JS objects, among other things.

  • WebProcess/Plugins/Netscape/JSNPMethod.h:
  • WebProcess/Plugins/Netscape/JSNPObject.h:
Location:
trunk/Source
Files:
95 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/API/JSCallbackConstructor.h

    r91194 r92706  
    3333
    3434class JSCallbackConstructor : public JSObjectWithGlobalObject {
    35 protected:
    36     JSCallbackConstructor(JSGlobalObject*, Structure*, JSClassRef, JSObjectCallAsConstructorCallback);
    3735public:
     36    typedef JSObjectWithGlobalObject Base;
     37
    3838    static JSCallbackConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef classRef, JSObjectCallAsConstructorCallback callback)
    3939    {
     
    5252
    5353protected:
     54    JSCallbackConstructor(JSGlobalObject*, Structure*, JSClassRef, JSObjectCallAsConstructorCallback);
    5455    static const unsigned StructureFlags = ImplementsHasInstance | JSObject::StructureFlags;
    5556
  • trunk/Source/JavaScriptCore/API/JSCallbackFunction.h

    r91194 r92706  
    3737
    3838public:
     39    typedef InternalFunction Base;
     40
    3941    static JSCallbackFunction* create(ExecState* exec, JSGlobalObject* globalObject, JSObjectCallAsFunctionCallback callback, const Identifier& name)
    4042    {
  • trunk/Source/JavaScriptCore/API/JSCallbackObject.h

    r91194 r92706  
    115115
    116116   
    117 template <class Base>
    118 class JSCallbackObject : public Base {
     117template <class Parent>
     118class JSCallbackObject : public Parent {
    119119protected:
    120120    JSCallbackObject(ExecState*, JSGlobalObject*, Structure*, JSClassRef, void* data);
    121121    JSCallbackObject(JSGlobalData&, JSClassRef, Structure*);
    122122    // We'd like to use the placement version of operator new defined in JSCell, but
    123     // we can't because Base is a template argument, so we just duplicate the same
     123    // we can't because Parent is a template argument, so we just duplicate the same
    124124    // functionality here.
    125125    void* operator new(size_t, void* ptr) { return ptr; }
    126126
    127127public:
     128    typedef Parent Base;
     129
    128130    static JSCallbackObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef classRef, void* data)
    129131    {
     
    145147    static Structure* createStructure(JSGlobalData& globalData, JSValue proto)
    146148    {
    147         return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), Base::AnonymousSlotCount, &s_info);
     149        return Structure::create(globalData, proto, TypeInfo(ObjectType, StructureFlags), Parent::AnonymousSlotCount, &s_info);
    148150    }
    149151   
     
    164166
    165167protected:
    166     static const unsigned StructureFlags = ProhibitsPropertyCaching | OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | Base::StructureFlags;
     168    static const unsigned StructureFlags = ProhibitsPropertyCaching | OverridesGetOwnPropertySlot | ImplementsHasInstance | OverridesHasInstance | OverridesVisitChildren | OverridesGetPropertyNames | Parent::StructureFlags;
    167169
    168170private:
     
    189191    virtual void visitChildren(SlotVisitor& visitor)
    190192    {
    191         ASSERT_GC_OBJECT_INHERITS((static_cast<Base*>(this)), &JSCallbackObject<Base>::s_info);
     193        ASSERT_GC_OBJECT_INHERITS((static_cast<Parent*>(this)), &JSCallbackObject<Parent>::s_info);
    192194        COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
    193         ASSERT(Base::structure()->typeInfo().overridesVisitChildren());
    194         Base::visitChildren(visitor);
     195        ASSERT(Parent::structure()->typeInfo().overridesVisitChildren());
     196        Parent::visitChildren(visitor);
    195197        m_callbackObjectData->visitChildren(visitor);
    196198    }
  • trunk/Source/JavaScriptCore/API/JSCallbackObjectFunctions.h

    r91194 r92706  
    4343namespace JSC {
    4444
    45 template <class Base>
    46 inline JSCallbackObject<Base>* JSCallbackObject<Base>::asCallbackObject(JSValue value)
     45template <class Parent>
     46inline JSCallbackObject<Parent>* JSCallbackObject<Parent>::asCallbackObject(JSValue value)
    4747{
    4848    ASSERT(asObject(value)->inherits(&s_info));
     
    5050}
    5151
    52 template <class Base>
    53 JSCallbackObject<Base>::JSCallbackObject(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef jsClass, void* data)
    54     : Base(globalObject, structure)
     52template <class Parent>
     53JSCallbackObject<Parent>::JSCallbackObject(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, JSClassRef jsClass, void* data)
     54    : Parent(globalObject, structure)
    5555    , m_callbackObjectData(adoptPtr(new JSCallbackObjectData(data, jsClass)))
    5656{
    57     ASSERT(Base::inherits(&s_info));
     57    ASSERT(Parent::inherits(&s_info));
    5858    init(exec);
    5959}
     
    6161// Global object constructor.
    6262// FIXME: Move this into a separate JSGlobalCallbackObject class derived from this one.
    63 template <class Base>
    64 JSCallbackObject<Base>::JSCallbackObject(JSGlobalData& globalData, JSClassRef jsClass, Structure* structure)
    65     : Base(globalData, structure)
     63template <class Parent>
     64JSCallbackObject<Parent>::JSCallbackObject(JSGlobalData& globalData, JSClassRef jsClass, Structure* structure)
     65    : Parent(globalData, structure)
    6666    , m_callbackObjectData(adoptPtr(new JSCallbackObjectData(0, jsClass)))
    6767{
    68     ASSERT(Base::inherits(&s_info));
    69     ASSERT(Base::isGlobalObject());
     68    ASSERT(Parent::inherits(&s_info));
     69    ASSERT(Parent::isGlobalObject());
    7070    init(static_cast<JSGlobalObject*>(this)->globalExec());
    7171}
    7272
    73 template <class Base>
    74 void JSCallbackObject<Base>::init(ExecState* exec)
     73template <class Parent>
     74void JSCallbackObject<Parent>::init(ExecState* exec)
    7575{
    7676    ASSERT(exec);
     
    101101}
    102102
    103 template <class Base>
    104 UString JSCallbackObject<Base>::className() const
     103template <class Parent>
     104UString JSCallbackObject<Parent>::className() const
    105105{
    106106    UString thisClassName = classRef()->className();
     
    108108        return thisClassName;
    109109   
    110     return Base::className();
    111 }
    112 
    113 template <class Base>
    114 bool JSCallbackObject<Base>::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
     110    return Parent::className();
     111}
     112
     113template <class Parent>
     114bool JSCallbackObject<Parent>::getOwnPropertySlot(ExecState* exec, const Identifier& propertyName, PropertySlot& slot)
    115115{
    116116    JSContextRef ctx = toRef(exec);
     
    166166    }
    167167   
    168     return Base::getOwnPropertySlot(exec, propertyName, slot);
    169 }
    170 
    171 template <class Base>
    172 bool JSCallbackObject<Base>::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
     168    return Parent::getOwnPropertySlot(exec, propertyName, slot);
     169}
     170
     171template <class Parent>
     172bool JSCallbackObject<Parent>::getOwnPropertyDescriptor(ExecState* exec, const Identifier& propertyName, PropertyDescriptor& descriptor)
    173173{
    174174    PropertySlot slot;
     
    185185    }
    186186
    187     return Base::getOwnPropertyDescriptor(exec, propertyName, descriptor);
    188 }
    189 
    190 template <class Base>
    191 void JSCallbackObject<Base>::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
     187    return Parent::getOwnPropertyDescriptor(exec, propertyName, descriptor);
     188}
     189
     190template <class Parent>
     191void JSCallbackObject<Parent>::put(ExecState* exec, const Identifier& propertyName, JSValue value, PutPropertySlot& slot)
    192192{
    193193    JSContextRef ctx = toRef(exec);
     
    237237                if (entry->attributes & kJSPropertyAttributeReadOnly)
    238238                    return;
    239                 JSCallbackObject<Base>::putDirect(exec->globalData(), propertyName, value); // put as override property
     239                JSCallbackObject<Parent>::putDirect(exec->globalData(), propertyName, value); // put as override property
    240240                return;
    241241            }
     
    243243    }
    244244   
    245     return Base::put(exec, propertyName, value, slot);
    246 }
    247 
    248 template <class Base>
    249 bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, const Identifier& propertyName)
     245    return Parent::put(exec, propertyName, value, slot);
     246}
     247
     248template <class Parent>
     249bool JSCallbackObject<Parent>::deleteProperty(ExecState* exec, const Identifier& propertyName)
    250250{
    251251    JSContextRef ctx = toRef(exec);
     
    286286    }
    287287   
    288     return Base::deleteProperty(exec, propertyName);
    289 }
    290 
    291 template <class Base>
    292 bool JSCallbackObject<Base>::deleteProperty(ExecState* exec, unsigned propertyName)
     288    return Parent::deleteProperty(exec, propertyName);
     289}
     290
     291template <class Parent>
     292bool JSCallbackObject<Parent>::deleteProperty(ExecState* exec, unsigned propertyName)
    293293{
    294294    return deleteProperty(exec, Identifier::from(exec, propertyName));
    295295}
    296296
    297 template <class Base>
    298 ConstructType JSCallbackObject<Base>::getConstructData(ConstructData& constructData)
     297template <class Parent>
     298ConstructType JSCallbackObject<Parent>::getConstructData(ConstructData& constructData)
    299299{
    300300    for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) {
     
    307307}
    308308
    309 template <class Base>
    310 EncodedJSValue JSCallbackObject<Base>::construct(ExecState* exec)
     309template <class Parent>
     310EncodedJSValue JSCallbackObject<Parent>::construct(ExecState* exec)
    311311{
    312312    JSObject* constructor = exec->callee();
     
    314314    JSObjectRef constructorRef = toRef(constructor);
    315315   
    316     for (JSClassRef jsClass = static_cast<JSCallbackObject<Base>*>(constructor)->classRef(); jsClass; jsClass = jsClass->parentClass) {
     316    for (JSClassRef jsClass = static_cast<JSCallbackObject<Parent>*>(constructor)->classRef(); jsClass; jsClass = jsClass->parentClass) {
    317317        if (JSObjectCallAsConstructorCallback callAsConstructor = jsClass->callAsConstructor) {
    318318            int argumentCount = static_cast<int>(exec->argumentCount());
     
    336336}
    337337
    338 template <class Base>
    339 bool JSCallbackObject<Base>::hasInstance(ExecState* exec, JSValue value, JSValue)
     338template <class Parent>
     339bool JSCallbackObject<Parent>::hasInstance(ExecState* exec, JSValue value, JSValue)
    340340{
    341341    JSContextRef execRef = toRef(exec);
     
    359359}
    360360
    361 template <class Base>
    362 CallType JSCallbackObject<Base>::getCallData(CallData& callData)
     361template <class Parent>
     362CallType JSCallbackObject<Parent>::getCallData(CallData& callData)
    363363{
    364364    for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass) {
     
    371371}
    372372
    373 template <class Base>
    374 EncodedJSValue JSCallbackObject<Base>::call(ExecState* exec)
     373template <class Parent>
     374EncodedJSValue JSCallbackObject<Parent>::call(ExecState* exec)
    375375{
    376376    JSContextRef execRef = toRef(exec);
     
    378378    JSObjectRef thisObjRef = toRef(exec->hostThisValue().toThisObject(exec));
    379379   
    380     for (JSClassRef jsClass = static_cast<JSCallbackObject<Base>*>(toJS(functionRef))->classRef(); jsClass; jsClass = jsClass->parentClass) {
     380    for (JSClassRef jsClass = static_cast<JSCallbackObject<Parent>*>(toJS(functionRef))->classRef(); jsClass; jsClass = jsClass->parentClass) {
    381381        if (JSObjectCallAsFunctionCallback callAsFunction = jsClass->callAsFunction) {
    382382            int argumentCount = static_cast<int>(exec->argumentCount());
     
    400400}
    401401
    402 template <class Base>
    403 void JSCallbackObject<Base>::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
     402template <class Parent>
     403void JSCallbackObject<Parent>::getOwnPropertyNames(ExecState* exec, PropertyNameArray& propertyNames, EnumerationMode mode)
    404404{
    405405    JSContextRef execRef = toRef(exec);
     
    435435    }
    436436   
    437     Base::getOwnPropertyNames(exec, propertyNames, mode);
    438 }
    439 
    440 template <class Base>
    441 double JSCallbackObject<Base>::toNumber(ExecState* exec) const
     437    Parent::getOwnPropertyNames(exec, propertyNames, mode);
     438}
     439
     440template <class Parent>
     441double JSCallbackObject<Parent>::toNumber(ExecState* exec) const
    442442{
    443443    // We need this check to guard against the case where this object is rhs of
     
    467467        }
    468468           
    469     return Base::toNumber(exec);
    470 }
    471 
    472 template <class Base>
    473 UString JSCallbackObject<Base>::toString(ExecState* exec) const
     469    return Parent::toNumber(exec);
     470}
     471
     472template <class Parent>
     473UString JSCallbackObject<Parent>::toString(ExecState* exec) const
    474474{
    475475    JSContextRef ctx = toRef(exec);
     
    492492        }
    493493           
    494     return Base::toString(exec);
    495 }
    496 
    497 template <class Base>
    498 void JSCallbackObject<Base>::setPrivate(void* data)
     494    return Parent::toString(exec);
     495}
     496
     497template <class Parent>
     498void JSCallbackObject<Parent>::setPrivate(void* data)
    499499{
    500500    m_callbackObjectData->privateData = data;
    501501}
    502502
    503 template <class Base>
    504 void* JSCallbackObject<Base>::getPrivate()
     503template <class Parent>
     504void* JSCallbackObject<Parent>::getPrivate()
    505505{
    506506    return m_callbackObjectData->privateData;
    507507}
    508508
    509 template <class Base>
    510 bool JSCallbackObject<Base>::inherits(JSClassRef c) const
     509template <class Parent>
     510bool JSCallbackObject<Parent>::inherits(JSClassRef c) const
    511511{
    512512    for (JSClassRef jsClass = classRef(); jsClass; jsClass = jsClass->parentClass)
     
    517517}
    518518
    519 template <class Base>
    520 JSValue JSCallbackObject<Base>::getStaticValue(ExecState* exec, const Identifier& propertyName)
     519template <class Parent>
     520JSValue JSCallbackObject<Parent>::getStaticValue(ExecState* exec, const Identifier& propertyName)
    521521{
    522522    JSObjectRef thisRef = toRef(this);
     
    546546}
    547547
    548 template <class Base>
    549 JSValue JSCallbackObject<Base>::staticFunctionGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
    550 {
    551     JSCallbackObject* thisObj = asCallbackObject(slotBase);
     548template <class Parent>
     549JSValue JSCallbackObject<Parent>::staticFunctionGetter(ExecState* exec, JSValue slotParent, const Identifier& propertyName)
     550{
     551    JSCallbackObject* thisObj = asCallbackObject(slotParent);
    552552   
    553553    // Check for cached or override property.
    554554    PropertySlot slot2(thisObj);
    555     if (thisObj->Base::getOwnPropertySlot(exec, propertyName, slot2))
     555    if (thisObj->Parent::getOwnPropertySlot(exec, propertyName, slot2))
    556556        return slot2.getValue(exec, propertyName);
    557557   
     
    572572}
    573573
    574 template <class Base>
    575 JSValue JSCallbackObject<Base>::callbackGetter(ExecState* exec, JSValue slotBase, const Identifier& propertyName)
    576 {
    577     JSCallbackObject* thisObj = asCallbackObject(slotBase);
     574template <class Parent>
     575JSValue JSCallbackObject<Parent>::callbackGetter(ExecState* exec, JSValue slotParent, const Identifier& propertyName)
     576{
     577    JSCallbackObject* thisObj = asCallbackObject(slotParent);
    578578   
    579579    JSObjectRef thisRef = toRef(thisObj);
  • trunk/Source/JavaScriptCore/ChangeLog

    r92635 r92706  
     12011-08-09  Mark Hahnenberg  <mhahnenberg@apple.com>
     2
     3        Add ParentClass typedef in all JSC classes
     4        https://bugs.webkit.org/show_bug.cgi?id=65731
     5
     6        Reviewed by Oliver Hunt.
     7
     8        Just added the Base typedefs in all the classes that are a subclass of JSCell
     9        to point at their parent classes.  This is a change to support future changes to the way
     10        constructors and destructors are implemented in JS objects, among other things.
     11
     12        * API/JSCallbackConstructor.h:
     13        * API/JSCallbackFunction.h:
     14        * API/JSCallbackObject.h:
     15        (JSC::JSCallbackObject::createStructure):
     16        (JSC::JSCallbackObject::visitChildren):
     17        * API/JSCallbackObjectFunctions.h:
     18        (JSC::::asCallbackObject):
     19        (JSC::::JSCallbackObject):
     20        (JSC::::init):
     21        (JSC::::className):
     22        (JSC::::getOwnPropertySlot):
     23        (JSC::::getOwnPropertyDescriptor):
     24        (JSC::::put):
     25        (JSC::::deleteProperty):
     26        (JSC::::getConstructData):
     27        (JSC::::construct):
     28        (JSC::::hasInstance):
     29        (JSC::::getCallData):
     30        (JSC::::call):
     31        (JSC::::getOwnPropertyNames):
     32        (JSC::::toNumber):
     33        (JSC::::toString):
     34        (JSC::::setPrivate):
     35        (JSC::::getPrivate):
     36        (JSC::::inherits):
     37        (JSC::::getStaticValue):
     38        (JSC::::staticFunctionGetter):
     39        (JSC::::callbackGetter):
     40        * debugger/DebuggerActivation.h:
     41        * jsc.cpp:
     42        * runtime/Arguments.h:
     43        * runtime/ArrayConstructor.h:
     44        * runtime/ArrayPrototype.h:
     45        * runtime/BooleanConstructor.h:
     46        * runtime/BooleanObject.h:
     47        * runtime/BooleanPrototype.h:
     48        * runtime/DateConstructor.h:
     49        * runtime/DateInstance.h:
     50        * runtime/DatePrototype.h:
     51        * runtime/Error.cpp:
     52        * runtime/ErrorConstructor.h:
     53        * runtime/ErrorInstance.h:
     54        * runtime/ErrorPrototype.h:
     55        * runtime/ExceptionHelpers.cpp:
     56        * runtime/Executable.h:
     57        * runtime/FunctionConstructor.h:
     58        * runtime/FunctionPrototype.h:
     59        * runtime/GetterSetter.h:
     60        * runtime/InternalFunction.h:
     61        * runtime/JSAPIValueWrapper.h:
     62        * runtime/JSActivation.h:
     63        * runtime/JSArray.h:
     64        * runtime/JSFunction.h:
     65        * runtime/JSGlobalObject.h:
     66        * runtime/JSNotAnObject.h:
     67        * runtime/JSONObject.h:
     68        * runtime/JSObject.h:
     69        * runtime/JSPropertyNameIterator.h:
     70        * runtime/JSStaticScopeObject.h:
     71        * runtime/JSString.h:
     72        * runtime/JSVariableObject.h:
     73        * runtime/JSWrapperObject.h:
     74        * runtime/MathObject.h:
     75        * runtime/NativeErrorConstructor.h:
     76        * runtime/NativeErrorPrototype.h:
     77        * runtime/NumberConstructor.h:
     78        * runtime/NumberObject.h:
     79        * runtime/NumberPrototype.h:
     80        * runtime/ObjectConstructor.h:
     81        * runtime/ObjectPrototype.h:
     82        * runtime/RegExp.h:
     83        * runtime/RegExpConstructor.h:
     84        * runtime/RegExpMatchesArray.h:
     85        * runtime/RegExpObject.h:
     86        (JSC::RegExpObject::create):
     87        * runtime/RegExpPrototype.h:
     88        * runtime/ScopeChain.h:
     89        * runtime/StrictEvalActivation.h:
     90        * runtime/StringConstructor.h:
     91        * runtime/StringObject.h:
     92        * runtime/StringObjectThatMasqueradesAsUndefined.h:
     93        * runtime/StringPrototype.h:
     94        * runtime/Structure.h:
     95        * runtime/StructureChain.h:
     96
    1972011-08-08  Oliver Hunt  <oliver@apple.com>
    298
  • trunk/Source/JavaScriptCore/debugger/DebuggerActivation.h

    r91903 r92706  
    3535    class DebuggerActivation : public JSNonFinalObject {
    3636    public:
     37        typedef JSNonFinalObject Base;
     38
    3739        static DebuggerActivation* create(JSGlobalData& globalData, JSObject* object)
    3840        {
  • trunk/Source/JavaScriptCore/jsc.cpp

    r92555 r92706  
    149149
    150150public:
     151    typedef JSGlobalObject Base;
     152
    151153    static GlobalObject* create(JSGlobalData& globalData, Structure* structure, const Vector<UString>& arguments)
    152154    {
  • trunk/Source/JavaScriptCore/runtime/Arguments.h

    r91194 r92706  
    6060    class Arguments : public JSNonFinalObject {
    6161    public:
     62        typedef JSNonFinalObject Base;
     63
    6264        static Arguments* create(JSGlobalData& globalData, CallFrame* callFrame)
    6365        {
  • trunk/Source/JavaScriptCore/runtime/ArrayConstructor.h

    r91194 r92706  
    2929
    3030    class ArrayConstructor : public InternalFunction {
    31     private:
    32         ArrayConstructor(ExecState*, JSGlobalObject*, Structure*, ArrayPrototype*);
    33        
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static ArrayConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, ArrayPrototype* arrPrototype)
    3635        {
     
    4948
    5049    private:
     50        ArrayConstructor(ExecState*, JSGlobalObject*, Structure*, ArrayPrototype*);
    5151        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
    5252        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
  • trunk/Source/JavaScriptCore/runtime/ArrayPrototype.h

    r91194 r92706  
    3232
    3333    public:
     34        typedef JSArray Base;
     35
    3436        static ArrayPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3537        {
  • trunk/Source/JavaScriptCore/runtime/BooleanConstructor.h

    r91194 r92706  
    2929
    3030    class BooleanConstructor : public InternalFunction {
    31     private:
    32         BooleanConstructor(ExecState*, JSGlobalObject*, Structure*, BooleanPrototype*);
    33        
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static BooleanConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, BooleanPrototype* boolPrototype)
    3635        {
     
    3938
    4039    private:
     40        BooleanConstructor(ExecState*, JSGlobalObject*, Structure*, BooleanPrototype*);
    4141        virtual ConstructType getConstructData(ConstructData&);
    4242        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/BooleanObject.h

    r91194 r92706  
    3131
    3232    public:
     33        typedef JSWrapperObject Base;
     34
    3335        static BooleanObject* create(JSGlobalData& globalData, Structure* structure)
    3436        {
  • trunk/Source/JavaScriptCore/runtime/BooleanPrototype.h

    r91194 r92706  
    2727
    2828    class BooleanPrototype : public BooleanObject {
    29     private:
    30         BooleanPrototype(ExecState*, JSGlobalObject*, Structure*);
     29    public:
     30        typedef BooleanObject Base;
    3131
    32     public:
    3332        static BooleanPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3433        {
     
    4847
    4948    private:
     49        BooleanPrototype(ExecState*, JSGlobalObject*, Structure*);
    5050        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
    5151        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
  • trunk/Source/JavaScriptCore/runtime/DateConstructor.h

    r91194 r92706  
    2929
    3030    class DateConstructor : public InternalFunction {
    31     private:
    32         DateConstructor(ExecState*, JSGlobalObject*, Structure*, DatePrototype*);
    33        
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static DateConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, DatePrototype* datePrototype)
    3635        {
     
    4948
    5049    private:
     50        DateConstructor(ExecState*, JSGlobalObject*, Structure*, DatePrototype*);
    5151        virtual ConstructType getConstructData(ConstructData&);
    5252        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/DateInstance.h

    r91194 r92706  
    3636       
    3737    public:
     38        typedef JSWrapperObject Base;
     39
    3840        static DateInstance* create(ExecState* exec, Structure* structure, double date)
    3941        {
  • trunk/Source/JavaScriptCore/runtime/DatePrototype.h

    r91194 r92706  
    3333
    3434    public:
     35        typedef DateInstance Base;
     36
    3537        static DatePrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3638        {
  • trunk/Source/JavaScriptCore/runtime/Error.cpp

    r91194 r92706  
    175175
    176176public:
     177    typedef InternalFunction Base;
     178
    177179    static StrictModeTypeErrorFunction* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, const UString& message)
    178180    {
  • trunk/Source/JavaScriptCore/runtime/ErrorConstructor.h

    r91194 r92706  
    3030
    3131    class ErrorConstructor : public InternalFunction {
    32     private:
    33         ErrorConstructor(ExecState*, JSGlobalObject*, Structure*, ErrorPrototype*);
     32    public:
     33        typedef InternalFunction Base;
    3434
    35     public:
    3635        static ErrorConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, ErrorPrototype* errPrototype)
    3736        {
     
    4039       
    4140    private:
     41        ErrorConstructor(ExecState*, JSGlobalObject*, Structure*, ErrorPrototype*);
    4242        virtual ConstructType getConstructData(ConstructData&);
    4343        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/ErrorInstance.h

    r91194 r92706  
    2828    class ErrorInstance : public JSNonFinalObject {
    2929    public:
     30        typedef JSNonFinalObject Base;
     31
    3032        static const ClassInfo s_info;
    3133
  • trunk/Source/JavaScriptCore/runtime/ErrorPrototype.h

    r91194 r92706  
    2929
    3030    class ErrorPrototype : public ErrorInstance {
    31     protected:
    32         ErrorPrototype(ExecState*, JSGlobalObject*, Structure*);
     31    public:
     32        typedef ErrorInstance Base;
    3333
    34     public:
    3534        static ErrorPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3635        {
     
    4645
    4746    protected:
     47        ErrorPrototype(ExecState*, JSGlobalObject*, Structure*);
    4848        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | ErrorInstance::StructureFlags;
    4949        static const unsigned AnonymousSlotCount = ErrorInstance::AnonymousSlotCount + 1;
  • trunk/Source/JavaScriptCore/runtime/ExceptionHelpers.cpp

    r91194 r92706  
    5050
    5151public:
     52    typedef JSNonFinalObject Base;
     53
    5254    static InterruptedExecutionError* create(JSGlobalData& globalData)
    5355    {
     
    7375
    7476public:
     77    typedef JSNonFinalObject Base;
     78
    7579    static TerminatedExecutionError* create(JSGlobalData& globalData)
    7680    {
  • trunk/Source/JavaScriptCore/runtime/Executable.h

    r92250 r92706  
    5454        static const int NUM_PARAMETERS_NOT_COMPILED = -1;
    5555
    56     protected:
    5756        ExecutableBase(JSGlobalData& globalData, Structure* structure, int numParameters)
    5857            : JSCell(globalData, structure)
     
    6766       
    6867    public:
     68        typedef JSCell Base;
     69
    6970        static ExecutableBase* create(JSGlobalData& globalData, Structure* structure, int numParameters)
    7071        {
     
    169170        friend class JIT;
    170171    public:
     172        typedef ExecutableBase Base;
     173
    171174#if ENABLE(JIT)
    172175        static NativeExecutable* create(JSGlobalData& globalData, MacroAssemblerCodePtr callThunk, NativeFunction function, MacroAssemblerCodePtr constructThunk, NativeFunction constructor)
     
    220223    class ScriptExecutable : public ExecutableBase {
    221224    public:
     225        typedef ExecutableBase Base;
     226
    222227        ScriptExecutable(Structure* structure, JSGlobalData& globalData, const SourceCode& source, bool isInStrictContext)
    223228            : ExecutableBase(globalData, structure, NUM_PARAMETERS_NOT_COMPILED)
     
    278283    class EvalExecutable : public ScriptExecutable {
    279284    public:
     285        typedef ScriptExecutable Base;
    280286
    281287        ~EvalExecutable();
     
    327333    class ProgramExecutable : public ScriptExecutable {
    328334    public:
     335        typedef ScriptExecutable Base;
     336
    329337        static ProgramExecutable* create(ExecState* exec, const SourceCode& source)
    330338        {
     
    380388        friend class JIT;
    381389    public:
     390        typedef ScriptExecutable Base;
     391
    382392        static FunctionExecutable* create(ExecState* exec, const Identifier& name, const SourceCode& source, bool forceUsesArguments, FunctionParameters* parameters, bool isInStrictContext, int firstLine, int lastLine)
    383393        {
  • trunk/Source/JavaScriptCore/runtime/FunctionConstructor.h

    r91194 r92706  
    2929
    3030    class FunctionConstructor : public InternalFunction {
    31     private:
    32         FunctionConstructor(ExecState*, JSGlobalObject*, Structure*, FunctionPrototype*);
    33    
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static FunctionConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, FunctionPrototype* funcPrototype)
    3635        {
     
    3938
    4039    private:
     40        FunctionConstructor(ExecState*, JSGlobalObject*, Structure*, FunctionPrototype*);
    4141        virtual ConstructType getConstructData(ConstructData&);
    4242        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/FunctionPrototype.h

    r91194 r92706  
    2727
    2828    class FunctionPrototype : public InternalFunction {
    29     private:
    30         FunctionPrototype(ExecState*, JSGlobalObject*, Structure*);
     29    public:
     30        typedef InternalFunction Base;
    3131
    32     public:
    3332        static FunctionPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3433        {
     
    4443
    4544    private:
     45        FunctionPrototype(ExecState*, JSGlobalObject*, Structure*);
    4646        virtual CallType getCallData(CallData&);
    4747    };
  • trunk/Source/JavaScriptCore/runtime/GetterSetter.h

    r91194 r92706  
    4545
    4646    public:
     47        typedef JSCell Base;
     48
    4749        static GetterSetter* create(ExecState* exec)
    4850        {
  • trunk/Source/JavaScriptCore/runtime/InternalFunction.h

    r84052 r92706  
    3434    class InternalFunction : public JSObjectWithGlobalObject {
    3535    public:
     36        typedef JSObjectWithGlobalObject Base;
     37
    3638        static JS_EXPORTDATA const ClassInfo s_info;
    3739
  • trunk/Source/JavaScriptCore/runtime/JSAPIValueWrapper.h

    r91194 r92706  
    3333        friend JSValue jsAPIValueWrapper(ExecState*, JSValue);
    3434    public:
     35        typedef JSCell Base;
     36
    3537        JSValue value() const { return m_value.get(); }
    3638
  • trunk/Source/JavaScriptCore/runtime/JSActivation.h

    r91194 r92706  
    4242    class JSActivation : public JSVariableObject {
    4343    private:
    44         typedef JSVariableObject Base;
    4544        JSActivation(CallFrame*, FunctionExecutable*);
    4645   
    4746    public:
     47        typedef JSVariableObject Base;
     48
    4849        static JSActivation* create(JSGlobalData& globalData, CallFrame* callFrame, FunctionExecutable* funcExec)
    4950        {
  • trunk/Source/JavaScriptCore/runtime/JSArray.h

    r91194 r92706  
    6767       
    6868    public:
     69        typedef JSNonFinalObject Base;
     70
    6971        JSArray(VPtrStealingHackType);
    7072        virtual ~JSArray();
  • trunk/Source/JavaScriptCore/runtime/JSFunction.h

    r92498 r92706  
    4747        friend class JSGlobalData;
    4848
    49         typedef JSObjectWithGlobalObject Base;
    50 
    5149        JSFunction(ExecState*, JSGlobalObject*, Structure*, int length, const Identifier&, NativeFunction);
    5250        JSFunction(ExecState*, JSGlobalObject*, Structure*, int length, const Identifier&, NativeExecutable*);
     
    5452       
    5553    public:
     54        typedef JSObjectWithGlobalObject Base;
     55
    5656        static JSFunction* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, int length, const Identifier& ident, NativeFunction nativeFunc)
    5757        {
  • trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h

    r92250 r92706  
    143143       
    144144    public:
     145        typedef JSVariableObject Base;
     146
    145147        static JSGlobalObject* create(JSGlobalData& globalData, Structure* structure)
    146148        {
  • trunk/Source/JavaScriptCore/runtime/JSNotAnObject.h

    r91194 r92706  
    4545       
    4646    public:
     47        typedef JSNonFinalObject Base;
     48
    4749        static JSNotAnObject* create(ExecState* exec)
    4850        {
  • trunk/Source/JavaScriptCore/runtime/JSONObject.h

    r91194 r92706  
    3434
    3535    class JSONObject : public JSObjectWithGlobalObject {
    36     private:
    37         JSONObject(JSGlobalObject*, Structure*);
     36    public:
     37        typedef JSObjectWithGlobalObject Base;
    3838
    39     public:
    4039        static JSONObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    4140        {
     
    5453
    5554    private:
     55        JSONObject(JSGlobalObject*, Structure*);
    5656        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
    5757        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
  • trunk/Source/JavaScriptCore/runtime/JSObject.h

    r92569 r92706  
    8181
    8282    public:
     83        typedef JSCell Base;
     84
    8385        virtual void visitChildren(SlotVisitor&);
    8486        ALWAYS_INLINE void visitChildrenDirect(SlotVisitor&);
     
    333335
    334336    public:
     337        typedef JSObject Base;
     338
    335339        static Structure* createStructure(JSGlobalData& globalData, JSValue prototype)
    336340        {
     
    361365
    362366    public:
     367        typedef JSObject Base;
     368
    363369        explicit JSFinalObject(VPtrStealingHackType)
    364370            : JSObject(VPtrStealingHack, m_inlineStorage)
  • trunk/Source/JavaScriptCore/runtime/JSPropertyNameIterator.h

    r91194 r92706  
    4444
    4545    public:
     46        typedef JSCell Base;
     47
    4648        static JSPropertyNameIterator* create(ExecState*, JSObject*);
    4749        static JSPropertyNameIterator* create(ExecState* exec, PropertyNameArrayData* propertyNameArrayData, size_t numCacheableSlot)
  • trunk/Source/JavaScriptCore/runtime/JSStaticScopeObject.h

    r91903 r92706  
    3333    class JSStaticScopeObject : public JSVariableObject {
    3434    public:
     35        typedef JSVariableObject Base;
     36
    3537        static JSStaticScopeObject* create(ExecState* exec, const Identifier& ident, JSValue value, unsigned attributes)
    3638        {
  • trunk/Source/JavaScriptCore/runtime/JSString.h

    r91288 r92706  
    6767        friend struct ThunkHelpers;
    6868
     69        typedef JSCell Base;
     70
    6971        class RopeBuilder {
    7072        public:
  • trunk/Source/JavaScriptCore/runtime/JSVariableObject.h

    r91095 r92706  
    4545
    4646    public:
     47        typedef JSNonFinalObject Base;
     48
    4749        SymbolTable& symbolTable() const { return *m_symbolTable; }
    4850
  • trunk/Source/JavaScriptCore/runtime/JSWrapperObject.h

    r84556 r92706  
    3030    // Number, Boolean and Date which are wrappers for primitive types.
    3131    class JSWrapperObject : public JSNonFinalObject {
    32     protected:
    33         explicit JSWrapperObject(JSGlobalData&, Structure*);
     32    public:
     33        typedef JSNonFinalObject Base;
    3434
    35     public:
    3635        JSValue internalValue() const;
    3736        void setInternalValue(JSGlobalData&, JSValue);
     
    4342
    4443    protected:
     44        explicit JSWrapperObject(JSGlobalData&, Structure*);
    4545        static const unsigned StructureFlags = OverridesVisitChildren | JSNonFinalObject::StructureFlags;
    4646
  • trunk/Source/JavaScriptCore/runtime/MathObject.h

    r91194 r92706  
    3131
    3232    public:
     33        typedef JSObjectWithGlobalObject Base;
     34
    3335        static MathObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3436        {
  • trunk/Source/JavaScriptCore/runtime/NativeErrorConstructor.h

    r91194 r92706  
    3131
    3232    class NativeErrorConstructor : public InternalFunction {
    33     private:
    34         NativeErrorConstructor(ExecState*, JSGlobalObject*, Structure*, Structure* prototypeStructure, const UString&);
     33    public:
     34        typedef InternalFunction Base;
    3535
    36     public:
    3736        static NativeErrorConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, Structure* prototypeStructure, const UString& nameAndMessage)
    3837        {
     
    5049
    5150    private:
     51        NativeErrorConstructor(ExecState*, JSGlobalObject*, Structure*, Structure* prototypeStructure, const UString&);
    5252        static const unsigned StructureFlags = OverridesVisitChildren | InternalFunction::StructureFlags;
    5353        virtual ConstructType getConstructData(ConstructData&);
  • trunk/Source/JavaScriptCore/runtime/NativeErrorPrototype.h

    r91194 r92706  
    3232   
    3333    public:
     34        typedef ErrorPrototype Base;
     35
    3436        static NativeErrorPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, const UString& nameAndMessage, NativeErrorConstructor* constructor)
    3537        {
  • trunk/Source/JavaScriptCore/runtime/NumberConstructor.h

    r91194 r92706  
    2929
    3030    class NumberConstructor : public InternalFunction {
    31     private:
    32         NumberConstructor(ExecState*, JSGlobalObject*, Structure*, NumberPrototype*);
    33        
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static NumberConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, NumberPrototype* numPrototype)
    3635        {
     
    5554
    5655    private:
     56        NumberConstructor(ExecState*, JSGlobalObject*, Structure*, NumberPrototype*);
    5757        virtual ConstructType getConstructData(ConstructData&);
    5858        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/NumberObject.h

    r91194 r92706  
    3131
    3232    public:
     33        typedef JSWrapperObject Base;
     34
    3335        static NumberObject* create(JSGlobalData& globalData, Structure* structure)
    3436        {
  • trunk/Source/JavaScriptCore/runtime/NumberPrototype.h

    r91194 r92706  
    2727
    2828    class NumberPrototype : public NumberObject {
    29     private:
    30         NumberPrototype(ExecState*, JSGlobalObject*, Structure*);
     29    public:
     30        typedef NumberObject Base;
    3131
    32     public:
    3332        static NumberPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3433        {
     
    4847
    4948    private:
     49        NumberPrototype(ExecState*, JSGlobalObject*, Structure*);
    5050        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
    5151        virtual bool getOwnPropertyDescriptor(ExecState*, const Identifier&, PropertyDescriptor&);
  • trunk/Source/JavaScriptCore/runtime/ObjectConstructor.h

    r91194 r92706  
    2929
    3030    class ObjectConstructor : public InternalFunction {
    31     private:
    32         ObjectConstructor(ExecState*, JSGlobalObject*, Structure*, ObjectPrototype*);
    33    
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static ObjectConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, ObjectPrototype* objPrototype)
    3635        {
     
    5251
    5352    private:
     53        ObjectConstructor(ExecState*, JSGlobalObject*, Structure*, ObjectPrototype*);
    5454        virtual ConstructType getConstructData(ConstructData&);
    5555        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/ObjectPrototype.h

    r91194 r92706  
    2727
    2828    class ObjectPrototype : public JSNonFinalObject {
    29     private:
    30         ObjectPrototype(ExecState*, JSGlobalObject*, Structure*);
     29    public:
     30        typedef JSNonFinalObject Base;
    3131
    32     public:
    3332        static ObjectPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3433        {
     
    4847
    4948    private:
     49        ObjectPrototype(ExecState*, JSGlobalObject*, Structure*);
    5050        virtual void put(ExecState*, const Identifier&, JSValue, PutPropertySlot&);
    5151        virtual bool getOwnPropertySlot(ExecState*, const Identifier&, PropertySlot&);
  • trunk/Source/JavaScriptCore/runtime/RegExp.h

    r91869 r92706  
    3939    class RegExp : public JSCell {
    4040    public:
     41        typedef JSCell Base;
     42
    4143        static RegExp* create(JSGlobalData&, const UString& pattern, RegExpFlags);
    4244        ~RegExp();
  • trunk/Source/JavaScriptCore/runtime/RegExpConstructor.h

    r91194 r92706  
    5757
    5858    class RegExpConstructor : public InternalFunction {
    59     private:
    60         RegExpConstructor(ExecState*, JSGlobalObject*, Structure*, RegExpPrototype*);
     59    public:
     60        typedef InternalFunction Base;
    6161
    62     public:
    6362        static RegExpConstructor* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, RegExpPrototype* regExpPrototype)
    6463        {
     
    9594
    9695    private:
     96        RegExpConstructor(ExecState*, JSGlobalObject*, Structure*, RegExpPrototype*);
    9797        virtual ConstructType getConstructData(ConstructData&);
    9898        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/RegExpMatchesArray.h

    r91194 r92706  
    3030
    3131    public:
     32        typedef JSArray Base;
     33
    3234        static RegExpMatchesArray* create(ExecState* exec, RegExpConstructorPrivate* ctorPrivate)
    3335        {
  • trunk/Source/JavaScriptCore/runtime/RegExpObject.h

    r91194 r92706  
    2828   
    2929    class RegExpObject : public JSObjectWithGlobalObject {
    30     protected:
    31         RegExpObject(JSGlobalObject*, Structure*, RegExp*);
     30    public:
     31        typedef JSObjectWithGlobalObject Base;
    3232
    33     public:
    3433        static RegExpObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, RegExp* regExp)
    3534        {
     
    4140            return new (allocateCell<RegExpObject>(globalData.heap)) RegExpObject(globalObject, structure, regExp);
    4241        }
    43        
    44         typedef JSObjectWithGlobalObject Base;
    4542
    4643        virtual ~RegExpObject();
     
    7774
    7875    protected:
     76        RegExpObject(JSGlobalObject*, Structure*, RegExp*);
    7977        static const unsigned StructureFlags = OverridesVisitChildren | OverridesGetOwnPropertySlot | JSObjectWithGlobalObject::StructureFlags;
    8078
  • trunk/Source/JavaScriptCore/runtime/RegExpPrototype.h

    r91194 r92706  
    2828
    2929    class RegExpPrototype : public RegExpObject {
    30     protected:
    31         RegExpPrototype(ExecState*, JSGlobalObject*, Structure*, RegExp*);
     30    public:
     31        typedef RegExpObject Base;
    3232
    33     public:
    3433        static RegExpPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, RegExp* regExp)
    3534        {
     
    4544
    4645    protected:
     46        RegExpPrototype(ExecState*, JSGlobalObject*, Structure*, RegExp*);
    4747        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | RegExpObject::StructureFlags;
    4848
  • trunk/Source/JavaScriptCore/runtime/ScopeChain.h

    r91194 r92706  
    4949
    5050    public:
     51        typedef JSCell Base;
     52
    5153        static ScopeChainNode* create(ExecState* exec, ScopeChainNode* next, JSObject* object, JSGlobalData* globalData, JSGlobalObject* globalObject, JSObject* globalThis)
    5254        {
  • trunk/Source/JavaScriptCore/runtime/StrictEvalActivation.h

    r91903 r92706  
    3333class StrictEvalActivation : public JSNonFinalObject {
    3434public:
     35    typedef JSNonFinalObject Base;
     36
    3537    static StrictEvalActivation* create(ExecState* exec)
    3638    {
  • trunk/Source/JavaScriptCore/runtime/StringConstructor.h

    r91194 r92706  
    2929
    3030    class StringConstructor : public InternalFunction {
    31     private:
    32         StringConstructor(ExecState*, JSGlobalObject*, Structure*, StringPrototype*);
    33        
    3431    public:
     32        typedef InternalFunction Base;
     33
    3534        static StringConstructor* create(ExecState* exec, JSGlobalObject* globalObject , Structure* structure, StringPrototype* strPrototype)
    3635        {
     
    4948
    5049    private:
     50        StringConstructor(ExecState*, JSGlobalObject*, Structure*, StringPrototype*);
    5151        virtual ConstructType getConstructData(ConstructData&);
    5252        virtual CallType getCallData(CallData&);
  • trunk/Source/JavaScriptCore/runtime/StringObject.h

    r91194 r92706  
    2828
    2929    class StringObject : public JSWrapperObject {
    30     protected:
    31         StringObject(ExecState*, Structure*);
    32         StringObject(ExecState*, Structure*, const UString&);
    33                
    3430    public:
     31        typedef JSWrapperObject Base;
     32
    3533        static StringObject* create(ExecState* exec, Structure* structure)
    3634        {
     
    6260
    6361    protected:
     62        StringObject(ExecState*, Structure*);
     63        StringObject(ExecState*, Structure*, const UString&);
    6464        static const unsigned StructureFlags = OverridesGetOwnPropertySlot | OverridesGetPropertyNames | JSWrapperObject::StructureFlags;
    6565        StringObject(JSGlobalData&, Structure*, JSString*);
  • trunk/Source/JavaScriptCore/runtime/StringObjectThatMasqueradesAsUndefined.h

    r91194 r92706  
    3131    class StringObjectThatMasqueradesAsUndefined : public StringObject {
    3232    public:
     33        typedef StringObject Base;
     34
    3335        static StringObjectThatMasqueradesAsUndefined* create(ExecState* exec, const UString& string)
    3436        {
  • trunk/Source/JavaScriptCore/runtime/StringPrototype.h

    r91194 r92706  
    3333
    3434    public:
     35        typedef StringObject Base;
     36
    3537        static StringPrototype* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure)
    3638        {
  • trunk/Source/JavaScriptCore/runtime/Structure.h

    r92569 r92706  
    6060    public:
    6161        friend class StructureTransitionTable;
     62
     63        typedef JSCell Base;
     64
    6265        static Structure* create(JSGlobalData& globalData, JSValue prototype, const TypeInfo& typeInfo, unsigned anonymousSlotCount, const ClassInfo* classInfo)
    6366        {
  • trunk/Source/JavaScriptCore/runtime/StructureChain.h

    r91194 r92706  
    4343
    4444    public:
     45        typedef JSCell Base;
     46
    4547        static StructureChain* create(JSGlobalData& globalData, Structure* head) { return new (allocateCell<StructureChain>(globalData.heap)) StructureChain(globalData, globalData.structureChainStructure.get(), head); }
    4648        WriteBarrier<Structure>* head() { return m_vector.get(); }
  • trunk/Source/JavaScriptGlue/ChangeLog

    r92432 r92706  
     12011-08-09  Mark Hahnenberg  <mhahnenberg@apple.com>
     2
     3        Add ParentClass typedef in all JSC classes
     4        https://bugs.webkit.org/show_bug.cgi?id=65731
     5
     6        Reviewed by Oliver Hunt.
     7
     8        Just added the Base typedefs in all the classes that are a subclass of JSCell
     9        to point at their parent classes.  This is a change to support future changes to the way
     10        constructors and destructors are implemented in JS objects, among other things.
     11
     12        * JSRun.h:
     13        * UserObjectImp.h:
     14
    1152011-08-04  Mark Rowe  <mrowe@apple.com>
    216
  • trunk/Source/JavaScriptGlue/JSRun.h

    r91903 r92706  
    3636class JSGlueGlobalObject : public JSGlobalObject {
    3737    public:
     38        typedef JSGlobalObject Base;
     39
    3840        static JSGlueGlobalObject* create(JSGlobalData& globalData, Structure* structure, JSFlags flags = kJSFlagNone)
    3941        {
  • trunk/Source/JavaScriptGlue/UserObjectImp.h

    r91903 r92706  
    3737class UserObjectImp : public JSNonFinalObject {
    3838public:
     39    typedef JSNonFinalObject Base;
     40
    3941    static UserObjectImp* create(JSGlobalData& globalData, Structure* structure, JSUserObject* userObject)
    4042    {
  • trunk/Source/WebCore/ChangeLog

    r92699 r92706  
     12011-08-09  Mark Hahnenberg  <mhahnenberg@apple.com>
     2
     3        Add ParentClass typedef in all JSC classes
     4        https://bugs.webkit.org/show_bug.cgi?id=65731
     5
     6        Reviewed by Oliver Hunt.
     7
     8        No new tests.
     9
     10        Just added the Base typedefs in all the classes that are a subclass of JSCell
     11        to point at their parent classes.  This is a change to support future changes to the way
     12        constructors and destructors are implemented in JS objects, among other things.
     13
     14        * bindings/js/JSAudioConstructor.h:
     15        * bindings/js/JSImageConstructor.h:
     16        * bindings/js/JSOptionConstructor.h:
     17        * bindings/scripts/CodeGeneratorJS.pm:
     18        (GenerateHeader):
     19        (GenerateConstructorDeclaration):
     20        * bindings/scripts/test/JS/JSTestInterface.cpp:
     21        * bindings/scripts/test/JS/JSTestInterface.h:
     22        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
     23        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
     24        * bindings/scripts/test/JS/JSTestObj.cpp:
     25        * bindings/scripts/test/JS/JSTestObj.h:
     26        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
     27        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
     28        * bridge/c/CRuntimeObject.h:
     29        * bridge/c/c_instance.cpp:
     30        * bridge/jni/jsc/JavaInstanceJSC.cpp:
     31        * bridge/jni/jsc/JavaRuntimeObject.h:
     32        * bridge/objc/ObjCRuntimeObject.h:
     33        * bridge/objc/objc_runtime.h:
     34        * bridge/qt/qt_instance.cpp:
     35        * bridge/qt/qt_pixmapruntime.cpp:
     36        * bridge/qt/qt_runtime.h:
     37        * bridge/runtime_array.h:
     38        * bridge/runtime_method.h:
     39        * bridge/runtime_object.h:
     40        * bridge/testqtbindings.cpp:
     41        (Global::className):
     42
    1432011-08-09  Alexei Svitkine  <asvitkine@chromium.org>
    244
  • trunk/Source/WebCore/bindings/js/JSAudioConstructor.h

    r91790 r92706  
    3737    class JSAudioConstructor : public DOMConstructorWithDocument {
    3838    public:
     39        typedef DOMConstructorWithDocument Base;
     40
    3941        static JSAudioConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    4042        {
  • trunk/Source/WebCore/bindings/js/JSImageConstructor.h

    r91790 r92706  
    2828    class JSImageConstructor : public DOMConstructorWithDocument {
    2929    public:
     30        typedef DOMConstructorWithDocument Base;
     31
    3032        static JSImageConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    3133        {
  • trunk/Source/WebCore/bindings/js/JSOptionConstructor.h

    r91790 r92706  
    2929    class JSOptionConstructor : public DOMConstructorWithDocument {
    3030    public:
     31        typedef DOMConstructorWithDocument Base;
     32
    3133        static JSOptionConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    3234        {
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

    r92313 r92706  
    698698    # Class declaration
    699699    push(@headerContent, "class $className : public $parentClassName {\n");
    700     push(@headerContent, "    typedef $parentClassName Base;\n");
    701700
    702701    # Static create methods
    703702    push(@headerContent, "public:\n");
     703    push(@headerContent, "    typedef $parentClassName Base;\n");
    704704    if ($interfaceName eq "DOMWindow") {
    705705        push(@headerContent, "    static $className* create(JSC::JSGlobalData& globalData, JSC::Structure* structure, PassRefPtr<$implType> impl, JSDOMWindowShell* windowShell)\n");
     
    996996    %structureFlags = ();
    997997    push(@headerContent, "class ${className}Prototype : public JSC::JSObjectWithGlobalObject {\n");
     998    push(@headerContent, "public:\n");
    998999    push(@headerContent, "    typedef JSC::JSObjectWithGlobalObject Base;\n");
    999     push(@headerContent, "public:\n");
    10001000    if ($interfaceName ne "DOMWindow" && !$dataNode->extendedAttributes->{"IsWorkerContext"}) {
    10011001        push(@headerContent, "    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);\n");
     
    30673067   
    30683068    push(@$outputArray, "public:\n");
     3069    push(@$outputArray, "    typedef DOMConstructorObject Base;\n");
    30693070    push(@$outputArray, "    static $constructorClassName* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)\n");
    30703071    push(@$outputArray, "    {\n");
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp

    r91790 r92706  
    6868
    6969public:
     70    typedef DOMConstructorObject Base;
    7071    static JSTestInterfaceConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    7172    {
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h

    r91790 r92706  
    3333
    3434class JSTestInterface : public JSDOMWrapper {
     35public:
    3536    typedef JSDOMWrapper Base;
    36 public:
    3737    static JSTestInterface* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestInterface> impl)
    3838    {
     
    6464
    6565class JSTestInterfacePrototype : public JSC::JSObjectWithGlobalObject {
     66public:
    6667    typedef JSC::JSObjectWithGlobalObject Base;
    67 public:
    6868    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
    6969    static JSTestInterfacePrototype* create(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp

    r91790 r92706  
    6969
    7070public:
     71    typedef DOMConstructorObject Base;
    7172    static JSTestMediaQueryListListenerConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    7273    {
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMediaQueryListListener.h

    r91790 r92706  
    3131
    3232class JSTestMediaQueryListListener : public JSDOMWrapper {
     33public:
    3334    typedef JSDOMWrapper Base;
    34 public:
    3535    static JSTestMediaQueryListListener* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestMediaQueryListListener> impl)
    3636    {
     
    6262
    6363class JSTestMediaQueryListListenerPrototype : public JSC::JSObjectWithGlobalObject {
     64public:
    6465    typedef JSC::JSObjectWithGlobalObject Base;
    65 public:
    6666    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
    6767    static JSTestMediaQueryListListenerPrototype* create(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp

    r91790 r92706  
    148148
    149149public:
     150    typedef DOMConstructorObject Base;
    150151    static JSTestObjConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    151152    {
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h

    r91790 r92706  
    3131
    3232class JSTestObj : public JSDOMWrapper {
     33public:
    3334    typedef JSDOMWrapper Base;
    34 public:
    3535    static JSTestObj* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestObj> impl)
    3636    {
     
    7171
    7272class JSTestObjPrototype : public JSC::JSObjectWithGlobalObject {
     73public:
    7374    typedef JSC::JSObjectWithGlobalObject Base;
    74 public:
    7575    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
    7676    static JSTestObjPrototype* create(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp

    r91790 r92706  
    7070
    7171public:
     72    typedef DOMConstructorObject Base;
    7273    static JSTestSerializedScriptValueInterfaceConstructor* create(JSC::ExecState* exec, JSC::Structure* structure, JSDOMGlobalObject* globalObject)
    7374    {
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h

    r91790 r92706  
    3333
    3434class JSTestSerializedScriptValueInterface : public JSDOMWrapper {
     35public:
    3536    typedef JSDOMWrapper Base;
    36 public:
    3737    static JSTestSerializedScriptValueInterface* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, PassRefPtr<TestSerializedScriptValueInterface> impl)
    3838    {
     
    6464
    6565class JSTestSerializedScriptValueInterfacePrototype : public JSC::JSObjectWithGlobalObject {
     66public:
    6667    typedef JSC::JSObjectWithGlobalObject Base;
    67 public:
    6868    static JSC::JSObject* self(JSC::ExecState*, JSC::JSGlobalObject*);
    6969    static JSTestSerializedScriptValueInterfacePrototype* create(JSC::JSGlobalData& globalData, JSC::JSGlobalObject* globalObject, JSC::Structure* structure)
  • trunk/Source/WebCore/bridge/c/CRuntimeObject.h

    r91903 r92706  
    3838class CRuntimeObject : public RuntimeObject {
    3939public:
     40    typedef RuntimeObject Base;
     41
    4042    static CRuntimeObject* create(ExecState* exec, JSGlobalObject* globalObject, PassRefPtr<CInstance> instance)
    4143    {
  • trunk/Source/WebCore/bridge/c/c_instance.cpp

    r91903 r92706  
    112112class CRuntimeMethod : public RuntimeMethod {
    113113public:
     114    typedef RuntimeMethod Base;
     115
    114116    static CRuntimeMethod* create(ExecState* exec, JSGlobalObject* globalObject, const Identifier& name, Bindings::MethodList& list)
    115117    {
  • trunk/Source/WebCore/bridge/jni/jsc/JavaInstanceJSC.cpp

    r92693 r92706  
    117117class JavaRuntimeMethod : public RuntimeMethod {
    118118public:
     119    typedef RuntimeMethod Base;
     120
    119121    static JavaRuntimeMethod* create(ExecState* exec, JSGlobalObject* globalObject, const Identifier& name, Bindings::MethodList& list)
    120122    {
  • trunk/Source/WebCore/bridge/jni/jsc/JavaRuntimeObject.h

    r91903 r92706  
    3636class JavaRuntimeObject : public RuntimeObject {
    3737public:
     38    typedef RuntimeObject Base;
     39
    3840    static JavaRuntimeObject* create(ExecState* exec, JSGlobalObject* globalObject, PassRefPtr<JavaInstance> javaInst)
    3941    {
  • trunk/Source/WebCore/bridge/objc/ObjCRuntimeObject.h

    r91903 r92706  
    3636class ObjCRuntimeObject : public RuntimeObject {
    3737public:
     38    typedef RuntimeObject Base;
     39
    3840    static ObjCRuntimeObject* create(ExecState* exec, JSGlobalObject* globalObject, PassRefPtr<ObjcInstance> inst)
    3941    {
  • trunk/Source/WebCore/bridge/objc/objc_runtime.h

    r91903 r92706  
    9393class ObjcFallbackObjectImp : public JSObjectWithGlobalObject {
    9494public:
     95    typedef JSObjectWithGlobalObject Base;
     96
    9597    static ObjcFallbackObjectImp* create(ExecState* exec, JSGlobalObject* globalObject, ObjcInstance* instance, const Identifier& propertyName)
    9698    {
  • trunk/Source/WebCore/bridge/qt/qt_instance.cpp

    r91903 r92706  
    5151class QtRuntimeObject : public RuntimeObject {
    5252public:
     53    typedef RuntimeObject Base;
     54
    5355    static QtRuntimeObject* create(ExecState* exec, JSGlobalObject* globalObject, PassRefPtr<Instance> instance)
    5456    {
  • trunk/Source/WebCore/bridge/qt/qt_pixmapruntime.cpp

    r91903 r92706  
    199199class QtPixmapRuntimeObject : public RuntimeObject {
    200200public:
     201    typedef RuntimeObject Base;
     202
    201203    static QtPixmapRuntimeObject* create(ExecState* exec, JSGlobalObject* globalObject, PassRefPtr<Instance> instance)
    202204    {
  • trunk/Source/WebCore/bridge/qt/qt_runtime.h

    r91903 r92706  
    126126class QtRuntimeMethod : public InternalFunction {
    127127public:
     128    typedef InternalFunction Base;
     129
    128130    virtual ~QtRuntimeMethod();
    129131
     
    151153{
    152154public:
     155    typedef QtRuntimeMethod Base;
     156
    153157    static QtRuntimeMetaMethod* create(ExecState* exec, const Identifier& n, PassRefPtr<QtInstance> inst, int index, const QByteArray& signature, bool allowPrivate)
    154158    {
     
    176180
    177181class QtConnectionObject;
    178 class QtRuntimeConnectionMethod : public QtRuntimeMethod
    179 {
    180 public:
     182class QtRuntimeConnectionMethod : public QtRuntimeMethod {
     183public:
     184    typedef QtRuntimeMethod Base;
     185
    181186    static QtRuntimeConnectionMethod* create(ExecState* exec, const Identifier& n, bool isConnect, PassRefPtr<QtInstance> inst, int index, const QByteArray& signature)
    182187    {
  • trunk/Source/WebCore/bridge/runtime_array.h

    r91790 r92706  
    3434class RuntimeArray : public JSArray {
    3535public:
     36    typedef JSArray Base;
     37
    3638    static RuntimeArray* create(ExecState* exec, Bindings::Array* array)
    3739    {
  • trunk/Source/WebCore/bridge/runtime_method.h

    r91903 r92706  
    3636class RuntimeMethod : public InternalFunction {
    3737public:
     38    typedef InternalFunction Base;
     39
    3840    static RuntimeMethod* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, const Identifier& name, Bindings::MethodList& methodList)
    3941    {
  • trunk/Source/WebCore/bridge/runtime_object.h

    r91790 r92706  
    3636class RuntimeObject : public JSObjectWithGlobalObject {
    3737public:
     38    typedef JSObjectWithGlobalObject Base;
     39
    3840    static RuntimeObject* create(ExecState* exec, JSGlobalObject* globalObject, Structure* structure, PassRefPtr<Instance> instance)
    3941    {
  • trunk/Source/WebCore/bridge/testqtbindings.cpp

    r79988 r92706  
    7777class Global : public JSNonFinalObject {
    7878public:
    79   virtual UString className() const { return "global"; }
     79    typedef JSNonFinalObject Base;
     80
     81    virtual UString className() const { return "global"; }
    8082};
    8183
  • trunk/Source/WebKit/mac/ChangeLog

    r92651 r92706  
     12011-08-09  Mark Hahnenberg  <mhahnenberg@apple.com>
     2
     3        Add ParentClass typedef in all JSC classes
     4        https://bugs.webkit.org/show_bug.cgi?id=65731
     5
     6        Reviewed by Oliver Hunt.
     7
     8        Just added the Base typedefs in all the classes that are a subclass of JSCell
     9        to point at their parent classes.  This is a change to support future changes to the way
     10        constructors and destructors are implemented in JS objects, among other things.
     11
     12        * Plugins/Hosted/ProxyInstance.mm:
     13        * Plugins/Hosted/ProxyRuntimeObject.h:
     14
    1152011-08-08  Chris Marrin  <cmarrin@apple.com>
    216
  • trunk/Source/WebKit/mac/Plugins/Hosted/ProxyInstance.mm

    r91903 r92706  
    180180class ProxyRuntimeMethod : public RuntimeMethod {
    181181public:
     182    typedef RuntimeMethod Base;
     183
    182184    static ProxyRuntimeMethod* create(ExecState* exec, JSGlobalObject* globalObject, const Identifier& name, Bindings::MethodList& list)
    183185    {
  • trunk/Source/WebKit/mac/Plugins/Hosted/ProxyRuntimeObject.h

    r91903 r92706  
    3737class ProxyRuntimeObject : public JSC::Bindings::RuntimeObject {
    3838public:
     39    typedef JSC::Bindings::RuntimeObject Base;
     40
    3941    static ProxyRuntimeObject* create(JSC::ExecState* exec, JSC::JSGlobalObject* globalObject, PassRefPtr<ProxyInstance> instance)
    4042    {
  • trunk/Source/WebKit2/ChangeLog

    r92697 r92706  
     12011-08-09  Mark Hahnenberg  <mhahnenberg@apple.com>
     2
     3        Add ParentClass typedef in all JSC classes
     4        https://bugs.webkit.org/show_bug.cgi?id=65731
     5
     6        Reviewed by Oliver Hunt.
     7
     8        Just added the Base typedefs in all the classes that are a subclass of JSCell
     9        to point at their parent classes.  This is a change to support future changes to the way
     10        constructors and destructors are implemented in JS objects, among other things.
     11
     12        * WebProcess/Plugins/Netscape/JSNPMethod.h:
     13        * WebProcess/Plugins/Netscape/JSNPObject.h:
     14
    1152011-08-08  Adrienne Walker  <enne@google.com>
    216
  • trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPMethod.h

    r91903 r92706  
    3636class JSNPMethod : public JSC::InternalFunction {
    3737public:
     38    typedef JSC::InternalFunction Base;
     39
    3840    static JSNPMethod* create(JSC::ExecState* exec, JSC::JSGlobalObject* globalObject, const JSC::Identifier& ident, NPIdentifier npIdent)
    3941    {
  • trunk/Source/WebKit2/WebProcess/Plugins/Netscape/JSNPObject.h

    r91903 r92706  
    4040class JSNPObject : public JSC::JSObjectWithGlobalObject {
    4141public:
     42    typedef JSC::JSObjectWithGlobalObject Base;
     43
    4244    static JSNPObject* create(JSC::JSGlobalObject* globalObject, NPRuntimeObjectMap* objectMap, NPObject* npObject)
    4345    {
Note: See TracChangeset for help on using the changeset viewer.