From ae09773ba017ce65b261d15ed3098ae40c3b2a1b Mon Sep 17 00:00:00 2001 From: "Alex Lam S.L" Date: Sat, 20 Feb 2021 22:54:15 +0000 Subject: [PATCH] parse dynamic `import` correctly (#4671) --- lib/parse.js | 6 ++++-- test/compress/imports.js | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/parse.js b/lib/parse.js index 04b40149..39465d78 100644 --- a/lib/parse.js +++ b/lib/parse.js @@ -848,8 +848,10 @@ function parse($TEXT, options) { next(); return export_(); case "import": - next(); - return import_(); + if (!is_token(peek(), "punc", "(")) { + next(); + return import_(); + } case "yield": if (S.in_generator) return simple_statement(); break; diff --git a/test/compress/imports.js b/test/compress/imports.js index cdc239cd..03ebf997 100644 --- a/test/compress/imports.js +++ b/test/compress/imports.js @@ -47,6 +47,13 @@ dynamic: { expect_exact: '(async a=>await import(a))("foo").then(bar);' } +dynamic_nought: { + input: { + import(foo); + } + expect_exact: "import(foo);" +} + import_meta: { input: { console.log(import.meta, import.meta.url); -- 2.34.1