Changeset 288473 in webkit for trunk/Source/JavaScriptCore/parser/Nodes.h
- Timestamp:
- Jan 24, 2022, 2:51:13 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/Nodes.h
r287531 r288473 628 628 class ImportNode final : public ExpressionNode, public ThrowableExpressionData { 629 629 public: 630 ImportNode(const JSTokenLocation&, ExpressionNode* );630 ImportNode(const JSTokenLocation&, ExpressionNode*, ExpressionNode*); 631 631 632 632 private: … … 635 635 636 636 ExpressionNode* m_expr; 637 ExpressionNode* m_option; 637 638 }; 638 639 … … 2058 2059 }; 2059 2060 2061 class ImportAssertionListNode final : public ParserArenaDeletable { 2062 JSC_MAKE_PARSER_ARENA_DELETABLE_ALLOCATED(ImportAssertionListNode); 2063 public: 2064 using Assertions = Vector<std::tuple<const Identifier*, const Identifier*>, 3>; 2065 2066 const Assertions& assertions() const { return m_assertions; } 2067 void append(const Identifier& key, const Identifier& value) 2068 { 2069 m_assertions.append(std::tuple { &key, &value }); 2070 } 2071 2072 private: 2073 Assertions m_assertions; 2074 }; 2075 2060 2076 class ModuleDeclarationNode : public StatementNode { 2061 2077 public: … … 2070 2086 class ImportDeclarationNode final : public ModuleDeclarationNode { 2071 2087 public: 2072 ImportDeclarationNode(const JSTokenLocation&, ImportSpecifierListNode*, ModuleNameNode* );2088 ImportDeclarationNode(const JSTokenLocation&, ImportSpecifierListNode*, ModuleNameNode*, ImportAssertionListNode*); 2073 2089 2074 2090 ImportSpecifierListNode* specifierList() const { return m_specifierList; } 2075 2091 ModuleNameNode* moduleName() const { return m_moduleName; } 2092 ImportAssertionListNode* assertionList() const { return m_assertionList; } 2076 2093 2077 2094 private: … … 2081 2098 ImportSpecifierListNode* m_specifierList; 2082 2099 ModuleNameNode* m_moduleName; 2100 ImportAssertionListNode* m_assertionList; 2083 2101 }; 2084 2102 2085 2103 class ExportAllDeclarationNode final : public ModuleDeclarationNode { 2086 2104 public: 2087 ExportAllDeclarationNode(const JSTokenLocation&, ModuleNameNode* );2105 ExportAllDeclarationNode(const JSTokenLocation&, ModuleNameNode*, ImportAssertionListNode*); 2088 2106 2089 2107 ModuleNameNode* moduleName() const { return m_moduleName; } 2108 ImportAssertionListNode* assertionList() const { return m_assertionList; } 2090 2109 2091 2110 private: … … 2094 2113 2095 2114 ModuleNameNode* m_moduleName; 2115 ImportAssertionListNode* m_assertionList; 2096 2116 }; 2097 2117 … … 2151 2171 class ExportNamedDeclarationNode final : public ModuleDeclarationNode { 2152 2172 public: 2153 ExportNamedDeclarationNode(const JSTokenLocation&, ExportSpecifierListNode*, ModuleNameNode* );2173 ExportNamedDeclarationNode(const JSTokenLocation&, ExportSpecifierListNode*, ModuleNameNode*, ImportAssertionListNode*); 2154 2174 2155 2175 ExportSpecifierListNode* specifierList() const { return m_specifierList; } 2156 2176 ModuleNameNode* moduleName() const { return m_moduleName; } 2177 ImportAssertionListNode* assertionList() const { return m_assertionList; } 2157 2178 2158 2179 private: … … 2161 2182 ExportSpecifierListNode* m_specifierList; 2162 2183 ModuleNameNode* m_moduleName { nullptr }; 2184 ImportAssertionListNode* m_assertionList { nullptr }; 2163 2185 }; 2164 2186
Note:
See TracChangeset
for help on using the changeset viewer.