Skip to content

Commit

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

Breakages

*** Original change description ***

[NTI] Rearrange the order of some pre-typechecking transpilation passes.

This allows removing TranspilationPasses#addEs6LatePasses and replacing it with the two calls, addEs6LatePassesBeforeNti and addEs6LatePassesAfterNti.  We will be further rearranging the passes as NTI becomes capable of handling more ES6 features.

***

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=173565377
  • Loading branch information
marcianx authored and blickly committed Oct 27, 2017
1 parent 095ed48 commit 2a532dd
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 14 deletions.
12 changes: 6 additions & 6 deletions src/com/google/javascript/jscomp/DefaultPassConfig.java
Expand Up @@ -183,8 +183,7 @@ protected List<PassFactory> getTranspileOnlyPasses() {
// can be removed. // can be removed.
if (options.needsTranspilationFrom(ES6) || options.needsTranspilationFrom(ES7)) { if (options.needsTranspilationFrom(ES6) || options.needsTranspilationFrom(ES7)) {
TranspilationPasses.addEs6EarlyPasses(passes); TranspilationPasses.addEs6EarlyPasses(passes);
TranspilationPasses.addEs6LatePassesBeforeNti(passes); TranspilationPasses.addEs6LatePasses(passes);
TranspilationPasses.addEs6LatePassesAfterNti(passes);
TranspilationPasses.addPostCheckPasses(passes); TranspilationPasses.addPostCheckPasses(passes);
if (options.rewritePolyfills) { if (options.rewritePolyfills) {
TranspilationPasses.addRewritePolyfillPass(passes); TranspilationPasses.addRewritePolyfillPass(passes);
Expand Down Expand Up @@ -382,9 +381,10 @@ protected List<PassFactory> getChecks() {
} }


if (options.needsTranspilationFrom(ES6)) { if (options.needsTranspilationFrom(ES6)) {
TranspilationPasses.addEs6LatePassesBeforeNti(checks); if (options.getTypeCheckEs6Natively()) {
if (!options.getTypeCheckEs6Natively()) { TranspilationPasses.addEs6PassesBeforeNTI(checks);
TranspilationPasses.addEs6LatePassesAfterNti(checks); } else {
TranspilationPasses.addEs6LatePasses(checks);
} }
} }


Expand Down Expand Up @@ -424,7 +424,7 @@ protected List<PassFactory> getChecks() {
} }


if (options.needsTranspilationFrom(ES6)) { if (options.needsTranspilationFrom(ES6)) {
TranspilationPasses.addEs6LatePassesAfterNti(checks); TranspilationPasses.addEs6PassesAfterNTI(checks);
checks.add(setFeatureSet(options.getLanguageOut().toFeatureSet())); checks.add(setFeatureSet(options.getLanguageOut().toFeatureSet()));
} }
} }
Expand Down
15 changes: 13 additions & 2 deletions src/com/google/javascript/jscomp/TranspilationPasses.java
Expand Up @@ -59,6 +59,17 @@ public static void addEs6EarlyPasses(List<PassFactory> passes) {
passes.add(es6RewriteArrowFunction); passes.add(es6RewriteArrowFunction);
} }


/** Adds all the late ES6 transpilation passes, which go after the Dart pass */
public static void addEs6LatePasses(List<PassFactory> passes) {
// TODO(b/64811685): Delete this method and use addEs6PassesBeforeNTI and addEs6PassesAfterNTI.
passes.add(es6ExtractClasses);
passes.add(es6RewriteClass);
passes.add(earlyConvertEs6ToEs3);
passes.add(lateConvertEs6ToEs3);
passes.add(rewriteBlockScopedDeclaration);
passes.add(rewriteGenerators);
}

/** /**
* Adds all the late ES6 transpilation passes, which go after the Dart pass * Adds all the late ES6 transpilation passes, which go after the Dart pass
* and go before TypeChecking * and go before TypeChecking
Expand All @@ -68,15 +79,15 @@ public static void addEs6EarlyPasses(List<PassFactory> passes) {
* transpilation later in the compilation, and eventually only transpiling * transpilation later in the compilation, and eventually only transpiling
* when the output is lower than ES6. * when the output is lower than ES6.
*/ */
public static void addEs6LatePassesBeforeNti(List<PassFactory> passes) { public static void addEs6PassesBeforeNTI(List<PassFactory> passes) {
passes.add(es6ExtractClasses); passes.add(es6ExtractClasses);
passes.add(es6RewriteClass); passes.add(es6RewriteClass);
passes.add(earlyConvertEs6ToEs3); passes.add(earlyConvertEs6ToEs3);
passes.add(rewriteBlockScopedDeclaration); passes.add(rewriteBlockScopedDeclaration);
} }


