Skip to content

Commit

Permalink
Automated g4 rollback of changelist 212294716.
Browse files Browse the repository at this point in the history
*** Reason for rollback ***

Broke polymer targets.

*** Original change description ***

Fix awkward naming issue with ModuleMetadata by splitting it out into GatherModuleMetadata and ModuleMetadataMap, and the data class ModuleMetadata (previously Module). Also make it available to other passes by injecting it into Es6RewriteModules.

***

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=212467850
  • Loading branch information
johnplaisted authored and blickly committed Sep 11, 2018
1 parent 7e158e6 commit 8d49bf8
Show file tree
Hide file tree
Showing 11 changed files with 338 additions and 458 deletions.
30 changes: 2 additions & 28 deletions src/com/google/javascript/jscomp/DefaultPassConfig.java
Expand Up @@ -69,7 +69,6 @@
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Supplier;
import javax.annotation.Nullable; import javax.annotation.Nullable;


/** /**
Expand Down Expand Up @@ -154,14 +153,11 @@ protected List<PassFactory> getTranspileOnlyPasses() {
passes.add(convertEs6TypedToEs6); passes.add(convertEs6TypedToEs6);
} }


passes.add(gatherModuleMetadataPass);

if (options.getLanguageIn().toFeatureSet().has(FeatureSet.Feature.MODULES)) { if (options.getLanguageIn().toFeatureSet().has(FeatureSet.Feature.MODULES)) {
passes.add(rewriteGoogJsImports); passes.add(rewriteGoogJsImports);
switch (options.getEs6ModuleTranspilation()) { switch (options.getEs6ModuleTranspilation()) {
case COMPILE: case COMPILE:
TranspilationPasses.addEs6ModulePass( TranspilationPasses.addEs6ModulePass(passes, preprocessorSymbolTableFactory);
passes, moduleMetadataMapSupplier, preprocessorSymbolTableFactory);
break; break;
case TO_COMMON_JS_LIKE_MODULES: case TO_COMMON_JS_LIKE_MODULES:
TranspilationPasses.addEs6ModuleToCjsPass(passes); TranspilationPasses.addEs6ModuleToCjsPass(passes);
Expand Down Expand Up @@ -271,8 +267,6 @@ protected List<PassFactory> getChecks() {
checks.add(convertEs6TypedToEs6); checks.add(convertEs6TypedToEs6);
} }


checks.add(gatherModuleMetadataPass);

if (options.enables(DiagnosticGroups.LINT_CHECKS)) { if (options.enables(DiagnosticGroups.LINT_CHECKS)) {
checks.add(lintChecks); checks.add(lintChecks);
} }
Expand All @@ -289,8 +283,7 @@ protected List<PassFactory> getChecks() {


if (options.getLanguageIn().toFeatureSet().has(FeatureSet.Feature.MODULES)) { if (options.getLanguageIn().toFeatureSet().has(FeatureSet.Feature.MODULES)) {
checks.add(rewriteGoogJsImports); checks.add(rewriteGoogJsImports);
TranspilationPasses.addEs6ModulePass( TranspilationPasses.addEs6ModulePass(checks, preprocessorSymbolTableFactory);
checks, moduleMetadataMapSupplier, preprocessorSymbolTableFactory);
} }


checks.add(checkVariableReferences); checks.add(checkVariableReferences);
Expand Down Expand Up @@ -3458,25 +3451,6 @@ protected CompilerPass create(AbstractCompiler compiler) {
return new Es6RewriteScriptsToModules(compiler); return new Es6RewriteScriptsToModules(compiler);
} }


@Override
protected FeatureSet featureSet() {
return ES_NEXT;
}
};

private GatherModuleMetadata gatherModuleMetadata;
private final Supplier<ModuleMetadataMap> moduleMetadataMapSupplier =
() -> gatherModuleMetadata.get();

private final PassFactory gatherModuleMetadataPass =
new PassFactory(PassNames.GATHER_MODULE_METADATA, /* isOneTimePass= */ true) {
@Override
protected CompilerPass create(AbstractCompiler compiler) {
return gatherModuleMetadata =
new GatherModuleMetadata(
compiler, options.processCommonJSModules, options.moduleResolutionMode);
}

@Override @Override
protected FeatureSet featureSet() { protected FeatureSet featureSet() {
return ES_NEXT; return ES_NEXT;
Expand Down
34 changes: 12 additions & 22 deletions src/com/google/javascript/jscomp/Es6RewriteModules.java
Expand Up @@ -16,7 +16,6 @@
package com.google.javascript.jscomp; package com.google.javascript.jscomp;


import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState; import static com.google.common.base.Preconditions.checkState;
import static com.google.javascript.jscomp.ClosureCheckModule.MODULE_USES_GOOG_MODULE_GET; import static com.google.javascript.jscomp.ClosureCheckModule.MODULE_USES_GOOG_MODULE_GET;
import static com.google.javascript.jscomp.ClosureRewriteModule.INVALID_GET_CALL_SCOPE; import static com.google.javascript.jscomp.ClosureRewriteModule.INVALID_GET_CALL_SCOPE;
Expand All @@ -31,9 +30,10 @@
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.javascript.jscomp.ModuleMetadataMap.ModuleMetadata; import com.google.javascript.jscomp.ModuleMetadata.Module;
import com.google.javascript.jscomp.NodeTraversal.AbstractPostOrderCallback; import com.google.javascript.jscomp.NodeTraversal.AbstractPostOrderCallback;
import com.google.javascript.jscomp.deps.ModuleLoader; import com.google.javascript.jscomp.deps.ModuleLoader;
import com.google.javascript.jscomp.deps.ModuleLoader.ResolutionMode;
import com.google.javascript.jscomp.parsing.parser.FeatureSet.Feature; import com.google.javascript.jscomp.parsing.parser.FeatureSet.Feature;
import com.google.javascript.rhino.IR; import com.google.javascript.rhino.IR;
import com.google.javascript.rhino.JSDocInfo; import com.google.javascript.rhino.JSDocInfo;
Expand All @@ -47,7 +47,6 @@
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.function.Supplier;
import javax.annotation.Nullable; import javax.annotation.Nullable;


/** /**
Expand Down Expand Up @@ -130,31 +129,20 @@ public final class Es6RewriteModules extends AbstractPostOrderCallback


private Set<String> typedefs; private Set<String> typedefs;


private final ModuleMetadataMap moduleMetadataMap; private final ModuleMetadata moduleMetadata;


/** /**
* Creates a new Es6RewriteModules instance which can be used to rewrite ES6 modules to a * Creates a new Es6RewriteModules instance which can be used to rewrite ES6 modules to a
* concatenable form. * concatenable form.
*/ */
public Es6RewriteModules( public Es6RewriteModules(
AbstractCompiler compiler, AbstractCompiler compiler,
Supplier<ModuleMetadataMap> moduleMetadataMapSupplier, @Nullable PreprocessorSymbolTable preprocessorSymbolTable,
@Nullable PreprocessorSymbolTable preprocessorSymbolTable) { boolean processCommonJsModules,
this(compiler, moduleMetadataMapSupplier.get(), preprocessorSymbolTable); ResolutionMode moduleResolutionMode) {
}

/**
* Creates a new Es6RewriteModules instance which can be used to rewrite ES6 modules to a
* concatenable form.
*/
public Es6RewriteModules(
AbstractCompiler compiler,
ModuleMetadataMap moduleMetadataMap,
@Nullable PreprocessorSymbolTable preprocessorSymbolTable) {
checkNotNull(moduleMetadataMap);
this.compiler = compiler; this.compiler = compiler;
this.moduleMetadataMap = moduleMetadataMap;
this.preprocessorSymbolTable = preprocessorSymbolTable; this.preprocessorSymbolTable = preprocessorSymbolTable;
moduleMetadata = new ModuleMetadata(compiler, processCommonJsModules, moduleResolutionMode);
} }


/** /**
Expand All @@ -172,6 +160,7 @@ public static boolean isEs6ModuleRoot(Node scriptNode) {
public void process(Node externs, Node root) { public void process(Node externs, Node root) {
checkArgument(externs.isRoot(), externs); checkArgument(externs.isRoot(), externs);
checkArgument(root.isRoot(), root); checkArgument(root.isRoot(), root);
moduleMetadata.process(externs, root);
for (Node file : Iterables.concat(externs.children(), root.children())) { for (Node file : Iterables.concat(externs.children(), root.children())) {
checkState(file.isScript(), file); checkState(file.isScript(), file);
hotSwapScript(file, null); hotSwapScript(file, null);
Expand All @@ -181,6 +170,7 @@ public void process(Node externs, Node root) {


@Override @Override
public void hotSwapScript(Node scriptNode, Node originalRoot) { public void hotSwapScript(Node scriptNode, Node originalRoot) {
moduleMetadata.hotSwapScript(scriptNode);
if (isEs6ModuleRoot(scriptNode)) { if (isEs6ModuleRoot(scriptNode)) {
processFile(scriptNode); processFile(scriptNode);
} else { } else {
Expand Down Expand Up @@ -231,7 +221,7 @@ public void visit(NodeTraversal t, Node n, Node parent) {
} }


String name = n.getLastChild().getString(); String name = n.getLastChild().getString();
ModuleMetadata data = moduleMetadataMap.getModulesByGoogNamespace().get(name); Module data = moduleMetadata.getModulesByGoogNamespace().get(name);


if (data == null || !data.isEs6Module()) { if (data == null || !data.isEs6Module()) {
return; return;
Expand Down Expand Up @@ -320,7 +310,7 @@ private void visitImport(NodeTraversal t, Node importDecl, Node parent) {
// import ... from 'goog:my.ns.Object'. // import ... from 'goog:my.ns.Object'.
String namespace = importName.substring("goog:".length()); String namespace = importName.substring("goog:".length());
moduleName = namespace; moduleName = namespace;
ModuleMetadata m = moduleMetadataMap.getModulesByGoogNamespace().get(namespace); Module m = moduleMetadata.getModulesByGoogNamespace().get(namespace);


if (m == null) { if (m == null) {
t.report(importDecl, MISSING_MODULE_OR_PROVIDE, namespace); t.report(importDecl, MISSING_MODULE_OR_PROVIDE, namespace);
Expand Down Expand Up @@ -733,7 +723,7 @@ private void visitRequireOrGet(
compiler.report(JSError.make(parent.getParent(), LHS_OF_GOOG_REQUIRE_MUST_BE_CONST)); compiler.report(JSError.make(parent.getParent(), LHS_OF_GOOG_REQUIRE_MUST_BE_CONST));
} }


ModuleMetadata m = moduleMetadataMap.getModulesByGoogNamespace().get(namespace); Module m = moduleMetadata.getModulesByGoogNamespace().get(namespace);


if (m == null) { if (m == null) {
t.report(requireCall, MISSING_MODULE_OR_PROVIDE, namespace); t.report(requireCall, MISSING_MODULE_OR_PROVIDE, namespace);
Expand Down

0 comments on commit 8d49bf8

Please sign in to comment.