From f69997bcdc6dedbfcd7d4c73d7c2f744c4faf98b Mon Sep 17 00:00:00 2001 From: Kiko Estrada Date: Thu, 23 Apr 2020 18:59:32 -0700 Subject: [PATCH] FIx: removed redundant test, re-added relevant test, updated Errors object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • Removed "without-dynamic-import" test as • Removed unused code from the Errors object • Re-added relevant importMeta test --- packages/babel-parser/src/parser/location.js | 1 - .../import-meta/input.js | 1 + .../import-meta/options.json | 4 + .../import-meta/output.json | 52 ++++++ .../without-dynamic-import/input.js | 5 - .../without-dynamic-import/options.json | 3 - .../without-dynamic-import/output.json | 167 ------------------ packages/babel-template/src/parse.js | 2 +- 8 files changed, 58 insertions(+), 177 deletions(-) create mode 100644 packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/input.js create mode 100644 packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/options.json create mode 100644 packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/output.json delete mode 100644 packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/input.js delete mode 100644 packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/options.json delete mode 100644 packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/output.json diff --git a/packages/babel-parser/src/parser/location.js b/packages/babel-parser/src/parser/location.js index 035bbc7d0452..e2760f1691fa 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/input.js b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/input.js new file mode 100644 index 000000000000..e7313a090ffe --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/input.js @@ -0,0 +1 @@ +console.log(import.meta); diff --git a/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/options.json b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/options.json new file mode 100644 index 000000000000..6fdc0a23b66e --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/options.json @@ -0,0 +1,4 @@ +{ + "sourceType": "unambiguous", + "plugins": ["importMeta"] +} 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 new file mode 100644 index 000000000000..62a3a5610722 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/sourcetype-unambiguous/import-meta/output.json @@ -0,0 +1,52 @@ +{ + "type": "File", + "start":0,"end":25,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}}, + "program": { + "type": "Program", + "start":0,"end":25,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}}, + "sourceType": "module", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":25,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":25}}, + "expression": { + "type": "CallExpression", + "start":0,"end":24,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":24}}, + "callee": { + "type": "MemberExpression", + "start":0,"end":11,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":11}}, + "object": { + "type": "Identifier", + "start":0,"end":7,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":7},"identifierName":"console"}, + "name": "console" + }, + "property": { + "type": "Identifier", + "start":8,"end":11,"loc":{"start":{"line":1,"column":8},"end":{"line":1,"column":11},"identifierName":"log"}, + "name": "log" + }, + "computed": false + }, + "arguments": [ + { + "type": "MetaProperty", + "start":12,"end":23,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":23}}, + "meta": { + "type": "Identifier", + "start":12,"end":18,"loc":{"start":{"line":1,"column":12},"end":{"line":1,"column":18},"identifierName":"import"}, + "name": "import" + }, + "property": { + "type": "Identifier", + "start":19,"end":23,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":23},"identifierName":"meta"}, + "name": "meta" + } + } + ] + } + } + ], + "directives": [] + } +} diff --git a/packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/input.js b/packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/input.js deleted file mode 100644 index fd4422fc6f84..000000000000 --- a/packages/babel-parser/test/fixtures/es2020/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/es2020/import-meta/without-dynamic-import/options.json b/packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/options.json deleted file mode 100644 index 2104ca43283f..000000000000 --- a/packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "sourceType": "module" -} diff --git a/packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/output.json b/packages/babel-parser/test/fixtures/es2020/import-meta/without-dynamic-import/output.json deleted file mode 100644 index f7c0f728ad82..000000000000 --- a/packages/babel-parser/test/fixtures/es2020/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-template/src/parse.js b/packages/babel-template/src/parse.js index d4d54890482b..0364e369b444 100644 --- a/packages/babel-template/src/parse.js +++ b/packages/babel-template/src/parse.js @@ -100,7 +100,7 @@ function placeholderVisitorHandler( !state.isLegacyRef.value && (state.placeholderPattern != null || state.placeholderWhitelist != null) ) { - // This check is also in options.js. We need it there to handle the default + // This check is also in options.json. We need it there to handle the default // .syntacticPlaceholders behavior. throw new Error( "'.placeholderWhitelist' and '.placeholderPattern' aren't compatible" +