Ignore:
Timestamp:
Jan 31, 2011, 12:07:21 PM (14 years ago)
Author:
[email protected]
Message:

2011-01-31 Oliver Hunt <[email protected]>

Convert markstack to a slot visitor API
https://bugs.webkit.org/show_bug.cgi?id=53219

rolling r77098, r77099, r77100, r77109, and
r77111 back in, along with a few more Qt fix attempts.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h

    r77113 r77151  
    7474                , registerArraySize(0)
    7575                , globalScopeChain(NoScopeChain())
    76                 , regExpConstructor(0)
    77                 , errorConstructor(0)
    78                 , evalErrorConstructor(0)
    79                 , rangeErrorConstructor(0)
    80                 , referenceErrorConstructor(0)
    81                 , syntaxErrorConstructor(0)
    82                 , typeErrorConstructor(0)
    83                 , URIErrorConstructor(0)
    84                 , evalFunction(0)
    85                 , callFunction(0)
    86                 , applyFunction(0)
    87                 , objectPrototype(0)
    88                 , functionPrototype(0)
    89                 , arrayPrototype(0)
    90                 , booleanPrototype(0)
    91                 , stringPrototype(0)
    92                 , numberPrototype(0)
    93                 , datePrototype(0)
    94                 , regExpPrototype(0)
    95                 , methodCallDummy(0)
    9676                , weakRandom(static_cast<unsigned>(randomNumber() * (std::numeric_limits<unsigned>::max() + 1.0)))
    9777            {
     
    11090            Register globalCallFrame[RegisterFile::CallFrameHeaderSize];
    11191
    112             RegExpConstructor* regExpConstructor;
    113             ErrorConstructor* errorConstructor;
    114             NativeErrorConstructor* evalErrorConstructor;
    115             NativeErrorConstructor* rangeErrorConstructor;
    116             NativeErrorConstructor* referenceErrorConstructor;
    117             NativeErrorConstructor* syntaxErrorConstructor;
    118             NativeErrorConstructor* typeErrorConstructor;
    119             NativeErrorConstructor* URIErrorConstructor;
    120 
    121             GlobalEvalFunction* evalFunction;
    122             NativeFunctionWrapper* callFunction;
    123             NativeFunctionWrapper* applyFunction;
    124 
    125             ObjectPrototype* objectPrototype;
    126             FunctionPrototype* functionPrototype;
    127             ArrayPrototype* arrayPrototype;
    128             BooleanPrototype* booleanPrototype;
    129             StringPrototype* stringPrototype;
    130             NumberPrototype* numberPrototype;
    131             DatePrototype* datePrototype;
    132             RegExpPrototype* regExpPrototype;
    133 
    134             JSObject* methodCallDummy;
     92            WriteBarrier<RegExpConstructor> regExpConstructor;
     93            WriteBarrier<ErrorConstructor> errorConstructor;
     94            WriteBarrier<NativeErrorConstructor> evalErrorConstructor;
     95            WriteBarrier<NativeErrorConstructor> rangeErrorConstructor;
     96            WriteBarrier<NativeErrorConstructor> referenceErrorConstructor;
     97            WriteBarrier<NativeErrorConstructor> syntaxErrorConstructor;
     98            WriteBarrier<NativeErrorConstructor> typeErrorConstructor;
     99            WriteBarrier<NativeErrorConstructor> URIErrorConstructor;
     100
     101            WriteBarrier<GlobalEvalFunction> evalFunction;
     102            WriteBarrier<NativeFunctionWrapper> callFunction;
     103            WriteBarrier<NativeFunctionWrapper> applyFunction;
     104
     105            WriteBarrier<ObjectPrototype> objectPrototype;
     106            WriteBarrier<FunctionPrototype> functionPrototype;
     107            WriteBarrier<ArrayPrototype> arrayPrototype;
     108            WriteBarrier<BooleanPrototype> booleanPrototype;
     109            WriteBarrier<StringPrototype> stringPrototype;
     110            WriteBarrier<NumberPrototype> numberPrototype;
     111            WriteBarrier<DatePrototype> datePrototype;
     112            WriteBarrier<RegExpPrototype> regExpPrototype;
     113
     114            WriteBarrier<JSObject> methodCallDummy;
    135115
    136116            RefPtr<Structure> argumentsStructure;
     
    210190        // replaces the global object's associated property.
    211191
    212         RegExpConstructor* regExpConstructor() const { return d()->regExpConstructor; }
    213 
    214         ErrorConstructor* errorConstructor() const { return d()->errorConstructor; }
    215         NativeErrorConstructor* evalErrorConstructor() const { return d()->evalErrorConstructor; }
    216         NativeErrorConstructor* rangeErrorConstructor() const { return d()->rangeErrorConstructor; }
    217         NativeErrorConstructor* referenceErrorConstructor() const { return d()->referenceErrorConstructor; }
    218         NativeErrorConstructor* syntaxErrorConstructor() const { return d()->syntaxErrorConstructor; }
    219         NativeErrorConstructor* typeErrorConstructor() const { return d()->typeErrorConstructor; }
    220         NativeErrorConstructor* URIErrorConstructor() const { return d()->URIErrorConstructor; }
    221 
    222         GlobalEvalFunction* evalFunction() const { return d()->evalFunction; }
    223 
    224         ObjectPrototype* objectPrototype() const { return d()->objectPrototype; }
    225         FunctionPrototype* functionPrototype() const { return d()->functionPrototype; }
    226         ArrayPrototype* arrayPrototype() const { return d()->arrayPrototype; }
    227         BooleanPrototype* booleanPrototype() const { return d()->booleanPrototype; }
    228         StringPrototype* stringPrototype() const { return d()->stringPrototype; }
    229         NumberPrototype* numberPrototype() const { return d()->numberPrototype; }
    230         DatePrototype* datePrototype() const { return d()->datePrototype; }
    231         RegExpPrototype* regExpPrototype() const { return d()->regExpPrototype; }
    232 
    233         JSObject* methodCallDummy() const { return d()->methodCallDummy; }
     192        RegExpConstructor* regExpConstructor() const { return d()->regExpConstructor.get(); }
     193
     194        ErrorConstructor* errorConstructor() const { return d()->errorConstructor.get(); }
     195        NativeErrorConstructor* evalErrorConstructor() const { return d()->evalErrorConstructor.get(); }
     196        NativeErrorConstructor* rangeErrorConstructor() const { return d()->rangeErrorConstructor.get(); }
     197        NativeErrorConstructor* referenceErrorConstructor() const { return d()->referenceErrorConstructor.get(); }
     198        NativeErrorConstructor* syntaxErrorConstructor() const { return d()->syntaxErrorConstructor.get(); }
     199        NativeErrorConstructor* typeErrorConstructor() const { return d()->typeErrorConstructor.get(); }
     200        NativeErrorConstructor* URIErrorConstructor() const { return d()->URIErrorConstructor.get(); }
     201
     202        GlobalEvalFunction* evalFunction() const { return d()->evalFunction.get(); }
     203
     204        ObjectPrototype* objectPrototype() const { return d()->objectPrototype.get(); }
     205        FunctionPrototype* functionPrototype() const { return d()->functionPrototype.get(); }
     206        ArrayPrototype* arrayPrototype() const { return d()->arrayPrototype.get(); }
     207        BooleanPrototype* booleanPrototype() const { return d()->booleanPrototype.get(); }
     208        StringPrototype* stringPrototype() const { return d()->stringPrototype.get(); }
     209        NumberPrototype* numberPrototype() const { return d()->numberPrototype.get(); }
     210        DatePrototype* datePrototype() const { return d()->datePrototype.get(); }
     211        RegExpPrototype* regExpPrototype() const { return d()->regExpPrototype.get(); }
     212
     213        JSObject* methodCallDummy() const { return d()->methodCallDummy.get(); }
    234214
    235215        Structure* argumentsStructure() const { return d()->argumentsStructure.get(); }
     
    386366    {
    387367        if (typeInfo().type() == ObjectType)
    388             return m_prototype;
     368            return m_prototype.get();
    389369
    390370        ASSERT(typeInfo().type() == StringType);
     
    458438        MarkedArgumentBuffer values;
    459439        values.append(singleItemValue);
    460         return new (exec) JSArray(exec->lexicalGlobalObject()->arrayStructure(), values);
     440        return new (exec) JSArray(exec->globalData(), exec->lexicalGlobalObject()->arrayStructure(), values);
    461441    }
    462442
    463443    inline JSArray* constructArray(ExecState* exec, const ArgList& values)
    464444    {
    465         return new (exec) JSArray(exec->lexicalGlobalObject()->arrayStructure(), values);
     445        return new (exec) JSArray(exec->globalData(), exec->lexicalGlobalObject()->arrayStructure(), values);
    466446    }
    467447
Note: See TracChangeset for help on using the changeset viewer.