From 62bbee97d7245b897973d290d1700797a85fe168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Sun, 3 Dec 2017 17:45:37 +0100 Subject: [PATCH] Better error message for `import.meta` and `import()` without plugin (#6962) The correct error was already thrown when they weren't in statement position. --- packages/babylon/src/parser/statement.js | 7 ++----- .../experimental/dynamic-import/no-plugin/options.json | 2 +- .../experimental/import-meta/without-plugin/actual.js | 1 + .../experimental/import-meta/without-plugin/options.json | 4 ++++ 4 files changed, 8 insertions(+), 6 deletions(-) create mode 100644 packages/babylon/test/fixtures/experimental/import-meta/without-plugin/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/import-meta/without-plugin/options.json diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 5bfdd2ba3a..eb9465598a 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -129,11 +129,8 @@ export default class StatementParser extends ExpressionParser { return this.parseEmptyStatement(node); case tt._export: case tt._import: { - if ( - (this.hasPlugin("dynamicImport") && - this.lookahead().type === tt.parenL) || - (this.hasPlugin("importMeta") && this.lookahead().type === tt.dot) - ) { + const nextToken = this.lookahead(); + if (nextToken.type === tt.parenL || nextToken.type === tt.dot) { break; } diff --git a/packages/babylon/test/fixtures/experimental/dynamic-import/no-plugin/options.json b/packages/babylon/test/fixtures/experimental/dynamic-import/no-plugin/options.json index 8e0810d0d8..8036724bee 100644 --- a/packages/babylon/test/fixtures/experimental/dynamic-import/no-plugin/options.json +++ b/packages/babylon/test/fixtures/experimental/dynamic-import/no-plugin/options.json @@ -1,4 +1,4 @@ { - "throws": "Unexpected token, expected \"{\" (1:6)", + "throws": "This experimental syntax requires enabling the parser plugin: 'dynamicImport' (1:0)", "plugins": [] } diff --git a/packages/babylon/test/fixtures/experimental/import-meta/without-plugin/actual.js b/packages/babylon/test/fixtures/experimental/import-meta/without-plugin/actual.js new file mode 100644 index 0000000000..e664dc3fd5 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/import-meta/without-plugin/actual.js @@ -0,0 +1 @@ +import.meta; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/import-meta/without-plugin/options.json b/packages/babylon/test/fixtures/experimental/import-meta/without-plugin/options.json new file mode 100644 index 0000000000..50ce42c71f --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/import-meta/without-plugin/options.json @@ -0,0 +1,4 @@ +{ + "throws": "This experimental syntax requires enabling the parser plugin: 'importMeta' (1:7)", + "plugins": [] +} \ No newline at end of file