Changeset 37759 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Oct 20, 2008, 11:08:06 PM (17 years ago)
Author:
[email protected]
Message:

JavaScriptCore:

2008-10-20 Sam Weinig <[email protected]>

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=21766
REGRESSION: 12 JSC tests fail

The JSGlobalObject was mutating the shared nullProtoStructureID when
used in jsc. Instead of using nullProtoStructureID, use a new StructureID.

  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h: (JSC::::JSCallbackObject):
  • API/JSContextRef.cpp: (JSGlobalContextCreateInGroup):
  • kjs/JSGlobalObject.h: (JSC::JSGlobalObject::JSGlobalObject):
  • kjs/Shell.cpp: (GlobalObject::GlobalObject): (jscmain):

JavaScriptGlue:

2008-10-20 Sam Weinig <[email protected]>

Reviewed by Cameron Zwarich.

Fix for https://bugs.webkit.org/show_bug.cgi?id=21766
REGRESSION: 12 JSC tests fail

The JSGlobalObject constructor no longer takes a JSGlobalData
as an argument.

  • JSRun.cpp: (JSRun::JSRun):
  • JSRun.h: (JSGlueGlobalObject::JSGlueGlobalObject):
  • JSUtils.cpp: (getThreadGlobalExecState):
Location:
trunk/JavaScriptCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/API/JSCallbackObject.h

    r37684 r37759  
    3838public:
    3939    JSCallbackObject(ExecState*, PassRefPtr<StructureID>, JSClassRef, void* data);
    40     JSCallbackObject(JSGlobalData*, JSClassRef);
     40    JSCallbackObject(JSClassRef);
    4141    virtual ~JSCallbackObject();
    4242
  • trunk/JavaScriptCore/API/JSCallbackObjectFunctions.h

    r37684 r37759  
    5858// FIXME: Move this into a separate JSGlobalCallbackObject class derived from this one.
    5959template <class Base>
    60 JSCallbackObject<Base>::JSCallbackObject(JSGlobalData* globalData, JSClassRef jsClass)
    61     : Base(globalData)
     60JSCallbackObject<Base>::JSCallbackObject(JSClassRef jsClass)
     61    : Base()
    6262    , m_callbackObjectData(new JSCallbackObjectData(0, jsClass))
    6363{
  • trunk/JavaScriptCore/API/JSContextRef.cpp

    r37684 r37759  
    6868
    6969    if (!globalObjectClass) {
    70         JSGlobalObject* globalObject = new (globalData.get()) JSGlobalObject(globalData.get());
     70        JSGlobalObject* globalObject = new (globalData.get()) JSGlobalObject;
    7171        return JSGlobalContextRetain(toGlobalRef(globalObject->globalExec()));
    7272    }
    7373
    74     JSGlobalObject* globalObject = new (globalData.get()) JSCallbackObject<JSGlobalObject>(globalData.get(), globalObjectClass);
     74    JSGlobalObject* globalObject = new (globalData.get()) JSCallbackObject<JSGlobalObject>(globalObjectClass);
    7575    ExecState* exec = globalObject->globalExec();
    7676    JSValuePtr prototype = globalObjectClass->prototype(exec);
  • trunk/JavaScriptCore/ChangeLog

    r37755 r37759  
     12008-10-20  Sam Weinig  <[email protected]>
     2
     3        Reviewed by Cameron Zwarich.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=21766
     6        REGRESSION: 12 JSC tests fail
     7
     8        The JSGlobalObject was mutating the shared nullProtoStructureID when
     9        used in jsc.  Instead of using nullProtoStructureID, use a new StructureID.
     10
     11        * API/JSCallbackObject.h:
     12        * API/JSCallbackObjectFunctions.h:
     13        (JSC::::JSCallbackObject):
     14        * API/JSContextRef.cpp:
     15        (JSGlobalContextCreateInGroup):
     16        * kjs/JSGlobalObject.h:
     17        (JSC::JSGlobalObject::JSGlobalObject):
     18        * kjs/Shell.cpp:
     19        (GlobalObject::GlobalObject):
     20        (jscmain):
     21
    1222008-10-20  Cameron Zwarich  <[email protected]>
    223
  • trunk/JavaScriptCore/kjs/JSGlobalObject.h

    r37730 r37759  
    142142        void* operator new(size_t, JSGlobalData*);
    143143
    144         explicit JSGlobalObject(JSGlobalData* globalData)
    145             : JSVariableObject(globalData->nullProtoStructureID, new JSGlobalObjectData)
     144        explicit JSGlobalObject()
     145            : JSVariableObject(JSGlobalObject::createStructureID(jsNull()), new JSGlobalObjectData)
    146146        {
    147147            init(this);
  • trunk/JavaScriptCore/kjs/Shell.cpp

    r37684 r37759  
    152152class GlobalObject : public JSGlobalObject {
    153153public:
    154     GlobalObject(JSGlobalData*, const Vector<UString>& arguments);
     154    GlobalObject(const Vector<UString>& arguments);
    155155    virtual UString className() const { return "global"; }
    156156};
     
    158158ASSERT_CLASS_FITS_IN_CELL(GlobalObject);
    159159
    160 GlobalObject::GlobalObject(JSGlobalData* globalData, const Vector<UString>& arguments)
    161     : JSGlobalObject(globalData)
     160GlobalObject::GlobalObject(const Vector<UString>& arguments)
     161    : JSGlobalObject()
    162162{
    163163    putDirectFunction(globalExec(), new (globalExec()) PrototypeFunction(globalExec(), prototypeFunctionStructure(), 1, Identifier(globalExec(), "debug"), functionDebug));
     
    464464    parseArguments(argc, argv, options);
    465465
    466     GlobalObject* globalObject = new (globalData) GlobalObject(globalData, options.arguments);
     466    GlobalObject* globalObject = new (globalData) GlobalObject(options.arguments);
    467467    bool success = runWithScripts(globalObject, options.fileNames, options.prettyPrint, options.dump);
    468468    if (options.interactive && success)
Note: See TracChangeset for help on using the changeset viewer.