/** Adds all transpilation passes that runs after NTI */ /** Adds all transpilation passes that runs after NTI */
public static void addEs6LatePassesAfterNti(List<PassFactory> passes) { public static void addEs6PassesAfterNTI(List<PassFactory> passes) {
passes.add(lateConvertEs6ToEs3); passes.add(lateConvertEs6ToEs3);
passes.add(rewriteGenerators); passes.add(rewriteGenerators);
} }
Expand Down
3 changes: 1 addition & 2 deletions test/com/google/javascript/jscomp/CompilerTestCase.java
Expand Up @@ -1681,8 +1681,7 @@ private static void transpileToEs5(AbstractCompiler compiler, Node externsRoot,
TranspilationPasses.addEs2017Passes(factories); TranspilationPasses.addEs2017Passes(factories);
TranspilationPasses.addEs2016Passes(factories); TranspilationPasses.addEs2016Passes(factories);
TranspilationPasses.addEs6EarlyPasses(factories); TranspilationPasses.addEs6EarlyPasses(factories);
TranspilationPasses.addEs6LatePassesBeforeNti(factories); TranspilationPasses.addEs6LatePasses(factories);
TranspilationPasses.addEs6LatePassesAfterNti(factories);
TranspilationPasses.addRewritePolyfillPass(factories); TranspilationPasses.addRewritePolyfillPass(factories);
for (PassFactory factory : factories) { for (PassFactory factory : factories) {
factory.create(compiler).process(externsRoot, codeRoot); factory.create(compiler).process(externsRoot, codeRoot);
Expand Down
Expand Up @@ -260,8 +260,7 @@ private final void parseAndTypeCheck(String externs, String js) {
TranspilationPasses.addEs2017Passes(passes); TranspilationPasses.addEs2017Passes(passes);
TranspilationPasses.addEs2016Passes(passes); TranspilationPasses.addEs2016Passes(passes);
TranspilationPasses.addEs6EarlyPasses(passes); TranspilationPasses.addEs6EarlyPasses(passes);
TranspilationPasses.addEs6LatePassesBeforeNti(passes); TranspilationPasses.addEs6LatePasses(passes);
TranspilationPasses.addEs6LatePassesAfterNti(passes);
TranspilationPasses.addRewritePolyfillPass(passes); TranspilationPasses.addRewritePolyfillPass(passes);
} }
passes.add(makePassFactory("GlobalTypeInfo", new GlobalTypeInfoCollector(compiler))); passes.add(makePassFactory("GlobalTypeInfo", new GlobalTypeInfoCollector(compiler)));
Expand Down
3 changes: 1 addition & 2 deletions test/com/google/javascript/jscomp/TypeCheckTest.java
Expand Up @@ -17953,8 +17953,7 @@ private TypeCheckResult parseAndTypeCheckWithScope(String externs, String js) {
TranspilationPasses.addEs2017Passes(passes); TranspilationPasses.addEs2017Passes(passes);
TranspilationPasses.addEs2016Passes(passes); TranspilationPasses.addEs2016Passes(passes);
TranspilationPasses.addEs6EarlyPasses(passes); TranspilationPasses.addEs6EarlyPasses(passes);
TranspilationPasses.addEs6LatePassesBeforeNti(passes); TranspilationPasses.addEs6LatePasses(passes);
TranspilationPasses.addEs6LatePassesAfterNti(passes);
TranspilationPasses.addRewritePolyfillPass(passes); TranspilationPasses.addRewritePolyfillPass(passes);
PhaseOptimizer phaseopt = new PhaseOptimizer(compiler, null); PhaseOptimizer phaseopt = new PhaseOptimizer(compiler, null);
phaseopt.consume(passes); phaseopt.consume(passes);
Expand Down

0 comments on commit 2a532dd

Please sign in to comment.