Changeset 187890 in webkit for trunk/Source/JavaScriptCore/parser/Nodes.h
- Timestamp:
- Aug 4, 2015, 2:26:49 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Nodes.h
r187515 r187890 1623 1623 }; 1624 1624 1625 class ModuleProgramNode : public ScopeNode { 1626 public: 1627 ModuleProgramNode(ParserArena&, const JSTokenLocation& start, const JSTokenLocation& end, unsigned startColumn, unsigned endColumn, SourceElements*, VariableEnvironment&, FunctionStack&, VariableEnvironment&, FunctionParameters*, const SourceCode&, CodeFeatures, int numConstants); 1628 1629 unsigned startColumn() const { return m_startColumn; } 1630 unsigned endColumn() const { return m_endColumn; } 1631 1632 static const bool scopeIsFunction = false; 1633 1634 private: 1635 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1636 unsigned m_startColumn; 1637 unsigned m_endColumn; 1638 }; 1639 1640 class ModuleSpecifierNode : public Node { 1641 public: 1642 ModuleSpecifierNode(const JSTokenLocation&, const Identifier& moduleName); 1643 1644 const Identifier& moduleName() { return m_moduleName; } 1645 1646 private: 1647 const Identifier& m_moduleName; 1648 }; 1649 1650 class ImportSpecifierNode : public Node { 1651 public: 1652 ImportSpecifierNode(const JSTokenLocation&, const Identifier& importedName, const Identifier& localName); 1653 1654 const Identifier& importedName() { return m_importedName; } 1655 const Identifier& localName() { return m_localName; } 1656 1657 private: 1658 const Identifier& m_importedName; 1659 const Identifier& m_localName; 1660 }; 1661 1662 class ImportSpecifierListNode : public ParserArenaDeletable { 1663 public: 1664 typedef Vector<ImportSpecifierNode*, 3> Specifiers; 1665 1666 const Specifiers& specifiers() const { return m_specifiers; } 1667 void append(ImportSpecifierNode* specifier) 1668 { 1669 m_specifiers.append(specifier); 1670 } 1671 1672 private: 1673 Specifiers m_specifiers; 1674 }; 1675 1676 class ImportDeclarationNode : public StatementNode { 1677 public: 1678 ImportDeclarationNode(const JSTokenLocation&, ImportSpecifierListNode*, ModuleSpecifierNode*); 1679 1680 ImportSpecifierListNode* specifierList() const { return m_specifierList; } 1681 ModuleSpecifierNode* moduleSpecifier() const { return m_moduleSpecifier; } 1682 1683 private: 1684 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1685 1686 ImportSpecifierListNode* m_specifierList; 1687 ModuleSpecifierNode* m_moduleSpecifier; 1688 }; 1689 1690 class ExportAllDeclarationNode : public StatementNode { 1691 public: 1692 ExportAllDeclarationNode(const JSTokenLocation&, ModuleSpecifierNode*); 1693 1694 ModuleSpecifierNode* moduleSpecifier() const { return m_moduleSpecifier; } 1695 1696 private: 1697 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1698 ModuleSpecifierNode* m_moduleSpecifier; 1699 }; 1700 1701 class ExportDefaultDeclarationNode : public StatementNode { 1702 public: 1703 ExportDefaultDeclarationNode(const JSTokenLocation&, StatementNode*); 1704 1705 const StatementNode& declaration() const { return *m_declaration; } 1706 1707 private: 1708 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1709 StatementNode* m_declaration; 1710 }; 1711 1712 class ExportLocalDeclarationNode : public StatementNode { 1713 public: 1714 ExportLocalDeclarationNode(const JSTokenLocation&, StatementNode*); 1715 1716 const StatementNode& declaration() const { return *m_declaration; } 1717 1718 private: 1719 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1720 StatementNode* m_declaration; 1721 }; 1722 1723 class ExportSpecifierNode : public Node { 1724 public: 1725 ExportSpecifierNode(const JSTokenLocation&, const Identifier& localName, const Identifier& exportedName); 1726 1727 const Identifier& exportedName() { return m_exportedName; } 1728 const Identifier& localName() { return m_localName; } 1729 1730 private: 1731 const Identifier& m_localName; 1732 const Identifier& m_exportedName; 1733 }; 1734 1735 class ExportSpecifierListNode : public ParserArenaDeletable { 1736 public: 1737 typedef Vector<ExportSpecifierNode*, 3> Specifiers; 1738 1739 const Specifiers& specifiers() const { return m_specifiers; } 1740 void append(ExportSpecifierNode* specifier) 1741 { 1742 m_specifiers.append(specifier); 1743 } 1744 1745 private: 1746 Specifiers m_specifiers; 1747 }; 1748 1749 class ExportNamedDeclarationNode : public StatementNode { 1750 public: 1751 ExportNamedDeclarationNode(const JSTokenLocation&, ExportSpecifierListNode*, ModuleSpecifierNode*); 1752 1753 ExportSpecifierListNode* specifierList() const { return m_specifierList; } 1754 ModuleSpecifierNode* moduleSpecifier() const { return m_moduleSpecifier; } 1755 1756 private: 1757 virtual void emitBytecode(BytecodeGenerator&, RegisterID* = 0) override; 1758 ExportSpecifierListNode* m_specifierList; 1759 ModuleSpecifierNode* m_moduleSpecifier { nullptr }; 1760 }; 1761 1625 1762 class FunctionParameters : public ParserArenaDeletable { 1626 1763 public:
Note:
See TracChangeset
for help on using the changeset viewer.