google/closure-compiler

Parse error for quoted export/import names

Aperta

#3961 aperta il 20 giu 2022

 (1 commento) (0 reazioni) (0 assegnatari)Java (1197 fork)batch import
P3help wanted

Metriche repository

Star
 (7176 stelle)
Metriche merge PR
 (Merge medio 3g 4h) (1 PR mergiata in 30 g)

Descrizione

// e.mjs
const a = 'print me';
export { a as "dove" };
// i.mjs
import { "dove" as b } from './e.mjs';
console.log(b);

"dove" is the quoted name, and this code works (i.mjs prints print me).

Spec reference: ModuleExportName can be StringLiteral.

However, compiler can't parse that:

e.mjs:3:14: ERROR - [JSC_PARSE_ERROR] Parse error. 'identifier' expected
  3| export { a as "dove" };
                   ^
i.mjs:2:9: ERROR - [JSC_PARSE_ERROR] Parse error. '}' expected
  2| import { "dove" as b } from './e.mjs';
              ^

Guida contributor