From 2a532dd934ca3076909235bfefa7078982a75f29 Mon Sep 17 00:00:00 2001 From: amyles Date: Thu, 26 Oct 2017 11:27:18 -0700 Subject: [PATCH] Automated g4 rollback of changelist 173489405. *** 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 --- .../javascript/jscomp/DefaultPassConfig.java | 12 ++++++------ .../javascript/jscomp/TranspilationPasses.java | 15 +++++++++++++-- .../javascript/jscomp/CompilerTestCase.java | 3 +-- .../jscomp/NewTypeInferenceTestBase.java | 3 +-- .../google/javascript/jscomp/TypeCheckTest.java | 3 +-- 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/com/google/javascript/jscomp/DefaultPassConfig.java b/src/com/google/javascript/jscomp/DefaultPassConfig.java index e18a72576f8..5fe9149dbd0 100644 --- a/src/com/google/javascript/jscomp/DefaultPassConfig.java +++ b/src/com/google/javascript/jscomp/DefaultPassConfig.java @@ -183,8 +183,7 @@ protected List getTranspileOnlyPasses() { // can be removed. if (options.needsTranspilationFrom(ES6) || options.needsTranspilationFrom(ES7)) { TranspilationPasses.addEs6EarlyPasses(passes); - TranspilationPasses.addEs6LatePassesBeforeNti(passes); - TranspilationPasses.addEs6LatePassesAfterNti(passes); + TranspilationPasses.addEs6LatePasses(passes); TranspilationPasses.addPostCheckPasses(passes); if (options.rewritePolyfills) { TranspilationPasses.addRewritePolyfillPass(passes); @@ -382,9 +381,10 @@ protected List getChecks() { } if (options.needsTranspilationFrom(ES6)) { - TranspilationPasses.addEs6LatePassesBeforeNti(checks); - if (!options.getTypeCheckEs6Natively()) { - TranspilationPasses.addEs6LatePassesAfterNti(checks); + if (options.getTypeCheckEs6Natively()) { + TranspilationPasses.addEs6PassesBeforeNTI(checks); + } else { + TranspilationPasses.addEs6LatePasses(checks); } } @@ -424,7 +424,7 @@ protected List getChecks() { } if (options.needsTranspilationFrom(ES6)) { - TranspilationPasses.addEs6LatePassesAfterNti(checks); + TranspilationPasses.addEs6PassesAfterNTI(checks); checks.add(setFeatureSet(options.getLanguageOut().toFeatureSet())); } } diff --git a/src/com/google/javascript/jscomp/TranspilationPasses.java b/src/com/google/javascript/jscomp/TranspilationPasses.java index c236b8c8984..ed6667e9d02 100644 --- a/src/com/google/javascript/jscomp/TranspilationPasses.java +++ b/src/com/google/javascript/jscomp/TranspilationPasses.java @@ -59,6 +59,17 @@ public static void addEs6EarlyPasses(List passes) { passes.add(es6RewriteArrowFunction); } + /** Adds all the late ES6 transpilation passes, which go after the Dart pass */ + public static void addEs6LatePasses(List 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 * and go before TypeChecking @@ -68,7 +79,7 @@ public static void addEs6EarlyPasses(List passes) { * transpilation later in the compilation, and eventually only transpiling * when the output is lower than ES6. */ - public static void addEs6LatePassesBeforeNti(List passes) { + public static void addEs6PassesBeforeNTI(List passes) { passes.add(es6ExtractClasses); passes.add(es6RewriteClass); passes.add(earlyConvertEs6ToEs3); @@ -76,7 +87,7 @@ public static void addEs6LatePassesBeforeNti(List passes) { } /** Adds all transpilation passes that runs after NTI */ - public static void addEs6LatePassesAfterNti(List passes) { + public static void addEs6PassesAfterNTI(List passes) { passes.add(lateConvertEs6ToEs3); passes.add(rewriteGenerators); } diff --git a/test/com/google/javascript/jscomp/CompilerTestCase.java b/test/com/google/javascript/jscomp/CompilerTestCase.java index 626f82366cf..0a8e23c058c 100644 --- a/test/com/google/javascript/jscomp/CompilerTestCase.java +++ b/test/com/google/javascript/jscomp/CompilerTestCase.java @@ -1681,8 +1681,7 @@ private static void transpileToEs5(AbstractCompiler compiler, Node externsRoot, TranspilationPasses.addEs2017Passes(factories); TranspilationPasses.addEs2016Passes(factories); TranspilationPasses.addEs6EarlyPasses(factories); - TranspilationPasses.addEs6LatePassesBeforeNti(factories); - TranspilationPasses.addEs6LatePassesAfterNti(factories); + TranspilationPasses.addEs6LatePasses(factories); TranspilationPasses.addRewritePolyfillPass(factories); for (PassFactory factory : factories) { factory.create(compiler).process(externsRoot, codeRoot); diff --git a/test/com/google/javascript/jscomp/NewTypeInferenceTestBase.java b/test/com/google/javascript/jscomp/NewTypeInferenceTestBase.java index 799fbe0a330..b2b0a090ffc 100644 --- a/test/com/google/javascript/jscomp/NewTypeInferenceTestBase.java +++ b/test/com/google/javascript/jscomp/NewTypeInferenceTestBase.java @@ -260,8 +260,7 @@ private final void parseAndTypeCheck(String externs, String js) { TranspilationPasses.addEs2017Passes(passes); TranspilationPasses.addEs2016Passes(passes); TranspilationPasses.addEs6EarlyPasses(passes); - TranspilationPasses.addEs6LatePassesBeforeNti(passes); - TranspilationPasses.addEs6LatePassesAfterNti(passes); + TranspilationPasses.addEs6LatePasses(passes); TranspilationPasses.addRewritePolyfillPass(passes); } passes.add(makePassFactory("GlobalTypeInfo", new GlobalTypeInfoCollector(compiler))); diff --git a/test/com/google/javascript/jscomp/TypeCheckTest.java b/test/com/google/javascript/jscomp/TypeCheckTest.java index 157ec383ddd..f9325e73f51 100644 --- a/test/com/google/javascript/jscomp/TypeCheckTest.java +++ b/test/com/google/javascript/jscomp/TypeCheckTest.java @@ -17953,8 +17953,7 @@ private TypeCheckResult parseAndTypeCheckWithScope(String externs, String js) { TranspilationPasses.addEs2017Passes(passes); TranspilationPasses.addEs2016Passes(passes); TranspilationPasses.addEs6EarlyPasses(passes); - TranspilationPasses.addEs6LatePassesBeforeNti(passes); - TranspilationPasses.addEs6LatePassesAfterNti(passes); + TranspilationPasses.addEs6LatePasses(passes); TranspilationPasses.addRewritePolyfillPass(passes); PhaseOptimizer phaseopt = new PhaseOptimizer(compiler, null); phaseopt.consume(passes);