Changeset 176825 in webkit for trunk/Source/JavaScriptCore/parser/Nodes.h
- Timestamp:
- Dec 4, 2014, 4:59:33 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Nodes.h
r176823 r176825 112 112 }; 113 113 114 class ParserArenaR efCounted : public RefCounted<ParserArenaRefCounted>{114 class ParserArenaRoot { 115 115 WTF_MAKE_FAST_ALLOCATED; 116 116 protected: 117 ParserArenaRefCounted(ParserArena&); 118 119 public: 120 virtual ~ParserArenaRefCounted() 121 { 122 ASSERT(deletionHasBegun()); 123 } 117 ParserArenaRoot(ParserArena&); 118 119 public: 120 ParserArena& parserArena() { return m_arena; } 121 virtual ~ParserArenaRoot() { } 122 123 protected: 124 ParserArena m_arena; 124 125 }; 125 126 … … 1405 1406 }; 1406 1407 1407 class ScopeNode : public StatementNode, public ParserArenaR efCounted{1408 class ScopeNode : public StatementNode, public ParserArenaRoot { 1408 1409 public: 1409 1410 typedef DeclarationStacks::VarStack VarStack; … … 1413 1414 ScopeNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, const SourceCode&, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, CodeFeatures, int numConstants); 1414 1415 1415 using ParserArenaRefCounted::operator new; 1416 1417 void destroyData() 1418 { 1419 m_arena.reset(); 1420 m_varStack.clear(); 1421 m_functionStack.clear(); 1422 m_statements = 0; 1423 m_capturedVariables.clear(); 1424 } 1425 1426 ParserArena& parserArena() { return m_arena; } 1416 using ParserArenaRoot::operator new; 1417 1427 1418 const SourceCode& source() const { return m_source; } 1428 1419 const String& sourceURL() const { return m_source.provider()->url(); } … … 1467 1458 1468 1459 protected: 1469 ParserArena m_arena;1470 1471 1460 int m_startLineNumber; 1472 1461 unsigned m_startStartOffset; … … 1485 1474 class ProgramNode : public ScopeNode { 1486 1475 public: 1487 static PassRefPtr<ProgramNode> create(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants);1476 ProgramNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants); 1488 1477 1489 1478 unsigned startColumn() const { return m_startColumn; } … … 1494 1483 void setClosedVariables(Vector<RefPtr<StringImpl>>&&); 1495 1484 const Vector<RefPtr<StringImpl>>& closedVariables() const { return m_closedVariables; } 1496 private: 1497 ProgramNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants); 1498 1485 1486 private: 1499 1487 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1500 1488 Vector<RefPtr<StringImpl>> m_closedVariables; … … 1505 1493 class EvalNode : public ScopeNode { 1506 1494 public: 1507 static PassRefPtr<EvalNode> create(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants);1495 EvalNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants); 1508 1496 1509 1497 ALWAYS_INLINE unsigned startColumn() const { return 0; } … … 1513 1501 1514 1502 private: 1515 EvalNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants);1516 1517 1503 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1518 1504 … … 1585 1571 class FunctionNode final : public ScopeNode { 1586 1572 public: 1587 static PassRefPtr<FunctionNode> create(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants);1573 FunctionNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants); 1588 1574 1589 1575 FunctionParameters* parameters() const { return m_parameters.get(); } … … 1603 1589 1604 1590 private: 1605 FunctionNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VarStack*, FunctionStack*, IdentifierSet&, const SourceCode&, CodeFeatures, int numConstants);1606 1607 1591 Identifier m_ident; 1608 1592 FunctionMode m_functionMode;
Note:
See TracChangeset
for help on using the changeset viewer.