Changeset 177001 in webkit for trunk/Source/JavaScriptCore/parser/Nodes.cpp
- Timestamp:
- Dec 8, 2014, 5:53:53 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Nodes.cpp
r176825 r177001 66 66 if (statement->isEmptyStatement()) 67 67 return; 68 m_statements.append(statement); 68 69 if (!m_head) { 70 m_head = statement; 71 m_tail = statement; 72 return; 73 } 74 75 m_tail->setNext(statement); 76 m_tail = statement; 69 77 } 70 78 71 79 StatementNode* SourceElements::singleStatement() const 72 80 { 73 size_t size = m_statements.size(); 74 return size == 1 ? m_statements[0] : 0; 81 return m_head == m_tail ? m_head : nullptr; 75 82 } 76 83 … … 89 96 } 90 97 91 ScopeNode::ScopeNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, const SourceCode& source, SourceElements* children, VarStack * varStack, FunctionStack*funcStack, IdentifierSet& capturedVariables, CodeFeatures features, int numConstants)98 ScopeNode::ScopeNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, const SourceCode& source, SourceElements* children, VarStack& varStack, FunctionStack& funcStack, IdentifierSet& capturedVariables, CodeFeatures features, int numConstants) 92 99 : StatementNode(endLocation) 93 100 , ParserArenaRoot(parserArena) … … 100 107 , m_statements(children) 101 108 { 102 if (varStack) 103 m_varStack.swap(*varStack); 104 if (funcStack) 105 m_functionStack.swap(*funcStack); 109 m_varStack.swap(varStack); 110 m_functionStack.swap(funcStack); 106 111 m_capturedVariables.swap(capturedVariables); 107 112 } … … 114 119 // ------------------------------ ProgramNode ----------------------------- 115 120 116 ProgramNode::ProgramNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, SourceElements* children, VarStack * varStack, FunctionStack*funcStack, IdentifierSet& capturedVariables, const SourceCode& source, CodeFeatures features, int numConstants)121 ProgramNode::ProgramNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, SourceElements* children, VarStack& varStack, FunctionStack& funcStack, IdentifierSet& capturedVariables, const SourceCode& source, CodeFeatures features, int numConstants) 117 122 : ScopeNode(parserArena, startLocation, endLocation, source, children, varStack, funcStack, capturedVariables, features, numConstants) 118 123 , m_startColumn(startColumn) … … 128 133 // ------------------------------ EvalNode ----------------------------- 129 134 130 EvalNode::EvalNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned, unsigned endColumn, SourceElements* children, VarStack * varStack, FunctionStack*funcStack, IdentifierSet& capturedVariables, const SourceCode& source, CodeFeatures features, int numConstants)135 EvalNode::EvalNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned, unsigned endColumn, SourceElements* children, VarStack& varStack, FunctionStack& funcStack, IdentifierSet& capturedVariables, const SourceCode& source, CodeFeatures features, int numConstants) 131 136 : ScopeNode(parserArena, startLocation, endLocation, source, children, varStack, funcStack, capturedVariables, features, numConstants) 132 137 , m_endColumn(endColumn) … … 189 194 // ------------------------------ FunctionNode ----------------------------- 190 195 191 FunctionNode::FunctionNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, SourceElements* children, VarStack * varStack, FunctionStack*funcStack, IdentifierSet& capturedVariables, const SourceCode& sourceCode, CodeFeatures features, int numConstants)196 FunctionNode::FunctionNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, SourceElements* children, VarStack& varStack, FunctionStack& funcStack, IdentifierSet& capturedVariables, const SourceCode& sourceCode, CodeFeatures features, int numConstants) 192 197 : ScopeNode(parserArena, startLocation, endLocation, sourceCode, children, varStack, funcStack, capturedVariables, features, numConstants) 193 198 , m_startColumn(startColumn)
Note:
See TracChangeset
for help on using the changeset viewer.