diff --git a/src/com/google/javascript/jscomp/Es6RewriteModules.java b/src/com/google/javascript/jscomp/Es6RewriteModules.java index e70cd611eda..800da6a3a62 100644 --- a/src/com/google/javascript/jscomp/Es6RewriteModules.java +++ b/src/com/google/javascript/jscomp/Es6RewriteModules.java @@ -174,7 +174,13 @@ public void hotSwapScript(Node scriptNode, Node originalRoot) { if (isEs6ModuleRoot(scriptNode)) { processFile(scriptNode); } else { - NodeTraversal.traverse(compiler, scriptNode, new RewriteRequiresForEs6Modules()); + RewriteRequiresForEs6Modules rewriter = new RewriteRequiresForEs6Modules(); + + NodeTraversal.traverse(compiler, scriptNode, rewriter); + + if (rewriter.transpiled) { + scriptNode.putBooleanProp(Node.TRANSPILED, true); + } } } @@ -184,6 +190,7 @@ public void hotSwapScript(Node scriptNode, Node originalRoot) { private void processFile(Node root) { checkArgument(isEs6ModuleRoot(root), root); clearState(); + root.putBooleanProp(Node.TRANSPILED, true); NodeTraversal.traverse(compiler, root, this); } @@ -201,6 +208,8 @@ public void clearState() { * modules and rewrites them. */ private class RewriteRequiresForEs6Modules extends AbstractPostOrderCallback { + boolean transpiled = false; + @Override public void visit(NodeTraversal t, Node n, Node parent) { if (n.isCall()) { @@ -251,6 +260,8 @@ public void visit(NodeTraversal t, Node n, Node parent) { n.detach(); t.reportCodeChange(); } + + transpiled = true; } } } diff --git a/src/com/google/javascript/jscomp/Es6RewriteModulesToCommonJsModules.java b/src/com/google/javascript/jscomp/Es6RewriteModulesToCommonJsModules.java index 54897d18097..0a50c6fdd15 100644 --- a/src/com/google/javascript/jscomp/Es6RewriteModulesToCommonJsModules.java +++ b/src/com/google/javascript/jscomp/Es6RewriteModulesToCommonJsModules.java @@ -21,6 +21,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.javascript.jscomp.NodeTraversal.AbstractPostOrderCallback; import com.google.javascript.jscomp.deps.ModuleLoader.ModulePath; +import com.google.javascript.jscomp.parsing.parser.FeatureSet.Feature; import com.google.javascript.rhino.IR; import com.google.javascript.rhino.Node; import com.google.javascript.rhino.Token; @@ -60,8 +61,10 @@ public void process(Node externs, Node root) { for (Node script : root.children()) { if (Es6RewriteModules.isEs6ModuleRoot(script)) { NodeTraversal.traverse(compiler, script, new Rewriter(compiler, script)); + script.putBooleanProp(Node.TRANSPILED, true); } } + compiler.setFeatureSet(compiler.getFeatureSet().without(Feature.MODULES)); } private static class LocalQName {