Skip to content

Commit 5b8e5ab

Browse files
tmcwmarijnh
authored andcommitted
Add support for dynamic import operator to JavaScript mode (codemirror#5259)
1 parent c287357 commit 5b8e5ab

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

mode/javascript/javascript.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
400400
if (type == "{") return contCommasep(objprop, "}", null, maybeop);
401401
if (type == "quasi") return pass(quasi, maybeop);
402402
if (type == "new") return cont(maybeTarget(noComma));
403+
if (type == "import") return cont(expression);
403404
return cont();
404405
}
405406
function maybeexpression(type) {
@@ -726,6 +727,7 @@ CodeMirror.defineMode("javascript", function(config, parserConfig) {
726727
}
727728
function afterImport(type) {
728729
if (type == "string") return cont();
730+
if (type == "(") return pass(expression);
729731
return pass(importSpec, maybeMoreImports, maybeFrom);
730732
}
731733
function importSpec(type, value) {

mode/javascript/test.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@
6363
MT("import_trailing_comma",
6464
"[keyword import] {[def foo], [def bar],} [keyword from] [string 'baz']")
6565

66+
MT("import_dynamic",
67+
"[keyword import]([string 'baz']).[property then]")
68+
69+
MT("import_dynamic",
70+
"[keyword const] [def t] [operator =] [keyword import]([string 'baz']).[property then]")
71+
6672
MT("const",
6773
"[keyword function] [def f]() {",
6874
" [keyword const] [[ [def a], [def b] ]] [operator =] [[ [number 1], [number 2] ]];",

0 commit comments

Comments
 (0)