From efb1790112f364a0d5e04ad6a7c19e41fd86b0de Mon Sep 17 00:00:00 2001 From: nickreid Date: Fri, 24 May 2019 18:12:13 -0700 Subject: [PATCH] Rename `DevirtualizePrototypeMethods` -> `DevirtualizeMethods` now that static methods are also devirtualized. The associated flag is given an alternate name so that assignments in build rules can be updated in a second step. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=249930149 --- .../google/javascript/jscomp/CompilationLevel.java | 2 +- .../google/javascript/jscomp/CompilerOptions.java | 14 +++++++------- .../javascript/jscomp/DefaultPassConfig.java | 10 +++++----- ...totypeMethods.java => DevirtualizeMethods.java} | 5 ++--- .../google/javascript/jscomp/OptimizeCalls.java | 2 +- src/com/google/javascript/jscomp/PassNames.java | 2 +- .../jscomp/debugger/common/CompilationParam.java | 6 +++--- ...thodsTest.java => DevirtualizeMethodsTest.java} | 8 ++++---- .../google/javascript/jscomp/IntegrationTest.java | 8 ++++---- 9 files changed, 28 insertions(+), 29 deletions(-) rename src/com/google/javascript/jscomp/{DevirtualizePrototypeMethods.java => DevirtualizeMethods.java} (98%) rename test/com/google/javascript/jscomp/{DevirtualizePrototypeMethodsTest.java => DevirtualizeMethodsTest.java} (99%) diff --git a/src/com/google/javascript/jscomp/CompilationLevel.java b/src/com/google/javascript/jscomp/CompilationLevel.java index 0ff6d45fea5..83e203a4f85 100644 --- a/src/com/google/javascript/jscomp/CompilationLevel.java +++ b/src/com/google/javascript/jscomp/CompilationLevel.java @@ -203,7 +203,7 @@ private static void applyFullCompilationOptions(CompilerOptions options) { options.setCrossChunkMethodMotion(true); // Call optimizations - options.setDevirtualizePrototypeMethods(true); + options.setDevirtualizeMethods(true); options.setOptimizeCalls(true); } diff --git a/src/com/google/javascript/jscomp/CompilerOptions.java b/src/com/google/javascript/jscomp/CompilerOptions.java index 4cdd123e86b..37e56bcbd4d 100644 --- a/src/com/google/javascript/jscomp/CompilerOptions.java +++ b/src/com/google/javascript/jscomp/CompilerOptions.java @@ -654,10 +654,10 @@ public boolean getCollapseObjectLiterals() { } /** - * Devirtualize prototype method by rewriting them to be static calls that - * take the this pointer as their first argument + * Devirtualize prototype method by rewriting them to be static calls that take the this pointer + * as their first argument */ - public boolean devirtualizePrototypeMethods; + public boolean devirtualizeMethods; /** * Use @nosideeffects annotations, function bodies and name graph @@ -1276,7 +1276,7 @@ public CompilerOptions() { renamePrefix = null; collapsePropertiesLevel = PropertyCollapseLevel.NONE; collapseObjectLiterals = false; - devirtualizePrototypeMethods = false; + devirtualizeMethods = false; disambiguateProperties = false; ambiguateProperties = false; anonymousFunctionNaming = AnonymousFunctionNamingPolicy.OFF; @@ -2343,8 +2343,8 @@ public void setCollapseProperties(boolean fullyCollapse) { fullyCollapse ? PropertyCollapseLevel.ALL : PropertyCollapseLevel.NONE; } - public void setDevirtualizePrototypeMethods(boolean devirtualizePrototypeMethods) { - this.devirtualizePrototypeMethods = devirtualizePrototypeMethods; + public void setDevirtualizeMethods(boolean devirtualizeMethods) { + this.devirtualizeMethods = devirtualizeMethods; } public void setComputeFunctionSideEffects(boolean computeFunctionSideEffects) { @@ -2890,7 +2890,7 @@ public String toString() { .add("declaredGlobalExternsOnWindow", declaredGlobalExternsOnWindow) .add("defineReplacements", getDefineReplacements()) .add("dependencyOptions", getDependencyOptions()) - .add("devirtualizePrototypeMethods", devirtualizePrototypeMethods) + .add("devirtualizeMethods", devirtualizeMethods) .add("devMode", devMode) .add("disambiguatePrivateProperties", disambiguatePrivateProperties) .add("disambiguateProperties", disambiguateProperties) diff --git a/src/com/google/javascript/jscomp/DefaultPassConfig.java b/src/com/google/javascript/jscomp/DefaultPassConfig.java index 0b32ea884e6..3fe9bfd47bf 100644 --- a/src/com/google/javascript/jscomp/DefaultPassConfig.java +++ b/src/com/google/javascript/jscomp/DefaultPassConfig.java @@ -685,8 +685,8 @@ protected List getOptimizations() { // optimizations based on global names (like cross module code motion // and inline functions). Smart Name Removal does better if run before // this pass. - if (options.devirtualizePrototypeMethods) { - passes.add(devirtualizePrototypeMethods); + if (options.devirtualizeMethods) { + passes.add(devirtualizeMethods); } if (options.customPasses != null) { @@ -2500,14 +2500,14 @@ protected FeatureSet featureSet() { }; /** Rewrite instance methods as static methods, to make them easier to inline. */ - private final PassFactory devirtualizePrototypeMethods = - new PassFactory(PassNames.DEVIRTUALIZE_PROTOTYPE_METHODS, true) { + private final PassFactory devirtualizeMethods = + new PassFactory(PassNames.DEVIRTUALIZE_METHODS, true) { @Override protected CompilerPass create(AbstractCompiler compiler) { return OptimizeCalls.builder() .setCompiler(compiler) .setConsiderExterns(false) - .addPass(new DevirtualizePrototypeMethods(compiler)) + .addPass(new DevirtualizeMethods(compiler)) .build(); } diff --git a/src/com/google/javascript/jscomp/DevirtualizePrototypeMethods.java b/src/com/google/javascript/jscomp/DevirtualizeMethods.java similarity index 98% rename from src/com/google/javascript/jscomp/DevirtualizePrototypeMethods.java rename to src/com/google/javascript/jscomp/DevirtualizeMethods.java index 54b8c5c57f4..fd4a666335a 100644 --- a/src/com/google/javascript/jscomp/DevirtualizePrototypeMethods.java +++ b/src/com/google/javascript/jscomp/DevirtualizeMethods.java @@ -88,12 +88,11 @@ * * */ -// TODO(nickreid): Change the name to something reflecting that statics are also devirtualized now. -class DevirtualizePrototypeMethods implements OptimizeCalls.CallGraphCompilerPass { +class DevirtualizeMethods implements OptimizeCalls.CallGraphCompilerPass { private final AbstractCompiler compiler; private ReferenceMap refMap; - DevirtualizePrototypeMethods(AbstractCompiler compiler) { + DevirtualizeMethods(AbstractCompiler compiler) { this.compiler = compiler; } diff --git a/src/com/google/javascript/jscomp/OptimizeCalls.java b/src/com/google/javascript/jscomp/OptimizeCalls.java index 14687172d88..22a73a34233 100644 --- a/src/com/google/javascript/jscomp/OptimizeCalls.java +++ b/src/com/google/javascript/jscomp/OptimizeCalls.java @@ -41,7 +41,7 @@ * * * @author johnlenz@google.com (John Lenz) diff --git a/src/com/google/javascript/jscomp/PassNames.java b/src/com/google/javascript/jscomp/PassNames.java index 71b9a46a1bf..a0244ae39e4 100644 --- a/src/com/google/javascript/jscomp/PassNames.java +++ b/src/com/google/javascript/jscomp/PassNames.java @@ -49,7 +49,7 @@ public final class PassNames { public static final String DEAD_ASSIGNMENT_ELIMINATION = "deadAssignmentsElimination"; public static final String DECLARED_GLOBAL_EXTERNS_ON_WINDOW = "declaredGlobalExternsOnWindow"; public static final String DESERIALIZE_COMPILER_STATE = "deserializeCompilerState"; - public static final String DEVIRTUALIZE_PROTOTYPE_METHODS = "devirtualizePrototypeMethods"; + public static final String DEVIRTUALIZE_METHODS = "devirtualizeMethods"; public static final String DISAMBIGUATE_PRIVATE_PROPERTIES = "disambiguatePrivateProperties"; public static final String DISAMBIGUATE_PROPERTIES = "disambiguateProperties"; public static final String ES6_EXTRACT_CLASSES = "Es6ExtractClasses"; diff --git a/src/com/google/javascript/jscomp/debugger/common/CompilationParam.java b/src/com/google/javascript/jscomp/debugger/common/CompilationParam.java index 84ee089ca67..3dc955fa75f 100644 --- a/src/com/google/javascript/jscomp/debugger/common/CompilationParam.java +++ b/src/com/google/javascript/jscomp/debugger/common/CompilationParam.java @@ -507,15 +507,15 @@ public boolean isApplied(CompilerOptions options) { } }, - DEVIRTUALIZE_PROTOTYPE_METHODS(ParamGroup.OPTIMIZATION) { + DEVIRTUALIZE_METHODS(ParamGroup.OPTIMIZATION) { @Override public void apply(CompilerOptions options, boolean value) { - options.setDevirtualizePrototypeMethods(value); + options.setDevirtualizeMethods(value); } @Override public boolean isApplied(CompilerOptions options) { - return options.devirtualizePrototypeMethods; + return options.devirtualizeMethods; } }, diff --git a/test/com/google/javascript/jscomp/DevirtualizePrototypeMethodsTest.java b/test/com/google/javascript/jscomp/DevirtualizeMethodsTest.java similarity index 99% rename from test/com/google/javascript/jscomp/DevirtualizePrototypeMethodsTest.java rename to test/com/google/javascript/jscomp/DevirtualizeMethodsTest.java index f7843a69666..8d0d76bc52c 100644 --- a/test/com/google/javascript/jscomp/DevirtualizePrototypeMethodsTest.java +++ b/test/com/google/javascript/jscomp/DevirtualizeMethodsTest.java @@ -30,15 +30,15 @@ import org.junit.runners.JUnit4; /** - * Tests for {@link DevirtualizePrototypeMethods} + * Tests for {@link DevirtualizeMethods} * */ @RunWith(JUnit4.class) -public final class DevirtualizePrototypeMethodsTest extends CompilerTestCase { +public final class DevirtualizeMethodsTest extends CompilerTestCase { private static final String EXTERNAL_SYMBOLS = DEFAULT_EXTERNS + "var extern;extern.externalMethod"; - public DevirtualizePrototypeMethodsTest() { + public DevirtualizeMethodsTest() { super(EXTERNAL_SYMBOLS); } @@ -1257,7 +1257,7 @@ protected CompilerPass getProcessor(Compiler compiler) { return OptimizeCalls.builder() .setCompiler(compiler) .setConsiderExterns(false) - .addPass(new DevirtualizePrototypeMethods(compiler)) + .addPass(new DevirtualizeMethods(compiler)) .build(); } } diff --git a/test/com/google/javascript/jscomp/IntegrationTest.java b/test/com/google/javascript/jscomp/IntegrationTest.java index c441a620186..9ffaa0ffe7e 100644 --- a/test/com/google/javascript/jscomp/IntegrationTest.java +++ b/test/com/google/javascript/jscomp/IntegrationTest.java @@ -2457,9 +2457,9 @@ public void testExtraAnnotationNames() { } @Test - public void testDevirtualizePrototypeMethods() { + public void testDevirtualizeMethods() { CompilerOptions options = createCompilerOptions(); - options.setDevirtualizePrototypeMethods(true); + options.setDevirtualizeMethods(true); test( options, "/** @constructor */ var Foo = function() {}; " @@ -3477,7 +3477,7 @@ public void testExtractPrototypeMemberDeclarations() { @Test public void testDevirtualizationAndExtractPrototypeMemberDeclarations() { CompilerOptions options = createCompilerOptions(); - options.setDevirtualizePrototypeMethods(true); + options.setDevirtualizeMethods(true); options.setCollapseAnonymousFunctions(true); options.setExtractPrototypeMemberDeclarations(true); options.setVariableRenaming(VariableRenamingPolicy.ALL); @@ -6603,7 +6603,7 @@ public void testNoDevirtualization_whenSingleDefinitionInSource_ifNameCollidesWi CompilerOptions options = createCompilerOptions(); options.checkTypes = true; - options.devirtualizePrototypeMethods = true; + options.devirtualizeMethods = true; ImmutableList.Builder externsList = ImmutableList.builder(); externsList.addAll(externs);