Skip to content

Commit eff812b

Browse files
rishipalcopybara-github
authored andcommitted
Update script nodes' FEATURE_SET prop each time the compiler's featureset is updated
Proposal - go/accurately-maintain-script-node-featureSet PiperOrigin-RevId: 552647304
1 parent 8418c02 commit eff812b

28 files changed

+141
-36
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public void process(Node externs, Node root) {
123123
addImportStatements();
124124
rewriteDynamicImportCallbacks();
125125

126-
compiler.setAllowableFeatures(compiler.getAllowableFeatures().with(FeatureSet.Feature.MODULES));
126+
NodeUtil.addFeatureToAllScripts(root, FeatureSet.Feature.MODULES, compiler);
127127
}
128128

129129
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public Es6ForOfConverter(AbstractCompiler compiler) {
4949
@Override
5050
public void process(Node externs, Node root) {
5151
TranspilationPasses.processTranspile(compiler, root, transpiledFeatures, this);
52-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures);
52+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, transpiledFeatures);
5353
}
5454

5555
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public Es6NormalizeShorthandProperties(AbstractCompiler compiler) {
3838
@Override
3939
public void process(Node externs, Node root) {
4040
TranspilationPasses.processTranspile(compiler, root, transpiledFeatures, this);
41-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures);
41+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, transpiledFeatures);
4242
}
4343

4444
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public Es6RewriteArrowFunction(AbstractCompiler compiler) {
4949
@Override
5050
public void process(Node externs, Node root) {
5151
TranspilationPasses.processTranspile(compiler, root, transpiledFeatures, this);
52-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures);
52+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, transpiledFeatures);
5353
}
5454

5555
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public void process(Node externs, Node root) {
9595
NodeTraversal.traverse(compiler, root, transformer);
9696
transformer.transformLoopClosure();
9797
rewriteDeclsToVars();
98-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures);
98+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, transpiledFeatures);
9999
}
100100

101101
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public Es6RewriteBlockScopedFunctionDeclaration(AbstractCompiler compiler) {
4141
@Override
4242
public void process(Node externs, Node root) {
4343
TranspilationPasses.processTranspile(compiler, root, transpiledFeatures, this);
44-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures);
44+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, transpiledFeatures);
4545
}
4646

4747
@Override

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public Es6RewriteClass(AbstractCompiler compiler) {
6363

6464
@Override
6565
public void process(Node externs, Node root) {
66-
// TODO(b/171853310): This tranpilation should be turned off in externs
66+
// TODO(b/171853310): This transpilation should be turned off in externs
6767
TranspilationPasses.processTranspile(compiler, externs, features, this);
6868
TranspilationPasses.processTranspile(compiler, root, features, this);
6969
// Super constructor calls are done all at once as a separate step largely for historical
@@ -73,7 +73,7 @@ public void process(Node externs, Node root) {
7373
// constructor rewriting logic into this class.
7474
convertSuperConstructorCalls.setGlobalNamespace(new GlobalNamespace(compiler, externs, root));
7575
TranspilationPasses.processTranspile(compiler, root, features, convertSuperConstructorCalls);
76-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, features);
76+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, features);
7777
}
7878

7979
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public PatternNestingLevel(Node pattern, boolean hasNestedRest) {
148148
public void process(Node externs, Node root) {
149149
checkState(patternNestingStack.isEmpty());
150150
NodeTraversal.traverse(compiler, root, this);
151-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, featuresToMarkAsRemoved);
151+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, featuresToMarkAsRemoved);
152152
checkState(patternNestingStack.isEmpty());
153153
}
154154

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ public void process(Node externs, Node root) {
128128
checkState(compiler.getLifeCycleStage().isNormalized());
129129
TranspilationPasses.processTranspile(
130130
compiler, root, transpiledFeatures, new GeneratorFunctionsTranspiler());
131-
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, transpiledFeatures);
131+
TranspilationPasses.maybeMarkFeaturesAsTranspiledAway(compiler, root, transpiledFeatures);
132132
}
133133

134134
/**

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import static com.google.javascript.jscomp.ClosurePrimitiveErrors.MISSING_MODULE_OR_PROVIDE;
2727
import static com.google.javascript.jscomp.ClosurePrimitiveErrors.MODULE_USES_GOOG_MODULE_GET;
2828
import static com.google.javascript.jscomp.ClosureRewriteModule.ILLEGAL_MODULE_RENAMING_CONFLICT;
29-
import static com.google.javascript.jscomp.parsing.parser.FeatureSet.Feature.MODULES;
3029

3130
import com.google.common.base.Splitter;
3231
import com.google.common.collect.HashBasedTable;
@@ -188,7 +187,12 @@ public void process(Node externs, Node root) {
188187
checkArgument(externs.isRoot(), externs);
189188
checkArgument(root.isRoot(), root);
190189
NodeTraversal.traverseRoots(compiler, this, externs, root);
191-
compiler.markFeatureNotAllowed(MODULES);
190+
// It is unusual to call this NodeUtil method instead of the TranspilationPasses one. This
191+
// pass is included in the {@code dependency_resolution} BUILD target and does not have access
192+
// to {@code TranspilationPasses}. Adding that dep produces a cycle in the BUILD dep graph.
193+
// Regular transpiler passes must use the {@code
194+
// TranspilationPasses.maybeMarkFeaturesAsTranspiledAway}
195+
NodeUtil.removeFeatureFromAllScripts(root, Feature.MODULES, compiler);
192196
// This pass may add getters properties on module objects.
193197
GatherGetterAndSetterProperties.update(compiler, externs, root);
194198
}

0 commit comments

Comments
 (0)