Changeset 110039 in webkit for trunk/Source/JavaScriptCore/parser/Nodes.cpp
- Timestamp:
- Mar 7, 2012, 2:18:43 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Nodes.cpp
r98887 r110039 74 74 } 75 75 76 // ----------------------------- ScopeNodeData---------------------------76 // ------------------------------ ScopeNode ----------------------------- 77 77 78 ScopeNodeData::ScopeNodeData(ParserArena& arena, SourceElements* statements, VarStack* varStack, FunctionStack* funcStack, IdentifierSet& capturedVariables, int numConstants) 79 : m_numConstants(numConstants) 80 , m_statements(statements) 78 ScopeNode::ScopeNode(JSGlobalData* globalData, int lineNumber, bool inStrictContext) 79 : StatementNode(lineNumber) 80 , ParserArenaRefCounted(globalData) 81 , m_features(inStrictContext ? StrictModeFeature : NoFeatures) 82 , m_numConstants(0) 83 , m_statements(0) 81 84 { 82 m_arena.swap(arena); 85 } 86 87 ScopeNode::ScopeNode(JSGlobalData* globalData, int lineNumber, const SourceCode& source, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, IdentifierSet& capturedVariables, CodeFeatures features, int numConstants) 88 : StatementNode(lineNumber) 89 , ParserArenaRefCounted(globalData) 90 , m_features(features) 91 , m_source(source) 92 , m_numConstants(numConstants) 93 , m_statements(children) 94 { 95 m_arena.swap(*globalData->parserArena); 83 96 if (varStack) 84 97 m_varStack.swap(*varStack); … … 88 101 } 89 102 90 // ------------------------------ ScopeNode -----------------------------91 92 ScopeNode::ScopeNode(JSGlobalData* globalData, int lineNumber, bool inStrictContext)93 : StatementNode(lineNumber)94 , ParserArenaRefCounted(globalData)95 , m_features(inStrictContext ? StrictModeFeature : NoFeatures)96 {97 }98 99 ScopeNode::ScopeNode(JSGlobalData* globalData, int lineNumber, const SourceCode& source, SourceElements* children, VarStack* varStack, FunctionStack* funcStack, IdentifierSet& capturedVariables, CodeFeatures features, int numConstants)100 : StatementNode(lineNumber)101 , ParserArenaRefCounted(globalData)102 , m_data(adoptPtr(new ScopeNodeData(*globalData->parserArena, children, varStack, funcStack, capturedVariables, numConstants)))103 , m_features(features)104 , m_source(source)105 {106 }107 108 103 StatementNode* ScopeNode::singleStatement() const 109 104 { 110 return m_ data->m_statements ? m_data->m_statements->singleStatement() : 0;105 return m_statements ? m_statements->singleStatement() : 0; 111 106 } 112 107 … … 122 117 RefPtr<ProgramNode> node = new ProgramNode(globalData, lineNumber, children, varStack, funcStack, capturedVariables, source, features, numConstants); 123 118 124 ASSERT(node-> data()->m_arena.last() == node);125 node-> data()->m_arena.removeLast();126 ASSERT(!node-> data()->m_arena.contains(node.get()));119 ASSERT(node->m_arena.last() == node); 120 node->m_arena.removeLast(); 121 ASSERT(!node->m_arena.contains(node.get())); 127 122 128 123 return node.release(); … … 140 135 RefPtr<EvalNode> node = new EvalNode(globalData, lineNumber, children, varStack, funcStack, capturedVariables, source, features, numConstants); 141 136 142 ASSERT(node-> data()->m_arena.last() == node);143 node-> data()->m_arena.removeLast();144 ASSERT(!node-> data()->m_arena.contains(node.get()));137 ASSERT(node->m_arena.last() == node); 138 node->m_arena.removeLast(); 139 ASSERT(!node->m_arena.contains(node.get())); 145 140 146 141 return node.release(); … … 187 182 RefPtr<FunctionBodyNode> node = new FunctionBodyNode(globalData, lineNumber, children, varStack, funcStack, capturedVariables, sourceCode, features, numConstants); 188 183 189 ASSERT(node-> data()->m_arena.last() == node);190 node-> data()->m_arena.removeLast();191 ASSERT(!node-> data()->m_arena.contains(node.get()));184 ASSERT(node->m_arena.last() == node); 185 node->m_arena.removeLast(); 186 ASSERT(!node->m_arena.contains(node.get())); 192 187 193 188 return node.release();
Note:
See TracChangeset
for help on using the changeset viewer.