Changeset 34791 in webkit for trunk/JavaScriptCore/kjs/nodes.h


Ignore:
Timestamp:
Jun 25, 2008, 12:07:38 AM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Geoff.

Remove more threadInstance() calls.

  • kjs/JSFunction.cpp: (KJS::JSFunction::getParameterName): (KJS::IndexToNameMap::unMap): (KJS::Arguments::deleteProperty):
  • kjs/JSFunction.h: Access nullIdentifier without going to thread specific storage.
  • JavaScriptCore.exp:
  • kjs/JSGlobalData.cpp: (KJS::JSGlobalData::JSGlobalData):
  • kjs/JSGlobalData.h:
  • kjs/Parser.cpp: (KJS::Parser::parse):
  • kjs/Parser.h: (KJS::ParserRefCountedData::ParserRefCountedData): (KJS::Parser::parse):
  • kjs/grammar.y:
  • kjs/nodes.cpp: (KJS::ParserRefCounted::ParserRefCounted): (KJS::ParserRefCounted::ref): (KJS::ParserRefCounted::deref): (KJS::ParserRefCounted::hasOneRef): (KJS::ParserRefCounted::deleteNewObjects): (KJS::Node::Node): (KJS::StatementNode::StatementNode): (KJS::BreakpointCheckStatement::BreakpointCheckStatement): (KJS::ConstDeclNode::ConstDeclNode): (KJS::BlockNode::BlockNode): (KJS::ForInNode::ForInNode): (KJS::ScopeNode::ScopeNode): (KJS::ProgramNode::ProgramNode): (KJS::ProgramNode::create): (KJS::EvalNode::EvalNode): (KJS::EvalNode::create): (KJS::FunctionBodyNode::FunctionBodyNode): (KJS::FunctionBodyNode::create):
  • kjs/nodes.h: (KJS::ExpressionNode::): (KJS::NullNode::): (KJS::BooleanNode::): (KJS::NumberNode::): (KJS::ImmediateNumberNode::): (KJS::StringNode::): (KJS::RegExpNode::): (KJS::ThisNode::): (KJS::ResolveNode::): (KJS::ElementNode::): (KJS::ArrayNode::): (KJS::PropertyNode::): (KJS::PropertyListNode::): (KJS::ObjectLiteralNode::): (KJS::BracketAccessorNode::): (KJS::DotAccessorNode::): (KJS::ArgumentListNode::): (KJS::ArgumentsNode::): (KJS::NewExprNode::): (KJS::EvalFunctionCallNode::): (KJS::FunctionCallValueNode::): (KJS::FunctionCallResolveNode::): (KJS::FunctionCallBracketNode::): (KJS::FunctionCallDotNode::): (KJS::PrePostResolveNode::): (KJS::PostIncResolveNode::): (KJS::PostDecResolveNode::): (KJS::PostfixBracketNode::): (KJS::PostIncBracketNode::): (KJS::PostDecBracketNode::): (KJS::PostfixDotNode::): (KJS::PostIncDotNode::): (KJS::PostDecDotNode::): (KJS::PostfixErrorNode::): (KJS::DeleteResolveNode::): (KJS::DeleteBracketNode::): (KJS::DeleteDotNode::): (KJS::DeleteValueNode::): (KJS::VoidNode::): (KJS::TypeOfResolveNode::): (KJS::TypeOfValueNode::): (KJS::PreIncResolveNode::): (KJS::PreDecResolveNode::): (KJS::PrefixBracketNode::): (KJS::PreIncBracketNode::): (KJS::PreDecBracketNode::): (KJS::PrefixDotNode::): (KJS::PreIncDotNode::): (KJS::PreDecDotNode::): (KJS::PrefixErrorNode::): (KJS::UnaryOpNode::UnaryOpNode): (KJS::UnaryPlusNode::): (KJS::NegateNode::): (KJS::BitwiseNotNode::): (KJS::LogicalNotNode::): (KJS::BinaryOpNode::BinaryOpNode): (KJS::ReverseBinaryOpNode::ReverseBinaryOpNode): (KJS::MultNode::): (KJS::DivNode::): (KJS::ModNode::): (KJS::AddNode::): (KJS::SubNode::): (KJS::LeftShiftNode::): (KJS::RightShiftNode::): (KJS::UnsignedRightShiftNode::): (KJS::LessNode::): (KJS::GreaterNode::): (KJS::LessEqNode::): (KJS::GreaterEqNode::): (KJS::InstanceOfNode::): (KJS::InNode::): (KJS::EqualNode::): (KJS::NotEqualNode::): (KJS::StrictEqualNode::): (KJS::NotStrictEqualNode::): (KJS::BitAndNode::): (KJS::BitOrNode::): (KJS::BitXOrNode::): (KJS::LogicalAndNode::): (KJS::LogicalOrNode::): (KJS::ConditionalNode::): (KJS::ReadModifyResolveNode::): (KJS::AssignResolveNode::): (KJS::ReadModifyBracketNode::): (KJS::AssignBracketNode::): (KJS::AssignDotNode::): (KJS::ReadModifyDotNode::): (KJS::AssignErrorNode::): (KJS::CommaNode::): (KJS::VarDeclCommaNode::): (KJS::ConstStatementNode::): (KJS::SourceElements::SourceElements): (KJS::EmptyStatementNode::): (KJS::DebuggerStatementNode::): (KJS::ExprStatementNode::): (KJS::VarStatementNode::): (KJS::IfNode::): (KJS::IfElseNode::): (KJS::DoWhileNode::): (KJS::WhileNode::): (KJS::ForNode::): (KJS::ContinueNode::): (KJS::BreakNode::): (KJS::ReturnNode::): (KJS::WithNode::): (KJS::LabelNode::): (KJS::ThrowNode::): (KJS::TryNode::): (KJS::ParameterNode::): (KJS::FuncExprNode::): (KJS::FuncDeclNode::): (KJS::CaseClauseNode::): (KJS::ClauseListNode::): (KJS::CaseBlockNode::): (KJS::SwitchNode::): Changed ParserRefCounted to hold a JSGlobalData pointer, and used it to replace threadInstance calls.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/nodes.h

    r34711 r34791  
    120120    class ParserRefCounted : Noncopyable {
    121121    protected:
    122         ParserRefCounted() KJS_FAST_CALL;
     122        ParserRefCounted(JSGlobalData*) KJS_FAST_CALL;
    123123        ParserRefCounted(PlacementNewAdoptType) KJS_FAST_CALL
    124124        {
    125125        }
     126
     127        JSGlobalData* m_globalData;
    126128
    127129    public:
     
    130132        bool hasOneRef() KJS_FAST_CALL;
    131133
    132         static void deleteNewObjects() KJS_FAST_CALL;
     134        static void deleteNewObjects(JSGlobalData*) KJS_FAST_CALL;
    133135
    134136        virtual ~ParserRefCounted();
     
    141143        typedef DeclarationStacks::FunctionStack FunctionStack;
    142144
    143         Node() KJS_FAST_CALL;
     145        Node(JSGlobalData*) KJS_FAST_CALL;
    144146        Node(PlacementNewAdoptType placementAdopt) KJS_FAST_CALL
    145147            : ParserRefCounted(placementAdopt)
     
    187189       
    188190    protected:
    189         Node(JSType) KJS_FAST_CALL; // used by ExpressionNode
     191        Node(JSGlobalData*, JSType) KJS_FAST_CALL; // used by ExpressionNode
    190192
    191193        RegisterID* emitThrowError(CodeGenerator&, ErrorType, const char* msg);
     
    198200    class ExpressionNode : public Node {
    199201    public:
    200         ExpressionNode() KJS_FAST_CALL : Node() {}
    201         ExpressionNode(JSType expectedReturn) KJS_FAST_CALL
    202             : Node(expectedReturn)
     202        ExpressionNode(JSGlobalData* globalData) KJS_FAST_CALL : Node(globalData) {}
     203        ExpressionNode(JSGlobalData* globalData, JSType expectedReturn) KJS_FAST_CALL
     204            : Node(globalData, expectedReturn)
    203205        {
    204206        }
     
    225227    class StatementNode : public Node {
    226228    public:
    227         StatementNode() KJS_FAST_CALL;
     229        StatementNode(JSGlobalData*) KJS_FAST_CALL;
    228230        void setLoc(int line0, int line1) KJS_FAST_CALL;
    229231        int firstLine() const KJS_FAST_CALL { return lineNo(); }
     
    243245    class NullNode : public ExpressionNode {
    244246    public:
    245         NullNode() KJS_FAST_CALL
    246             : ExpressionNode(NullType)
     247        NullNode(JSGlobalData* globalData) KJS_FAST_CALL
     248            : ExpressionNode(globalData, NullType)
    247249        {
    248250        }
     
    256258    class BooleanNode : public ExpressionNode {
    257259    public:
    258         BooleanNode(bool value) KJS_FAST_CALL
    259             : ExpressionNode(BooleanType)
     260        BooleanNode(JSGlobalData* globalData, bool value) KJS_FAST_CALL
     261            : ExpressionNode(globalData, BooleanType)
    260262            , m_value(value)
    261263        {
     
    274276    class NumberNode : public ExpressionNode {
    275277    public:
    276         NumberNode(double v) KJS_FAST_CALL
    277             : ExpressionNode(NumberType)
     278        NumberNode(JSGlobalData* globalData, double v) KJS_FAST_CALL
     279            : ExpressionNode(globalData, NumberType)
    278280            , m_double(v)
    279281        {
     
    296298    class ImmediateNumberNode : public NumberNode {
    297299    public:
    298         ImmediateNumberNode(JSValue* v, double d) KJS_FAST_CALL
    299             : NumberNode(d)
     300        ImmediateNumberNode(JSGlobalData* globalData, JSValue* v, double d) KJS_FAST_CALL
     301            : NumberNode(globalData, d)
    300302            , m_value(v)
    301303        {
     
    311313    class StringNode : public ExpressionNode {
    312314    public:
    313         StringNode(const UString* v) KJS_FAST_CALL
    314             : ExpressionNode(StringType)
     315        StringNode(JSGlobalData* globalData, const UString* v) KJS_FAST_CALL
     316            : ExpressionNode(globalData, StringType)
    315317            , m_value(*v)
    316318        {
     
    329331    class RegExpNode : public ExpressionNode {
    330332    public:
    331         RegExpNode(const UString& pattern, const UString& flags) KJS_FAST_CALL
    332             : m_regExp(RegExp::create(pattern, flags))
     333        RegExpNode(JSGlobalData* globalData, const UString& pattern, const UString& flags) KJS_FAST_CALL
     334            : ExpressionNode(globalData)
     335            , m_regExp(RegExp::create(pattern, flags))
    333336        {
    334337        }
     
    345348    class ThisNode : public ExpressionNode {
    346349    public:
    347         ThisNode() KJS_FAST_CALL
     350        ThisNode(JSGlobalData* globalData) KJS_FAST_CALL
     351            : ExpressionNode(globalData)
    348352        {
    349353        }
     
    357361    class ResolveNode : public ExpressionNode {
    358362    public:
    359         ResolveNode(const Identifier& ident) KJS_FAST_CALL
    360             : m_ident(ident)
     363        ResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     364            : ExpressionNode(globalData)
     365            , m_ident(ident)
    361366        {
    362367        }
     
    387392    class ElementNode : public Node {
    388393    public:
    389         ElementNode(int elision, ExpressionNode* node) KJS_FAST_CALL
    390             : m_elision(elision)
     394        ElementNode(JSGlobalData* globalData, int elision, ExpressionNode* node) KJS_FAST_CALL
     395            : Node(globalData)
     396            , m_elision(elision)
    391397            , m_node(node)
    392398        {
    393399        }
    394400
    395         ElementNode(ElementNode* l, int elision, ExpressionNode* node) KJS_FAST_CALL
    396             : m_elision(elision)
     401        ElementNode(JSGlobalData* globalData, ElementNode* l, int elision, ExpressionNode* node) KJS_FAST_CALL
     402            : Node(globalData)
     403            , m_elision(elision)
    397404            , m_node(node)
    398405        {
     
    414421    class ArrayNode : public ExpressionNode {
    415422    public:
    416         ArrayNode(int elision) KJS_FAST_CALL
    417             : m_elision(elision)
     423        ArrayNode(JSGlobalData* globalData, int elision) KJS_FAST_CALL
     424            : ExpressionNode(globalData)
     425            , m_elision(elision)
    418426            , m_optional(true)
    419427        {
    420428        }
    421429
    422         ArrayNode(ElementNode* element) KJS_FAST_CALL
    423             : m_element(element)
     430        ArrayNode(JSGlobalData* globalData, ElementNode* element) KJS_FAST_CALL
     431            : ExpressionNode(globalData)
     432            , m_element(element)
    424433            , m_elision(0)
    425434            , m_optional(false)
     
    427436        }
    428437
    429         ArrayNode(int elision, ElementNode* element) KJS_FAST_CALL
    430             : m_element(element)
     438        ArrayNode(JSGlobalData* globalData, int elision, ElementNode* element) KJS_FAST_CALL
     439            : ExpressionNode(globalData)
     440            , m_element(element)
    431441            , m_elision(elision)
    432442            , m_optional(true)
     
    449459        enum Type { Constant, Getter, Setter };
    450460
    451         PropertyNode(const Identifier& name, ExpressionNode* assign, Type type) KJS_FAST_CALL
    452             : m_name(name)
     461        PropertyNode(JSGlobalData* globalData, const Identifier& name, ExpressionNode* assign, Type type) KJS_FAST_CALL
     462            : Node(globalData)
     463            , m_name(name)
    453464            , m_assign(assign)
    454465            , m_type(type)
     
    470481    class PropertyListNode : public Node {
    471482    public:
    472         PropertyListNode(PropertyNode* node) KJS_FAST_CALL
    473             : m_node(node)
    474         {
    475         }
    476 
    477         PropertyListNode(PropertyNode* node, PropertyListNode* list) KJS_FAST_CALL
    478             : m_node(node)
     483        PropertyListNode(JSGlobalData* globalData, PropertyNode* node) KJS_FAST_CALL
     484            : Node(globalData)
     485            , m_node(node)
     486        {
     487        }
     488
     489        PropertyListNode(JSGlobalData* globalData, PropertyNode* node, PropertyListNode* list) KJS_FAST_CALL
     490            : Node(globalData)
     491            , m_node(node)
    479492        {
    480493            list->m_next = this;
     
    495508    class ObjectLiteralNode : public ExpressionNode {
    496509    public:
    497         ObjectLiteralNode() KJS_FAST_CALL
    498         {
    499         }
    500 
    501         ObjectLiteralNode(PropertyListNode* list) KJS_FAST_CALL
    502             : m_list(list)
     510        ObjectLiteralNode(JSGlobalData* globalData) KJS_FAST_CALL
     511            : ExpressionNode(globalData)
     512        {
     513        }
     514
     515        ObjectLiteralNode(JSGlobalData* globalData, PropertyListNode* list) KJS_FAST_CALL
     516            : ExpressionNode(globalData)
     517            , m_list(list)
    503518        {
    504519        }
     
    515530    class BracketAccessorNode : public ExpressionNode {
    516531    public:
    517         BracketAccessorNode(ExpressionNode* base, ExpressionNode* subscript, bool subscriptHasAssignments) KJS_FAST_CALL
    518             : m_base(base)
     532        BracketAccessorNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript, bool subscriptHasAssignments) KJS_FAST_CALL
     533            : ExpressionNode(globalData)
     534            , m_base(base)
    519535            , m_subscript(subscript)
    520536            , m_subscriptHasAssignments(subscriptHasAssignments)
     
    540556    class DotAccessorNode : public ExpressionNode {
    541557    public:
    542         DotAccessorNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    543             : m_base(base)
     558        DotAccessorNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     559            : ExpressionNode(globalData)
     560            , m_base(base)
    544561            , m_ident(ident)
    545562        {
     
    562579    class ArgumentListNode : public Node {
    563580    public:
    564         ArgumentListNode(ExpressionNode* expr) KJS_FAST_CALL
    565             : m_expr(expr)
    566         {
    567         }
    568 
    569         ArgumentListNode(ArgumentListNode* listNode, ExpressionNode* expr) KJS_FAST_CALL
    570             : m_expr(expr)
     581        ArgumentListNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     582            : Node(globalData)
     583            , m_expr(expr)
     584        {
     585        }
     586
     587        ArgumentListNode(JSGlobalData* globalData, ArgumentListNode* listNode, ExpressionNode* expr) KJS_FAST_CALL
     588            : Node(globalData)
     589            , m_expr(expr)
    571590        {
    572591            listNode->m_next = this;
     
    585604    class ArgumentsNode : public Node {
    586605    public:
    587         ArgumentsNode() KJS_FAST_CALL
    588         {
    589         }
    590 
    591         ArgumentsNode(ArgumentListNode* listNode) KJS_FAST_CALL
    592             : m_listNode(listNode)
     606        ArgumentsNode(JSGlobalData* globalData) KJS_FAST_CALL
     607            : Node(globalData)
     608        {
     609        }
     610
     611        ArgumentsNode(JSGlobalData* globalData, ArgumentListNode* listNode) KJS_FAST_CALL
     612            : Node(globalData)
     613            , m_listNode(listNode)
    593614        {
    594615        }
     
    602623    class NewExprNode : public ExpressionNode {
    603624    public:
    604         NewExprNode(ExpressionNode* expr) KJS_FAST_CALL
    605             : m_expr(expr)
    606         {
    607         }
    608 
    609         NewExprNode(ExpressionNode* expr, ArgumentsNode* args) KJS_FAST_CALL
    610             : m_expr(expr)
     625        NewExprNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     626            : ExpressionNode(globalData)
     627            , m_expr(expr)
     628        {
     629        }
     630
     631        NewExprNode(JSGlobalData* globalData, ExpressionNode* expr, ArgumentsNode* args) KJS_FAST_CALL
     632            : ExpressionNode(globalData)
     633            , m_expr(expr)
    611634            , m_args(args)
    612635        {
     
    625648    class EvalFunctionCallNode : public ExpressionNode {
    626649    public:
    627         EvalFunctionCallNode(ArgumentsNode* args) KJS_FAST_CALL
    628             : m_args(args)
     650        EvalFunctionCallNode(JSGlobalData* globalData, ArgumentsNode* args) KJS_FAST_CALL
     651            : ExpressionNode(globalData)
     652            , m_args(args)
    629653        {
    630654        }
     
    640664    class FunctionCallValueNode : public ExpressionNode {
    641665    public:
    642         FunctionCallValueNode(ExpressionNode* expr, ArgumentsNode* args) KJS_FAST_CALL
    643             : m_expr(expr)
     666        FunctionCallValueNode(JSGlobalData* globalData, ExpressionNode* expr, ArgumentsNode* args) KJS_FAST_CALL
     667            : ExpressionNode(globalData)
     668            , m_expr(expr)
    644669            , m_args(args)
    645670        {
     
    657682    class FunctionCallResolveNode : public ExpressionNode {
    658683    public:
    659         FunctionCallResolveNode(const Identifier& ident, ArgumentsNode* args) KJS_FAST_CALL
    660             : m_ident(ident)
     684        FunctionCallResolveNode(JSGlobalData* globalData, const Identifier& ident, ArgumentsNode* args) KJS_FAST_CALL
     685            : ExpressionNode(globalData)
     686            , m_ident(ident)
    661687            , m_args(args)
    662688        {
     
    684710    class FunctionCallBracketNode : public ExpressionNode {
    685711    public:
    686         FunctionCallBracketNode(ExpressionNode* base, ExpressionNode* subscript, ArgumentsNode* args) KJS_FAST_CALL
    687             : m_base(base)
     712        FunctionCallBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript, ArgumentsNode* args) KJS_FAST_CALL
     713            : ExpressionNode(globalData)
     714            , m_base(base)
    688715            , m_subscript(subscript)
    689716            , m_args(args)
     
    703730    class FunctionCallDotNode : public ExpressionNode {
    704731    public:
    705         FunctionCallDotNode(ExpressionNode* base, const Identifier& ident, ArgumentsNode* args) KJS_FAST_CALL
    706             : m_base(base)
     732        FunctionCallDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident, ArgumentsNode* args) KJS_FAST_CALL
     733            : ExpressionNode(globalData)
     734            , m_base(base)
    707735            , m_ident(ident)
    708736            , m_args(args)
     
    722750    class PrePostResolveNode : public ExpressionNode {
    723751    public:
    724         PrePostResolveNode(const Identifier& ident) KJS_FAST_CALL
    725             : ExpressionNode(NumberType)
     752        PrePostResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     753            : ExpressionNode(globalData, NumberType)
    726754            , m_ident(ident)
    727755        {
     
    741769    class PostIncResolveNode : public PrePostResolveNode {
    742770    public:
    743         PostIncResolveNode(const Identifier& ident) KJS_FAST_CALL
    744             : PrePostResolveNode(ident)
     771        PostIncResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     772            : PrePostResolveNode(globalData, ident)
    745773        {
    746774        }
     
    758786    class PostDecResolveNode : public PrePostResolveNode {
    759787    public:
    760         PostDecResolveNode(const Identifier& ident) KJS_FAST_CALL
    761             : PrePostResolveNode(ident)
     788        PostDecResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     789            : PrePostResolveNode(globalData, ident)
    762790        {
    763791        }
     
    776804    class PostfixBracketNode : public ExpressionNode {
    777805    public:
    778         PostfixBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    779             : m_base(base)
     806        PostfixBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     807            : ExpressionNode(globalData)
     808            , m_base(base)
    780809            , m_subscript(subscript)
    781810        {
     
    791820    class PostIncBracketNode : public PostfixBracketNode {
    792821    public:
    793         PostIncBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    794             : PostfixBracketNode(base, subscript)
     822        PostIncBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     823            : PostfixBracketNode(globalData, base, subscript)
    795824        {
    796825        }
     
    803832    class PostDecBracketNode : public PostfixBracketNode {
    804833    public:
    805         PostDecBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    806             : PostfixBracketNode(base, subscript)
     834        PostDecBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     835            : PostfixBracketNode(globalData, base, subscript)
    807836        {
    808837        }
     
    815844    class PostfixDotNode : public ExpressionNode {
    816845    public:
    817         PostfixDotNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    818             : m_base(base)
     846        PostfixDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     847            : ExpressionNode(globalData)
     848            , m_base(base)
    819849            , m_ident(ident)
    820850        {
     
    830860    class PostIncDotNode : public PostfixDotNode {
    831861    public:
    832         PostIncDotNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    833             : PostfixDotNode(base, ident)
     862        PostIncDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     863            : PostfixDotNode(globalData, base, ident)
    834864        {
    835865        }
     
    842872    class PostDecDotNode : public PostfixDotNode {
    843873    public:
    844         PostDecDotNode(ExpressionNode*  base, const Identifier& ident) KJS_FAST_CALL
    845             : PostfixDotNode(base, ident)
     874        PostDecDotNode(JSGlobalData* globalData, ExpressionNode*  base, const Identifier& ident) KJS_FAST_CALL
     875            : PostfixDotNode(globalData, base, ident)
    846876        {
    847877        }
     
    854884    class PostfixErrorNode : public ExpressionNode {
    855885    public:
    856         PostfixErrorNode(ExpressionNode* expr, Operator oper) KJS_FAST_CALL
    857             : m_expr(expr)
     886        PostfixErrorNode(JSGlobalData* globalData, ExpressionNode* expr, Operator oper) KJS_FAST_CALL
     887            : ExpressionNode(globalData)
     888            , m_expr(expr)
    858889            , m_operator(oper)
    859890        {
     
    871902    class DeleteResolveNode : public ExpressionNode {
    872903    public:
    873         DeleteResolveNode(const Identifier& ident) KJS_FAST_CALL
    874             : m_ident(ident)
     904        DeleteResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     905            : ExpressionNode(globalData)
     906            , m_ident(ident)
    875907        {
    876908        }
     
    893925    class DeleteBracketNode : public ExpressionNode {
    894926    public:
    895         DeleteBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    896             : m_base(base)
     927        DeleteBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     928            : ExpressionNode(globalData)
     929            , m_base(base)
    897930            , m_subscript(subscript)
    898931        {
     
    911944    class DeleteDotNode : public ExpressionNode {
    912945    public:
    913         DeleteDotNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    914             : m_base(base)
     946        DeleteDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     947            : ExpressionNode(globalData)
     948            , m_base(base)
    915949            , m_ident(ident)
    916950        {
     
    929963    class DeleteValueNode : public ExpressionNode {
    930964    public:
    931         DeleteValueNode(ExpressionNode* expr) KJS_FAST_CALL
    932             : m_expr(expr)
     965        DeleteValueNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     966            : ExpressionNode(globalData)
     967            , m_expr(expr)
    933968        {
    934969        }
     
    945980    class VoidNode : public ExpressionNode {
    946981    public:
    947         VoidNode(ExpressionNode* expr) KJS_FAST_CALL
    948             : m_expr(expr)
     982        VoidNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     983            : ExpressionNode(globalData)
     984            , m_expr(expr)
    949985        {
    950986        }
     
    961997    class TypeOfResolveNode : public ExpressionNode {
    962998    public:
    963         TypeOfResolveNode(const Identifier& ident) KJS_FAST_CALL
    964             : ExpressionNode(StringType)
     999        TypeOfResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     1000            : ExpressionNode(globalData, StringType)
    9651001            , m_ident(ident)
    9661002        {
     
    9881024    class TypeOfValueNode : public ExpressionNode {
    9891025    public:
    990         TypeOfValueNode(ExpressionNode* expr) KJS_FAST_CALL
    991             : ExpressionNode(StringType)
     1026        TypeOfValueNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1027            : ExpressionNode(globalData, StringType)
    9921028            , m_expr(expr)
    9931029        {
     
    10051041    class PreIncResolveNode : public PrePostResolveNode {
    10061042    public:
    1007         PreIncResolveNode(const Identifier& ident) KJS_FAST_CALL
    1008             : PrePostResolveNode(ident)
     1043        PreIncResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     1044            : PrePostResolveNode(globalData, ident)
    10091045        {
    10101046        }
     
    10231059    class PreDecResolveNode : public PrePostResolveNode {
    10241060    public:
    1025         PreDecResolveNode(const Identifier& ident) KJS_FAST_CALL
    1026             : PrePostResolveNode(ident)
     1061        PreDecResolveNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     1062            : PrePostResolveNode(globalData, ident)
    10271063        {
    10281064        }
     
    10411077    class PrefixBracketNode : public ExpressionNode {
    10421078    public:
    1043         PrefixBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    1044             : m_base(base)
     1079        PrefixBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     1080            : ExpressionNode(globalData)
     1081            , m_base(base)
    10451082            , m_subscript(subscript)
    10461083        {
     
    10561093    class PreIncBracketNode : public PrefixBracketNode {
    10571094    public:
    1058         PreIncBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    1059             : PrefixBracketNode(base, subscript)
     1095        PreIncBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     1096            : PrefixBracketNode(globalData, base, subscript)
    10601097        {
    10611098        }
     
    10681105    class PreDecBracketNode : public PrefixBracketNode {
    10691106    public:
    1070         PreDecBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
    1071             : PrefixBracketNode(base, subscript)
     1107        PreDecBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL
     1108            : PrefixBracketNode(globalData, base, subscript)
    10721109        {
    10731110        }
     
    10801117    class PrefixDotNode : public ExpressionNode {
    10811118    public:
    1082         PrefixDotNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    1083             : m_base(base)
     1119        PrefixDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     1120            : ExpressionNode(globalData)
     1121            , m_base(base)
    10841122            , m_ident(ident)
    10851123        {
     
    10951133    class PreIncDotNode : public PrefixDotNode {
    10961134    public:
    1097         PreIncDotNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    1098             : PrefixDotNode(base, ident)
     1135        PreIncDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     1136            : PrefixDotNode(globalData, base, ident)
    10991137        {
    11001138        }
     
    11071145    class PreDecDotNode : public PrefixDotNode {
    11081146    public:
    1109         PreDecDotNode(ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
    1110             : PrefixDotNode(base, ident)
     1147        PreDecDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident) KJS_FAST_CALL
     1148            : PrefixDotNode(globalData, base, ident)
    11111149        {
    11121150        }
     
    11191157    class PrefixErrorNode : public ExpressionNode {
    11201158    public:
    1121         PrefixErrorNode(ExpressionNode* expr, Operator oper) KJS_FAST_CALL
    1122             : m_expr(expr)
     1159        PrefixErrorNode(JSGlobalData* globalData, ExpressionNode* expr, Operator oper) KJS_FAST_CALL
     1160            : ExpressionNode(globalData)
     1161            , m_expr(expr)
    11231162            , m_operator(oper)
    11241163        {
     
    11361175    class UnaryOpNode : public ExpressionNode {
    11371176    public:
    1138         UnaryOpNode(ExpressionNode* expr)
    1139             : m_expr(expr)
    1140         {
    1141         }
    1142 
    1143         UnaryOpNode(JSType type, ExpressionNode* expr)
    1144             : ExpressionNode(type)
     1177        UnaryOpNode(JSGlobalData* globalData, ExpressionNode* expr)
     1178            : ExpressionNode(globalData)
    11451179            , m_expr(expr)
    11461180        {
    11471181        }
    11481182
     1183        UnaryOpNode(JSGlobalData* globalData, JSType type, ExpressionNode* expr)
     1184            : ExpressionNode(globalData, type)
     1185            , m_expr(expr)
     1186        {
     1187        }
     1188
    11491189        virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) KJS_FAST_CALL;
    11501190        virtual OpcodeID opcode() const KJS_FAST_CALL = 0;
     
    11561196    class UnaryPlusNode : public UnaryOpNode {
    11571197    public:
    1158         UnaryPlusNode(ExpressionNode* expr) KJS_FAST_CALL
    1159             : UnaryOpNode(NumberType, expr)
     1198        UnaryPlusNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1199            : UnaryOpNode(globalData, NumberType, expr)
    11601200        {
    11611201        }
     
    11681208    class NegateNode : public UnaryOpNode {
    11691209    public:
    1170         NegateNode(ExpressionNode* expr) KJS_FAST_CALL
    1171             : UnaryOpNode(NumberType, expr)
     1210        NegateNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1211            : UnaryOpNode(globalData, NumberType, expr)
    11721212        {
    11731213        }
     
    11801220    class BitwiseNotNode : public UnaryOpNode {
    11811221    public:
    1182         BitwiseNotNode(ExpressionNode* expr) KJS_FAST_CALL
    1183             : UnaryOpNode(NumberType, expr)
     1222        BitwiseNotNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1223            : UnaryOpNode(globalData, NumberType, expr)
    11841224        {
    11851225        }
     
    11921232    class LogicalNotNode : public UnaryOpNode {
    11931233    public:
    1194         LogicalNotNode(ExpressionNode* expr) KJS_FAST_CALL
    1195             : UnaryOpNode(BooleanType, expr)
     1234        LogicalNotNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1235            : UnaryOpNode(globalData, BooleanType, expr)
    11961236        {
    11971237        }
     
    12041244    class BinaryOpNode : public ExpressionNode {
    12051245    public:
    1206         BinaryOpNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
    1207             : m_term1(term1)
    1208             , m_term2(term2)
    1209             , m_rightHasAssignments(rightHasAssignments)
    1210         {
    1211         }
    1212 
    1213         BinaryOpNode(JSType type, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
    1214             : ExpressionNode(type)
     1246        BinaryOpNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
     1247            : ExpressionNode(globalData)
    12151248            , m_term1(term1)
    12161249            , m_term2(term2)
     
    12191252        }
    12201253
     1254        BinaryOpNode(JSGlobalData* globalData, JSType type, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
     1255            : ExpressionNode(globalData, type)
     1256            , m_term1(term1)
     1257            , m_term2(term2)
     1258            , m_rightHasAssignments(rightHasAssignments)
     1259        {
     1260        }
     1261
    12211262        virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) KJS_FAST_CALL;
    12221263        virtual OpcodeID opcode() const KJS_FAST_CALL = 0;
     
    12301271    class ReverseBinaryOpNode : public ExpressionNode {
    12311272    public:
    1232         ReverseBinaryOpNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
    1233             : m_term1(term1)
    1234             , m_term2(term2)
    1235             , m_rightHasAssignments(rightHasAssignments)
    1236         {
    1237         }
    1238 
    1239         ReverseBinaryOpNode(JSType type, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
    1240             : ExpressionNode(type)
     1273        ReverseBinaryOpNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
     1274            : ExpressionNode(globalData)
    12411275            , m_term1(term1)
    12421276            , m_term2(term2)
     
    12451279        }
    12461280
     1281        ReverseBinaryOpNode(JSGlobalData* globalData, JSType type, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments)
     1282            : ExpressionNode(globalData, type)
     1283            , m_term1(term1)
     1284            , m_term2(term2)
     1285            , m_rightHasAssignments(rightHasAssignments)
     1286        {
     1287        }
     1288
    12471289        virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) KJS_FAST_CALL;
    12481290        virtual OpcodeID opcode() const KJS_FAST_CALL = 0;
     
    12561298    class MultNode : public BinaryOpNode {
    12571299    public:
    1258         MultNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1259             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1300        MultNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1301            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    12601302        {
    12611303        }
     
    12681310    class DivNode : public BinaryOpNode {
    12691311    public:
    1270         DivNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1271             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1312        DivNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1313            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    12721314        {
    12731315        }
     
    12801322    class ModNode : public BinaryOpNode {
    12811323    public:
    1282         ModNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1283             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1324        ModNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1325            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    12841326        {
    12851327        }
     
    12921334    class AddNode : public BinaryOpNode {
    12931335    public:
    1294         AddNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1295             : BinaryOpNode(term1, term2, rightHasAssignments)
     1336        AddNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1337            : BinaryOpNode(globalData, term1, term2, rightHasAssignments)
    12961338        {
    12971339        }
     
    13041346    class SubNode : public BinaryOpNode {
    13051347    public:
    1306         SubNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1307             : BinaryOpNode(term1, term2, rightHasAssignments)
     1348        SubNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1349            : BinaryOpNode(globalData, term1, term2, rightHasAssignments)
    13081350        {
    13091351        }
     
    13161358    class LeftShiftNode : public BinaryOpNode {
    13171359    public:
    1318         LeftShiftNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1319             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1360        LeftShiftNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1361            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    13201362        {
    13211363        }
     
    13281370    class RightShiftNode : public BinaryOpNode {
    13291371    public:
    1330         RightShiftNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1331             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1372        RightShiftNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1373            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    13321374        {
    13331375        }
     
    13401382    class UnsignedRightShiftNode : public BinaryOpNode {
    13411383    public:
    1342         UnsignedRightShiftNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1343             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1384        UnsignedRightShiftNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1385            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    13441386        {
    13451387        }
     
    13521394    class LessNode : public BinaryOpNode {
    13531395    public:
    1354         LessNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1355             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1396        LessNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1397            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    13561398        {
    13571399        }
     
    13641406    class GreaterNode : public ReverseBinaryOpNode {
    13651407    public:
    1366         GreaterNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1367             : ReverseBinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1408        GreaterNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1409            : ReverseBinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    13681410        {
    13691411        }
     
    13761418    class LessEqNode : public BinaryOpNode {
    13771419    public:
    1378         LessEqNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1379             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1420        LessEqNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1421            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    13801422        {
    13811423        }
     
    13881430    class GreaterEqNode : public ReverseBinaryOpNode {
    13891431    public:
    1390         GreaterEqNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1391             : ReverseBinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1432        GreaterEqNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1433            : ReverseBinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    13921434        {
    13931435        }
     
    14001442    class InstanceOfNode : public BinaryOpNode {
    14011443    public:
    1402         InstanceOfNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1403             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1444        InstanceOfNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1445            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    14041446        {
    14051447        }
     
    14121454    class InNode : public BinaryOpNode {
    14131455    public:
    1414         InNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1415             : BinaryOpNode(term1, term2, rightHasAssignments)
     1456        InNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1457            : BinaryOpNode(globalData, term1, term2, rightHasAssignments)
    14161458        {
    14171459        }
     
    14241466    class EqualNode : public BinaryOpNode {
    14251467    public:
    1426         EqualNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1427             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1468        EqualNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1469            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    14281470        {
    14291471        }
     
    14361478    class NotEqualNode : public BinaryOpNode {
    14371479    public:
    1438         NotEqualNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1439             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1480        NotEqualNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1481            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    14401482        {
    14411483        }
     
    14481490    class StrictEqualNode : public BinaryOpNode {
    14491491    public:
    1450         StrictEqualNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1451             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1492        StrictEqualNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1493            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    14521494        {
    14531495        }
     
    14601502    class NotStrictEqualNode : public BinaryOpNode {
    14611503    public:
    1462         NotStrictEqualNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1463             : BinaryOpNode(BooleanType, term1, term2, rightHasAssignments)
     1504        NotStrictEqualNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1505            : BinaryOpNode(globalData, BooleanType, term1, term2, rightHasAssignments)
    14641506        {
    14651507        }
     
    14721514    class BitAndNode : public BinaryOpNode {
    14731515    public:
    1474         BitAndNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1475             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1516        BitAndNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1517            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    14761518        {
    14771519        }
     
    14841526    class BitOrNode : public BinaryOpNode {
    14851527    public:
    1486         BitOrNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1487             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1528        BitOrNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1529            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    14881530        {
    14891531        }
     
    14961538    class BitXOrNode : public BinaryOpNode {
    14971539    public:
    1498         BitXOrNode(ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
    1499             : BinaryOpNode(NumberType, term1, term2, rightHasAssignments)
     1540        BitXOrNode(JSGlobalData* globalData, ExpressionNode* term1, ExpressionNode* term2, bool rightHasAssignments) KJS_FAST_CALL
     1541            : BinaryOpNode(globalData, NumberType, term1, term2, rightHasAssignments)
    15001542        {
    15011543        }
     
    15111553    class LogicalAndNode : public ExpressionNode {
    15121554    public:
    1513         LogicalAndNode(ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
    1514             : ExpressionNode(BooleanType)
     1555        LogicalAndNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
     1556            : ExpressionNode(globalData, BooleanType)
    15151557            , m_expr1(expr1)
    15161558            , m_expr2(expr2)
     
    15291571    class LogicalOrNode : public ExpressionNode {
    15301572    public:
    1531         LogicalOrNode(ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
    1532             : ExpressionNode(BooleanType)
     1573        LogicalOrNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
     1574            : ExpressionNode(globalData, BooleanType)
    15331575            , m_expr1(expr1)
    15341576            , m_expr2(expr2)
     
    15501592    class ConditionalNode : public ExpressionNode {
    15511593    public:
    1552         ConditionalNode(ExpressionNode* logical, ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
    1553             : m_logical(logical)
     1594        ConditionalNode(JSGlobalData* globalData, ExpressionNode* logical, ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
     1595            : ExpressionNode(globalData)
     1596            , m_logical(logical)
    15541597            , m_expr1(expr1)
    15551598            , m_expr2(expr2)
     
    15691612    class ReadModifyResolveNode : public ExpressionNode {
    15701613    public:
    1571         ReadModifyResolveNode(const Identifier& ident, Operator oper, ExpressionNode*  right, bool rightHasAssignments) KJS_FAST_CALL
    1572             : m_ident(ident)
     1614        ReadModifyResolveNode(JSGlobalData* globalData, const Identifier& ident, Operator oper, ExpressionNode*  right, bool rightHasAssignments) KJS_FAST_CALL
     1615            : ExpressionNode(globalData)
     1616            , m_ident(ident)
    15731617            , m_right(right)
    15741618            , m_operator(oper)
     
    16001644    class AssignResolveNode : public ExpressionNode {
    16011645    public:
    1602         AssignResolveNode(const Identifier& ident, ExpressionNode* right, bool rightHasAssignments) KJS_FAST_CALL
    1603             : m_ident(ident)
     1646        AssignResolveNode(JSGlobalData* globalData, const Identifier& ident, ExpressionNode* right, bool rightHasAssignments) KJS_FAST_CALL
     1647            : ExpressionNode(globalData)
     1648            , m_ident(ident)
    16041649            , m_right(right)
    16051650            , m_rightHasAssignments(rightHasAssignments)
     
    16281673    class ReadModifyBracketNode : public ExpressionNode {
    16291674    public:
    1630         ReadModifyBracketNode(ExpressionNode* base, ExpressionNode* subscript, Operator oper, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments) KJS_FAST_CALL
    1631             : m_base(base)
     1675        ReadModifyBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript, Operator oper, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments) KJS_FAST_CALL
     1676            : ExpressionNode(globalData)
     1677            , m_base(base)
    16321678            , m_subscript(subscript)
    16331679            , m_right(right)
     
    16541700    class AssignBracketNode : public ExpressionNode {
    16551701    public:
    1656         AssignBracketNode(ExpressionNode* base, ExpressionNode* subscript, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments) KJS_FAST_CALL
    1657             : m_base(base)
     1702        AssignBracketNode(JSGlobalData* globalData, ExpressionNode* base, ExpressionNode* subscript, ExpressionNode* right, bool subscriptHasAssignments, bool rightHasAssignments) KJS_FAST_CALL
     1703            : ExpressionNode(globalData)
     1704            , m_base(base)
    16581705            , m_subscript(subscript)
    16591706            , m_right(right)
     
    16781725    class AssignDotNode : public ExpressionNode {
    16791726    public:
    1680         AssignDotNode(ExpressionNode* base, const Identifier& ident, ExpressionNode* right, bool rightHasAssignments) KJS_FAST_CALL
    1681             : m_base(base)
     1727        AssignDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident, ExpressionNode* right, bool rightHasAssignments) KJS_FAST_CALL
     1728            : ExpressionNode(globalData)
     1729            , m_base(base)
    16821730            , m_ident(ident)
    16831731            , m_right(right)
     
    16991747    class ReadModifyDotNode : public ExpressionNode {
    17001748    public:
    1701         ReadModifyDotNode(ExpressionNode* base, const Identifier& ident, Operator oper, ExpressionNode* right, bool rightHasAssignments) KJS_FAST_CALL
    1702             : m_base(base)
     1749        ReadModifyDotNode(JSGlobalData* globalData, ExpressionNode* base, const Identifier& ident, Operator oper, ExpressionNode* right, bool rightHasAssignments) KJS_FAST_CALL
     1750            : ExpressionNode(globalData)
     1751            , m_base(base)
    17031752            , m_ident(ident)
    17041753            , m_right(right)
     
    17231772    class AssignErrorNode : public ExpressionNode {
    17241773    public:
    1725         AssignErrorNode(ExpressionNode* left, Operator oper, ExpressionNode* right) KJS_FAST_CALL
    1726             : m_left(left)
     1774        AssignErrorNode(JSGlobalData* globalData, ExpressionNode* left, Operator oper, ExpressionNode* right) KJS_FAST_CALL
     1775            : ExpressionNode(globalData)
     1776            , m_left(left)
    17271777            , m_operator(oper)
    17281778            , m_right(right)
     
    17421792    class CommaNode : public ExpressionNode {
    17431793    public:
    1744         CommaNode(ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
    1745             : m_expr1(expr1)
     1794        CommaNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
     1795            : ExpressionNode(globalData)
     1796            , m_expr1(expr1)
    17461797            , m_expr2(expr2)
    17471798        {
     
    17591810    class VarDeclCommaNode : public CommaNode {
    17601811    public:
    1761         VarDeclCommaNode(ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
    1762             : CommaNode(expr1, expr2)
     1812        VarDeclCommaNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2) KJS_FAST_CALL
     1813            : CommaNode(globalData, expr1, expr2)
    17631814        {
    17641815        }
     
    17681819    class ConstDeclNode : public ExpressionNode {
    17691820    public:
    1770         ConstDeclNode(const Identifier& ident, ExpressionNode* in) KJS_FAST_CALL;
     1821        ConstDeclNode(JSGlobalData* globalData, const Identifier& ident, ExpressionNode* in) KJS_FAST_CALL;
    17711822
    17721823        virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
     
    17841835    class ConstStatementNode : public StatementNode {
    17851836    public:
    1786         ConstStatementNode(ConstDeclNode* next) KJS_FAST_CALL
    1787             : m_next(next)
     1837        ConstStatementNode(JSGlobalData* globalData, ConstDeclNode* next) KJS_FAST_CALL
     1838            : StatementNode(globalData)
     1839            , m_next(next)
    17881840        {
    17891841        }
     
    18011853    class SourceElements : public ParserRefCounted {
    18021854    public:
     1855        SourceElements(JSGlobalData* globalData) : ParserRefCounted(globalData) {}
     1856
    18031857        void append(PassRefPtr<StatementNode>);
    18041858        void releaseContentsIntoVector(StatementVector& destination)
     
    18141868    class BlockNode : public StatementNode {
    18151869    public:
    1816         BlockNode(SourceElements* children) KJS_FAST_CALL;
     1870        BlockNode(JSGlobalData*, SourceElements* children) KJS_FAST_CALL;
    18171871
    18181872        virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) KJS_FAST_CALL;
     
    18271881    class EmptyStatementNode : public StatementNode {
    18281882    public:
    1829         EmptyStatementNode() KJS_FAST_CALL // debug
     1883        EmptyStatementNode(JSGlobalData* globalData) KJS_FAST_CALL // debug
     1884            : StatementNode(globalData)
    18301885        {
    18311886        }
     
    18391894    class DebuggerStatementNode : public StatementNode {
    18401895    public:
    1841         DebuggerStatementNode() KJS_FAST_CALL
     1896        DebuggerStatementNode(JSGlobalData* globalData) KJS_FAST_CALL
     1897            : StatementNode(globalData)
    18421898        {
    18431899        }
     
    18501906    class ExprStatementNode : public StatementNode {
    18511907    public:
    1852         ExprStatementNode(ExpressionNode* expr) KJS_FAST_CALL
    1853             : m_expr(expr)
     1908        ExprStatementNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1909            : StatementNode(globalData)
     1910            , m_expr(expr)
    18541911        {
    18551912        }
     
    18641921    class VarStatementNode : public StatementNode {
    18651922    public:
    1866         VarStatementNode(ExpressionNode* expr) KJS_FAST_CALL
    1867             : m_expr(expr)
     1923        VarStatementNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     1924            : StatementNode(globalData)
     1925            , m_expr(expr)
    18681926        {
    18691927        }
     
    18791937    class IfNode : public StatementNode {
    18801938    public:
    1881         IfNode(ExpressionNode* condition, StatementNode* ifBlock) KJS_FAST_CALL
    1882             : m_condition(condition)
     1939        IfNode(JSGlobalData* globalData, ExpressionNode* condition, StatementNode* ifBlock) KJS_FAST_CALL
     1940            : StatementNode(globalData)
     1941            , m_condition(condition)
    18831942            , m_ifBlock(ifBlock)
    18841943        {
     
    18951954    class IfElseNode : public IfNode {
    18961955    public:
    1897         IfElseNode(ExpressionNode* condtion, StatementNode* ifBlock, StatementNode* elseBlock) KJS_FAST_CALL
    1898             : IfNode(condtion, ifBlock)
     1956        IfElseNode(JSGlobalData* globalData, ExpressionNode* condition, StatementNode* ifBlock, StatementNode* elseBlock) KJS_FAST_CALL
     1957            : IfNode(globalData, condition, ifBlock)
    18991958            , m_elseBlock(elseBlock)
    19001959        {
     
    19101969    class DoWhileNode : public StatementNode {
    19111970    public:
    1912         DoWhileNode(StatementNode* statement, ExpressionNode* expr) KJS_FAST_CALL
    1913             : m_statement(statement)
     1971        DoWhileNode(JSGlobalData* globalData, StatementNode* statement, ExpressionNode* expr) KJS_FAST_CALL
     1972            : StatementNode(globalData)
     1973            , m_statement(statement)
    19141974            , m_expr(expr)
    19151975        {
     
    19261986    class WhileNode : public StatementNode {
    19271987    public:
    1928         WhileNode(ExpressionNode* expr, StatementNode* statement) KJS_FAST_CALL
    1929             : m_expr(expr)
     1988        WhileNode(JSGlobalData* globalData, ExpressionNode* expr, StatementNode* statement) KJS_FAST_CALL
     1989            : StatementNode(globalData)
     1990            , m_expr(expr)
    19301991            , m_statement(statement)
    19311992        {
     
    19422003    class ForNode : public StatementNode {
    19432004    public:
    1944         ForNode(ExpressionNode* expr1, ExpressionNode* expr2, ExpressionNode* expr3, StatementNode* statement, bool expr1WasVarDecl) KJS_FAST_CALL
    1945             : m_expr1(expr1)
     2005        ForNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, ExpressionNode* expr3, StatementNode* statement, bool expr1WasVarDecl) KJS_FAST_CALL
     2006            : StatementNode(globalData)
     2007            , m_expr1(expr1)
    19462008            , m_expr2(expr2)
    19472009            , m_expr3(expr3)
     
    19652027    class ForInNode : public StatementNode {
    19662028    public:
    1967         ForInNode(ExpressionNode*, ExpressionNode*, StatementNode*) KJS_FAST_CALL;
    1968         ForInNode(const Identifier&, ExpressionNode*, ExpressionNode*, StatementNode*) KJS_FAST_CALL;
     2029        ForInNode(JSGlobalData*, ExpressionNode*, ExpressionNode*, StatementNode*) KJS_FAST_CALL;
     2030        ForInNode(JSGlobalData*, const Identifier&, ExpressionNode*, ExpressionNode*, StatementNode*) KJS_FAST_CALL;
    19692031       
    19702032        virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) KJS_FAST_CALL;
     
    19822044    class ContinueNode : public StatementNode {
    19832045    public:
    1984         ContinueNode() KJS_FAST_CALL
    1985         {
    1986         }
    1987 
    1988         ContinueNode(const Identifier& ident) KJS_FAST_CALL
    1989             : m_ident(ident)
     2046        ContinueNode(JSGlobalData* globalData) KJS_FAST_CALL
     2047            : StatementNode(globalData)
     2048        {
     2049        }
     2050
     2051        ContinueNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     2052            : StatementNode(globalData)
     2053            , m_ident(ident)
    19902054        {
    19912055        }
     
    20002064    class BreakNode : public StatementNode {
    20012065    public:
    2002         BreakNode() KJS_FAST_CALL
    2003         {
    2004         }
    2005 
    2006         BreakNode(const Identifier& ident) KJS_FAST_CALL
    2007             : m_ident(ident)
     2066        BreakNode(JSGlobalData* globalData) KJS_FAST_CALL
     2067            : StatementNode(globalData)
     2068        {
     2069        }
     2070
     2071        BreakNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     2072            : StatementNode(globalData)
     2073            , m_ident(ident)
    20082074        {
    20092075        }
     
    20182084    class ReturnNode : public StatementNode {
    20192085    public:
    2020         ReturnNode(ExpressionNode* value) KJS_FAST_CALL
    2021             : m_value(value)
     2086        ReturnNode(JSGlobalData* globalData, ExpressionNode* value) KJS_FAST_CALL
     2087            : StatementNode(globalData)
     2088            , m_value(value)
    20222089        {
    20232090        }
     
    20332100    class WithNode : public StatementNode {
    20342101    public:
    2035         WithNode(ExpressionNode* expr, StatementNode* statement) KJS_FAST_CALL
    2036             : m_expr(expr)
     2102        WithNode(JSGlobalData* globalData, ExpressionNode* expr, StatementNode* statement) KJS_FAST_CALL
     2103            : StatementNode(globalData)
     2104            , m_expr(expr)
    20372105            , m_statement(statement)
    20382106        {
     
    20492117    class LabelNode : public StatementNode {
    20502118    public:
    2051         LabelNode(const Identifier& label, StatementNode* statement) KJS_FAST_CALL
    2052             : m_label(label)
     2119        LabelNode(JSGlobalData* globalData, const Identifier& label, StatementNode* statement) KJS_FAST_CALL
     2120            : StatementNode(globalData)
     2121            , m_label(label)
    20532122            , m_statement(statement)
    20542123        {
     
    20662135    class ThrowNode : public StatementNode {
    20672136    public:
    2068         ThrowNode(ExpressionNode* expr) KJS_FAST_CALL
    2069             : m_expr(expr)
     2137        ThrowNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     2138            : StatementNode(globalData)
     2139            , m_expr(expr)
    20702140        {
    20712141        }
     
    20802150    class TryNode : public StatementNode {
    20812151    public:
    2082         TryNode(StatementNode* tryBlock, const Identifier& exceptionIdent, StatementNode* catchBlock, StatementNode* finallyBlock) KJS_FAST_CALL
    2083             : m_tryBlock(tryBlock)
     2152        TryNode(JSGlobalData* globalData, StatementNode* tryBlock, const Identifier& exceptionIdent, StatementNode* catchBlock, StatementNode* finallyBlock) KJS_FAST_CALL
     2153            : StatementNode(globalData)
     2154            , m_tryBlock(tryBlock)
    20842155            , m_exceptionIdent(exceptionIdent)
    20852156            , m_catchBlock(catchBlock)
     
    21012172    class ParameterNode : public Node {
    21022173    public:
    2103         ParameterNode(const Identifier& ident) KJS_FAST_CALL
    2104             : m_ident(ident)
    2105         {
    2106         }
    2107 
    2108         ParameterNode(ParameterNode* l, const Identifier& ident) KJS_FAST_CALL
    2109             : m_ident(ident)
     2174        ParameterNode(JSGlobalData* globalData, const Identifier& ident) KJS_FAST_CALL
     2175            : Node(globalData)
     2176            , m_ident(ident)
     2177        {
     2178        }
     2179
     2180        ParameterNode(JSGlobalData* globalData, ParameterNode* l, const Identifier& ident) KJS_FAST_CALL
     2181            : Node(globalData)
     2182            , m_ident(ident)
    21102183        {
    21112184            l->m_next = this;
     
    21272200    class ScopeNode : public BlockNode {
    21282201    public:
    2129         ScopeNode(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2202        ScopeNode(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    21302203
    21312204        int sourceId() const KJS_FAST_CALL { return m_sourceId; }
     
    21522225    class ProgramNode : public ScopeNode {
    21532226    public:
    2154         static ProgramNode* create(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2227        static ProgramNode* create(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    21552228
    21562229        ProgramCodeBlock& code(ScopeChainNode* scopeChain, bool canCreateGlobals) KJS_FAST_CALL
     
    21622235
    21632236    private:
    2164         ProgramNode(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2237        ProgramNode(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    21652238
    21662239        void generateCode(ScopeChainNode*, bool) KJS_FAST_CALL;
     
    21752248    class EvalNode : public ScopeNode {
    21762249    public:
    2177         static EvalNode* create(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2250        static EvalNode* create(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    21782251
    21792252        EvalCodeBlock& code(ScopeChainNode* scopeChain) KJS_FAST_CALL
     
    21852258
    21862259    private:
    2187         EvalNode(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2260        EvalNode(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    21882261
    21892262        void generateCode(ScopeChainNode*) KJS_FAST_CALL;
     
    21952268    class FunctionBodyNode : public ScopeNode {
    21962269    public:
    2197         static FunctionBodyNode* create(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2270        static FunctionBodyNode* create(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    21982271
    21992272        Vector<Identifier>& parameters() KJS_FAST_CALL { return m_parameters; }
     
    22242297
    22252298    protected:
    2226         FunctionBodyNode(SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
     2299        FunctionBodyNode(JSGlobalData*, SourceElements*, VarStack*, FunctionStack*, bool usesEval, bool needsClosure) KJS_FAST_CALL;
    22272300
    22282301    private:
     
    22372310    class FuncExprNode : public ExpressionNode {
    22382311    public:
    2239         FuncExprNode(const Identifier& ident, FunctionBodyNode* body, const SourceRange& source, ParameterNode* parameter = 0) KJS_FAST_CALL
    2240             : m_ident(ident)
     2312        FuncExprNode(JSGlobalData* globalData, const Identifier& ident, FunctionBodyNode* body, const SourceRange& source, ParameterNode* parameter = 0) KJS_FAST_CALL
     2313            : ExpressionNode(globalData)
     2314            , m_ident(ident)
    22412315            , m_parameter(parameter)
    22422316            , m_body(body)
     
    22662340    class FuncDeclNode : public StatementNode {
    22672341    public:
    2268         FuncDeclNode(const Identifier& ident, FunctionBodyNode* body, const SourceRange& source, ParameterNode* parameter = 0) KJS_FAST_CALL
    2269             : m_ident(ident)
     2342        FuncDeclNode(JSGlobalData* globalData, const Identifier& ident, FunctionBodyNode* body, const SourceRange& source, ParameterNode* parameter = 0) KJS_FAST_CALL
     2343            : StatementNode(globalData)
     2344            , m_ident(ident)
    22702345            , m_parameter(parameter)
    22712346            , m_body(body)
     
    22932368    class CaseClauseNode : public Node {
    22942369    public:
    2295         CaseClauseNode(ExpressionNode* expr) KJS_FAST_CALL
    2296             : m_expr(expr)
    2297         {
    2298         }
    2299 
    2300         CaseClauseNode(ExpressionNode* expr, SourceElements* children) KJS_FAST_CALL
    2301             : m_expr(expr)
     2370        CaseClauseNode(JSGlobalData* globalData, ExpressionNode* expr) KJS_FAST_CALL
     2371            : Node(globalData)
     2372            , m_expr(expr)
     2373        {
     2374        }
     2375
     2376        CaseClauseNode(JSGlobalData* globalData, ExpressionNode* expr, SourceElements* children) KJS_FAST_CALL
     2377            : Node(globalData)
     2378            , m_expr(expr)
    23022379        {
    23032380            if (children)
     
    23182395    class ClauseListNode : public Node {
    23192396    public:
    2320         ClauseListNode(CaseClauseNode* clause) KJS_FAST_CALL
    2321             : m_clause(clause)
    2322         {
    2323         }
    2324 
    2325         ClauseListNode(ClauseListNode* clauseList, CaseClauseNode* clause) KJS_FAST_CALL
    2326             : m_clause(clause)
     2397        ClauseListNode(JSGlobalData* globalData, CaseClauseNode* clause) KJS_FAST_CALL
     2398            : Node(globalData)
     2399            , m_clause(clause)
     2400        {
     2401        }
     2402
     2403        ClauseListNode(JSGlobalData* globalData, ClauseListNode* clauseList, CaseClauseNode* clause) KJS_FAST_CALL
     2404            : Node(globalData)
     2405            , m_clause(clause)
    23272406        {
    23282407            clauseList->m_next = this;
     
    23432422    class CaseBlockNode : public Node {
    23442423    public:
    2345         CaseBlockNode(ClauseListNode* list1, CaseClauseNode* defaultClause, ClauseListNode* list2) KJS_FAST_CALL
    2346             : m_list1(list1)
     2424        CaseBlockNode(JSGlobalData* globalData, ClauseListNode* list1, CaseClauseNode* defaultClause, ClauseListNode* list2) KJS_FAST_CALL
     2425            : Node(globalData)
     2426            , m_list1(list1)
    23472427            , m_defaultClause(defaultClause)
    23482428            , m_list2(list2)
     
    23632443    class SwitchNode : public StatementNode {
    23642444    public:
    2365         SwitchNode(ExpressionNode* expr, CaseBlockNode* block) KJS_FAST_CALL
    2366             : m_expr(expr)
     2445        SwitchNode(JSGlobalData* globalData, ExpressionNode* expr, CaseBlockNode* block) KJS_FAST_CALL
     2446            : StatementNode(globalData)
     2447            , m_expr(expr)
    23672448            , m_block(block)
    23682449        {
     
    23802461    class BreakpointCheckStatement : public StatementNode {
    23812462    public:
    2382         BreakpointCheckStatement(PassRefPtr<StatementNode>) KJS_FAST_CALL;
     2463        BreakpointCheckStatement(JSGlobalData*, PassRefPtr<StatementNode>) KJS_FAST_CALL;
    23832464
    23842465        virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
Note: See TracChangeset for help on using the changeset viewer.