Skip to content

Commit 5698304

Browse files
brad4dTyler Breisacher
authored and
Tyler Breisacher
committed
Honor @noinline annotation in InlineVariables.
Related to #2751 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=179758969
1 parent cce2b88 commit 5698304

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/com/google/javascript/jscomp/InlineVariables.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.common.base.Predicates;
2424
import com.google.javascript.jscomp.CodingConvention.SubclassRelationship;
2525
import com.google.javascript.jscomp.ReferenceCollectingCallback.Behavior;
26+
import com.google.javascript.rhino.JSDocInfo;
2627
import com.google.javascript.rhino.Node;
2728
import com.google.javascript.rhino.TypeI;
2829
import java.util.HashMap;
@@ -347,7 +348,8 @@ private boolean isVarInlineForbidden(Var var) {
347348
|| compiler
348349
.getCodingConvention()
349350
.isPropertyRenameFunction(var.nameNode.getOriginalQualifiedName())
350-
|| staleVars.contains(var);
351+
|| staleVars.contains(var)
352+
|| hasNoInlineAnnotation(var);
351353
}
352354

353355
/**
@@ -739,4 +741,9 @@ private boolean isImmutableAndWellDefinedVariable(Var v,
739741
return true;
740742
}
741743
}
744+
745+
private static boolean hasNoInlineAnnotation(Var var) {
746+
JSDocInfo jsDocInfo = var.getJSDocInfo();
747+
return jsDocInfo != null && jsDocInfo.isNoInline();
748+
}
742749
}

test/com/google/javascript/jscomp/InlineVariablesTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@ public void testInlineGlobal() {
110110
test("var x = 1; var z = x;", "var z = 1;");
111111
}
112112

113+
public void testNoInlineAnnotation() {
114+
testSame("/** @noinline */ var x = 1; var z = x;");
115+
}
116+
113117
public void testNoInlineExportedName() {
114118
testSame("var _x = 1; var z = _x;");
115119
}

0 commit comments

Comments
 (0)