diff --git a/packages/babel-parser/src/parser/error-message.js b/packages/babel-parser/src/parser/error-message.js index bcbde0e918c0..721b2232b097 100644 --- a/packages/babel-parser/src/parser/error-message.js +++ b/packages/babel-parser/src/parser/error-message.js @@ -56,7 +56,7 @@ export const ErrorMessages = Object.freeze({ "Illegal 'use strict' directive in function with non-simple parameter list", IllegalReturn: "'return' outside of function", ImportBindingIsString: - "Can not use string literal as an imported binding.\n- Did you mean `import { %0 as foo }`?", + 'Can not use string literal as an imported binding.\n- Did you mean `import { "%0" as foo }`?', ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments", ImportCallArity: "import() requires exactly %0", diff --git a/packages/babel-parser/src/parser/statement.js b/packages/babel-parser/src/parser/statement.js index 8c060465ef3e..425bc7f0ec28 100644 --- a/packages/babel-parser/src/parser/statement.js +++ b/packages/babel-parser/src/parser/statement.js @@ -2261,7 +2261,7 @@ export default class StatementParser extends ExpressionParser { throw this.raise( specifier.start, Errors.ImportBindingIsString, - imported.extra.raw, + imported.value, ); } this.checkReservedWord(imported.name, specifier.start, true, true); diff --git a/packages/babel-parser/test/fixtures/experimental/module-string-names/import-local-is-string/input.js b/packages/babel-parser/test/fixtures/experimental/module-string-names/import-local-is-string/input.js new file mode 100644 index 000000000000..e00933b0a910 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/module-string-names/import-local-is-string/input.js @@ -0,0 +1 @@ +import { "foo" } from "foo"; diff --git a/packages/babel-parser/test/fixtures/experimental/module-string-names/import-local-is-string/options.json b/packages/babel-parser/test/fixtures/experimental/module-string-names/import-local-is-string/options.json new file mode 100644 index 000000000000..216bef5d0ae5 --- /dev/null +++ b/packages/babel-parser/test/fixtures/experimental/module-string-names/import-local-is-string/options.json @@ -0,0 +1,7 @@ +{ + "sourceType": "module", + "plugins": [ + "moduleStringNames" + ], + "throws": "Can not use string literal as an imported binding.\n- Did you mean `import { \"foo\" as foo }`? (1:9)" +}