diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 13f6c947d2..b813574ede 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -1227,8 +1227,6 @@ export default class ExpressionParser extends LValParser { this.expect(tt.dot); if (this.isContextual("meta")) { - this.expectPlugin("importMeta"); - if (!this.inModule) { this.raiseWithData( id.start, @@ -1237,8 +1235,6 @@ export default class ExpressionParser extends LValParser { ); } this.sawUnambiguousESM = true; - } else if (!this.hasPlugin("importMeta")) { - this.raise(id.start, Errors.ImportCallArityLtOne); } return this.parseMetaProperty(node, id, "meta"); diff --git a/packages/babel-parser/src/parser/location.js b/packages/babel-parser/src/parser/location.js index 035bbc7d04..e2760f1691 100644 --- a/packages/babel-parser/src/parser/location.js +++ b/packages/babel-parser/src/parser/location.js @@ -68,7 +68,6 @@ export const Errors = Object.freeze({ ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments", ImportCallArity: "import() requires exactly one argument", - ImportCallArityLtOne: "Dynamic imports require a parameter: import('a.js')", ImportCallNotNewExpression: "Cannot use new with import(...)", ImportCallSpreadArgument: "... is not allowed in import()", ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: "module"'`, diff --git a/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/output.json b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/output.json index 6b9a913d2d..62a3a56107 100644 --- a/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/output.json +++ b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/output.json @@ -49,4 +49,4 @@ ], "directives": [] } -} \ No newline at end of file +} diff --git a/packages/babel-parser/test/fixtures/es2020/dynamic-import/direct-calls-only/output.json b/packages/babel-parser/test/fixtures/es2020/dynamic-import/direct-calls-only/output.json index c091e5986a..2a5318f72b 100644 --- a/packages/babel-parser/test/fixtures/es2020/dynamic-import/direct-calls-only/output.json +++ b/packages/babel-parser/test/fixtures/es2020/dynamic-import/direct-calls-only/output.json @@ -2,7 +2,6 @@ "type": "File", "start":0,"end":49,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":1}}, "errors": [ - "SyntaxError: Dynamic imports require a parameter: import('a.js') (2:9)", "SyntaxError: The only valid meta property for import is import.meta (2:16)" ], "program": { diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/import-meta/input.js b/packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/_no-plugin/import-meta/input.js rename to packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/input.js diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/options.json b/packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/options.json similarity index 50% rename from packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/options.json rename to packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/options.json index 7442e09e1f..b412ffe671 100644 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/options.json +++ b/packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/options.json @@ -1,4 +1,3 @@ { - "plugins": ["importMeta"], "sourceType": "script" } diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/output.json b/packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/output.json rename to packages/babel-parser/test/fixtures/es2020/import-meta/error-in-script/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/input.js b/packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/input.js rename to packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/input.js diff --git a/packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/options.json b/packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/options.json new file mode 100644 index 0000000000..2104ca4328 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/output.json b/packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/output.json rename to packages/babel-parser/test/fixtures/es2020/import-meta/no-other-prop-names/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/input.js b/packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/input.js rename to packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/input.js diff --git a/packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/options.json b/packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/options.json new file mode 100644 index 0000000000..2104ca4328 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/output.json b/packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/output.json rename to packages/babel-parser/test/fixtures/es2020/import-meta/not-assignable/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/input.js b/packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/input.js rename to packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/input.js diff --git a/packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/options.json b/packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/options.json new file mode 100644 index 0000000000..2104ca4328 --- /dev/null +++ b/packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/output.json b/packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/output.json rename to packages/babel-parser/test/fixtures/es2020/import-meta/valid-in-module/output.json diff --git a/packages/babel-parser/test/fixtures/experimental/_no-plugin/import-meta/options.json b/packages/babel-parser/test/fixtures/experimental/_no-plugin/import-meta/options.json deleted file mode 100644 index 48ce55a15d..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/_no-plugin/import-meta/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "throws": "This experimental syntax requires enabling the parser plugin: 'importMeta' (1:17)", - "sourceType": "module", - "plugins": [] -} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/input.js b/packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/input.js deleted file mode 100644 index e1cfc5468e..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/error-in-script/input.js +++ /dev/null @@ -1 +0,0 @@ -const x = import.meta; diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/options.json b/packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/options.json deleted file mode 100644 index a6638b6528..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/no-other-prop-names/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["importMeta"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/options.json b/packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/options.json deleted file mode 100644 index a6638b6528..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/not-assignable/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["importMeta"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/options.json b/packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/options.json deleted file mode 100644 index a6638b6528..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/valid-in-module/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["importMeta"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/input.js b/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/input.js deleted file mode 100644 index fd4422fc6f..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/input.js +++ /dev/null @@ -1,5 +0,0 @@ -const x = import.meta; -const url = import.meta.url; -import.meta; -import.meta.url; -import.meta.couldBeMutable = true; diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/options.json b/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/options.json deleted file mode 100644 index a6638b6528..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "sourceType": "module", - "plugins": ["importMeta"] -} diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/output.json b/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/output.json deleted file mode 100644 index f7c0f728ad..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/without-dynamic-import/output.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "type": "File", - "start":0,"end":116,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":34}}, - "program": { - "type": "Program", - "start":0,"end":116,"loc":{"start":{"line":1,"column":0},"end":{"line":5,"column":34}}, - "sourceType": "module", - "interpreter": null, - "body": [ - { - "type": "VariableDeclaration", - "start":0,"end":22,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":22}}, - "declarations": [ - { - "type": "VariableDeclarator", - "start":6,"end":21,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":21}}, - "id": { - "type": "Identifier", - "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"x"}, - "name": "x" - }, - "init": { - "type": "MetaProperty", - "start":10,"end":21,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":21}}, - "meta": { - "type": "Identifier", - "start":10,"end":16,"loc":{"start":{"line":1,"column":10},"end":{"line":1,"column":16},"identifierName":"import"}, - "name": "import" - }, - "property": { - "type": "Identifier", - "start":17,"end":21,"loc":{"start":{"line":1,"column":17},"end":{"line":1,"column":21},"identifierName":"meta"}, - "name": "meta" - } - } - } - ], - "kind": "const" - }, - { - "type": "VariableDeclaration", - "start":23,"end":51,"loc":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}}, - "declarations": [ - { - "type": "VariableDeclarator", - "start":29,"end":50,"loc":{"start":{"line":2,"column":6},"end":{"line":2,"column":27}}, - "id": { - "type": "Identifier", - "start":29,"end":32,"loc":{"start":{"line":2,"column":6},"end":{"line":2,"column":9},"identifierName":"url"}, - "name": "url" - }, - "init": { - "type": "MemberExpression", - "start":35,"end":50,"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":27}}, - "object": { - "type": "MetaProperty", - "start":35,"end":46,"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":23}}, - "meta": { - "type": "Identifier", - "start":35,"end":41,"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":18},"identifierName":"import"}, - "name": "import" - }, - "property": { - "type": "Identifier", - "start":42,"end":46,"loc":{"start":{"line":2,"column":19},"end":{"line":2,"column":23},"identifierName":"meta"}, - "name": "meta" - } - }, - "property": { - "type": "Identifier", - "start":47,"end":50,"loc":{"start":{"line":2,"column":24},"end":{"line":2,"column":27},"identifierName":"url"}, - "name": "url" - }, - "computed": false - } - } - ], - "kind": "const" - }, - { - "type": "ExpressionStatement", - "start":52,"end":64,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":12}}, - "expression": { - "type": "MetaProperty", - "start":52,"end":63,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":11}}, - "meta": { - "type": "Identifier", - "start":52,"end":58,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":6},"identifierName":"import"}, - "name": "import" - }, - "property": { - "type": "Identifier", - "start":59,"end":63,"loc":{"start":{"line":3,"column":7},"end":{"line":3,"column":11},"identifierName":"meta"}, - "name": "meta" - } - } - }, - { - "type": "ExpressionStatement", - "start":65,"end":81,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":16}}, - "expression": { - "type": "MemberExpression", - "start":65,"end":80,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":15}}, - "object": { - "type": "MetaProperty", - "start":65,"end":76,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":11}}, - "meta": { - "type": "Identifier", - "start":65,"end":71,"loc":{"start":{"line":4,"column":0},"end":{"line":4,"column":6},"identifierName":"import"}, - "name": "import" - }, - "property": { - "type": "Identifier", - "start":72,"end":76,"loc":{"start":{"line":4,"column":7},"end":{"line":4,"column":11},"identifierName":"meta"}, - "name": "meta" - } - }, - "property": { - "type": "Identifier", - "start":77,"end":80,"loc":{"start":{"line":4,"column":12},"end":{"line":4,"column":15},"identifierName":"url"}, - "name": "url" - }, - "computed": false - } - }, - { - "type": "ExpressionStatement", - "start":82,"end":116,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":34}}, - "expression": { - "type": "AssignmentExpression", - "start":82,"end":115,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":33}}, - "operator": "=", - "left": { - "type": "MemberExpression", - "start":82,"end":108,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":26}}, - "object": { - "type": "MetaProperty", - "start":82,"end":93,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":11}}, - "meta": { - "type": "Identifier", - "start":82,"end":88,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":6},"identifierName":"import"}, - "name": "import" - }, - "property": { - "type": "Identifier", - "start":89,"end":93,"loc":{"start":{"line":5,"column":7},"end":{"line":5,"column":11},"identifierName":"meta"}, - "name": "meta" - } - }, - "property": { - "type": "Identifier", - "start":94,"end":108,"loc":{"start":{"line":5,"column":12},"end":{"line":5,"column":26},"identifierName":"couldBeMutable"}, - "name": "couldBeMutable" - }, - "computed": false - }, - "right": { - "type": "BooleanLiteral", - "start":111,"end":115,"loc":{"start":{"line":5,"column":29},"end":{"line":5,"column":33}}, - "value": true - } - } - } - ], - "directives": [] - } -} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/input.js b/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/input.js deleted file mode 100644 index e664dc3fd5..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/input.js +++ /dev/null @@ -1 +0,0 @@ -import.meta; \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json b/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json deleted file mode 100644 index 5956ed25f3..0000000000 --- a/packages/babel-parser/test/fixtures/experimental/import-meta/without-plugin/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "throws": "This experimental syntax requires enabling the parser plugin: 'importMeta' (1:7)", - "plugins": [] -}