From 416984cb0e1cb81f5aa30dadcbaf9fc8810e4a38 Mon Sep 17 00:00:00 2001 From: tbreisacher Date: Fri, 13 May 2016 10:58:37 -0700 Subject: [PATCH] Minor cleanups: * Rename isModuleFile to isGoogModuleFile to make it clear we're talking about goog.module not ES6 modules. * Add preconditions to make it clearer what's happening in ClosureRewriteModule. * Reword a comment to be more accurate/clear. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=122275236 --- .../javascript/jscomp/ClosureCheckModule.java | 2 +- .../jscomp/ClosureRewriteModule.java | 20 ++++++++++++------- .../google/javascript/jscomp/NodeUtil.java | 2 +- .../jscomp/WhitespaceWrapGoogModules.java | 2 +- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/com/google/javascript/jscomp/ClosureCheckModule.java b/src/com/google/javascript/jscomp/ClosureCheckModule.java index 82edbf121f9..a7d5eb520ce 100644 --- a/src/com/google/javascript/jscomp/ClosureCheckModule.java +++ b/src/com/google/javascript/jscomp/ClosureCheckModule.java @@ -101,7 +101,7 @@ public void hotSwapScript(Node scriptRoot, Node originalRoot) { @Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { if (n.isScript()) { - if (NodeUtil.isModuleFile(n)) { + if (NodeUtil.isGoogModuleFile(n)) { n.putBooleanProp(Node.GOOG_MODULE, true); return true; } diff --git a/src/com/google/javascript/jscomp/ClosureRewriteModule.java b/src/com/google/javascript/jscomp/ClosureRewriteModule.java index 508239f19d1..ac86de985df 100644 --- a/src/com/google/javascript/jscomp/ClosureRewriteModule.java +++ b/src/com/google/javascript/jscomp/ClosureRewriteModule.java @@ -222,7 +222,11 @@ private final class ScriptDescription { */ boolean willCreateExportsObject; boolean hasCreatedExportObject; - Node rootNode; // For recognizing top level names. Changes when unwrapping goog.scope()s. + + // The root of the module. The SCRIPT node (or for goog.loadModule, the body of the + // function) that contains the module contents. For recognizing top level names. Changes when + // unwrapping a goog.loadModule() call. + Node rootNode; public void addChildScript(ScriptDescription childScript) { childScripts.addLast(childScript); @@ -236,7 +240,7 @@ public ScriptDescription removeFirstChildScript() { private class ScriptRecorder extends AbstractPreOrderCallback { @Override public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { - if (NodeUtil.isModuleFile(n)) { + if (NodeUtil.isGoogModuleFile(n)) { checkAndSetStrictModeDirective(t, n); } @@ -316,7 +320,7 @@ public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { updateGoogForwardDeclare(t, n); } if (isCallTo(n, "goog.module.get")) { - updateGoogModuleGetCall(t, n); + updateGoogModuleGetCall(n); } break; @@ -352,7 +356,7 @@ public boolean shouldTraverse(NodeTraversal t, Node n, Node parent) { public void visit(NodeTraversal t, Node n, Node parent) { switch (n.getType()) { case Token.SCRIPT: - updateEndScript(n); + updateEndScript(); break; } } @@ -889,7 +893,7 @@ private void updateGoogForwardDeclare(NodeTraversal t, Node call) { updateGoogRequire(t, call); } - private void updateGoogModuleGetCall(NodeTraversal t, Node call) { + private void updateGoogModuleGetCall(Node call) { Node legacyNamespaceNode = call.getSecondChild(); String legacyNamespace = legacyNamespaceNode.getString(); @@ -915,9 +919,11 @@ private void updateExportsPropertyAssignment(Node getpropNode) { } Node parent = getpropNode.getParent(); + Preconditions.checkState(parent.isAssign() || parent.isExprResult(), parent); // Update "exports.foo = Foo" to "module$exports$pkg$Foo.foo = Foo"; - Node exportsNameNode = parent.getFirstFirstChild(); + Node exportsNameNode = getpropNode.getFirstChild(); + Preconditions.checkState(exportsNameNode.getString().equals("exports")); safeSetString(exportsNameNode, currentScript.binaryNamespace); Node jsdocNode = parent.isAssign() ? parent : getpropNode; @@ -1094,7 +1100,7 @@ private void updateModuleReturn(Node returnNode) { popScript(); } - private void updateEndScript(Node scriptNode) { + private void updateEndScript() { if (!currentScript.isModule) { return; } diff --git a/src/com/google/javascript/jscomp/NodeUtil.java b/src/com/google/javascript/jscomp/NodeUtil.java index dc5189fd042..6cccd056cee 100644 --- a/src/com/google/javascript/jscomp/NodeUtil.java +++ b/src/com/google/javascript/jscomp/NodeUtil.java @@ -4397,7 +4397,7 @@ private static boolean isGoogModuleCall(Node n) { /** * @return Whether the node is a goog.module file's SCRIPT node. */ - static boolean isModuleFile(Node n) { + static boolean isGoogModuleFile(Node n) { return n.isScript() && n.hasChildren() && isGoogModuleCall(n.getFirstChild()); } diff --git a/src/com/google/javascript/jscomp/WhitespaceWrapGoogModules.java b/src/com/google/javascript/jscomp/WhitespaceWrapGoogModules.java index 3cc6ec58c14..f771e28fdac 100644 --- a/src/com/google/javascript/jscomp/WhitespaceWrapGoogModules.java +++ b/src/com/google/javascript/jscomp/WhitespaceWrapGoogModules.java @@ -41,7 +41,7 @@ public void process(Node externs, Node root) { @Override public void hotSwapScript(Node scriptRoot, Node originalRoot) { - if (!NodeUtil.isModuleFile(scriptRoot)) { + if (!NodeUtil.isGoogModuleFile(scriptRoot)) { return; }