Changeset 176822 in webkit for trunk/Source/JavaScriptCore/parser/Nodes.cpp
- Timestamp:
- Dec 4, 2014, 3:47:49 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Nodes.cpp
r176756 r176822 188 188 } 189 189 190 inline FunctionBodyNode::FunctionBodyNode(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, bool inStrictContext)191 : S copeNode(parserArena, startLocation, endLocation, inStrictContext)190 FunctionBodyNode::FunctionBodyNode(ParserArena&, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, bool isInStrictContext) 191 : StatementNode(endLocation) 192 192 , m_startColumn(startColumn) 193 193 , m_endColumn(endColumn) 194 { 195 } 196 197 inline FunctionBodyNode::FunctionBodyNode(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) 194 , m_startStartOffset(startLocation.startOffset) 195 , m_isInStrictContext(isInStrictContext) 196 { 197 } 198 199 void FunctionBodyNode::finishParsing(const SourceCode& source, ParameterNode* firstParameter, const Identifier& ident, enum FunctionMode functionMode) 200 { 201 m_source = source; 202 m_parameters = FunctionParameters::create(firstParameter); 203 m_ident = ident; 204 m_functionMode = functionMode; 205 } 206 207 void FunctionBodyNode::setEndPosition(JSTextPosition position) 208 { 209 m_lastLine = position.line; 210 m_endColumn = position.offset - position.lineStartOffset; 211 } 212 213 // ===================== 214 215 inline 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) 198 216 : ScopeNode(parserArena, startLocation, endLocation, sourceCode, children, varStack, funcStack, capturedVariables, features, numConstants) 199 217 , m_startColumn(startColumn) … … 202 220 } 203 221 204 void FunctionBodyNode::finishParsing(const SourceCode& source, ParameterNode* firstParameter, const Identifier& ident, enum FunctionMode functionMode) 205 { 206 setSource(source); 207 finishParsing(FunctionParameters::create(firstParameter), ident, functionMode); 208 } 209 210 void FunctionBodyNode::finishParsing(PassRefPtr<FunctionParameters> parameters, const Identifier& ident, enum FunctionMode functionMode) 222 PassRefPtr<FunctionNode> FunctionNode::create(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) 223 { 224 RefPtr<FunctionNode> node = new FunctionNode(parserArena, startLocation, endLocation, startColumn, endColumn , children, varStack, funcStack, capturedVariables, sourceCode, features, numConstants); 225 226 ASSERT(node->m_arena.last() == node); 227 node->m_arena.removeLast(); 228 ASSERT(!node->m_arena.contains(node.get())); 229 230 return node.release(); 231 } 232 233 void FunctionNode::finishParsing(PassRefPtr<FunctionParameters> parameters, const Identifier& ident, enum FunctionMode functionMode) 211 234 { 212 235 ASSERT(!source().isNull()); … … 216 239 } 217 240 218 FunctionBodyNode* FunctionBodyNode::create(ParserArena& parserArena, const JSTokenLocation& startLocation, const JSTokenLocation& endLocation, unsigned startColumn, unsigned endColumn, bool inStrictContext)219 {220 return new FunctionBodyNode(parserArena, startLocation, endLocation, startColumn, endColumn, inStrictContext);221 }222 223 PassRefPtr<FunctionBodyNode> FunctionBodyNode::create(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)224 {225 RefPtr<FunctionBodyNode> node = new FunctionBodyNode(parserArena, startLocation, endLocation, startColumn, endColumn , children, varStack, funcStack, capturedVariables, sourceCode, features, numConstants);226 227 ASSERT(node->m_arena.last() == node);228 node->m_arena.removeLast();229 ASSERT(!node->m_arena.contains(node.get()));230 231 return node.release();232 }233 234 void FunctionBodyNode::setEndPosition(JSTextPosition position)235 {236 m_lastLine = position.line;237 m_endColumn = position.offset - position.lineStartOffset;238 }239 240 241 } // namespace JSC
Note:
See TracChangeset
for help on using the changeset viewer.