Skip to content

Commit 451bbc6

Browse files
authored
acorn-optimizer: empty out removed expressions (#24352)
Replace the only place where we were emitting null; with an auto-removed empty statement like everywhere else. Split out from #24348.
1 parent c3798de commit 451bbc6

File tree

2 files changed

+3
-42
lines changed

2 files changed

+3
-42
lines changed

test/js_optimizer/AJSDCE-output.js

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -34,26 +34,6 @@ function glue() {
3434

3535
glue();
3636

37-
null;
38-
39-
null;
40-
41-
null;
42-
43-
null;
44-
45-
null;
46-
47-
null;
48-
49-
null;
50-
51-
null;
52-
53-
null;
54-
55-
null;
56-
5737
new SomethingUnknownWithSideEffects("utf8");
5838

5939
new TextDecoder(Unknown());

tools/acorn-optimizer.mjs

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -93,23 +93,6 @@ function emptyOut(node) {
9393
node.type = 'EmptyStatement';
9494
}
9595

96-
function convertToNullStatement(node) {
97-
node.type = 'ExpressionStatement';
98-
node.expression = {
99-
type: 'Literal',
100-
value: null,
101-
raw: 'null',
102-
start: 0,
103-
end: 0,
104-
};
105-
node.start = 0;
106-
node.end = 0;
107-
}
108-
109-
function isNull(node) {
110-
return node.type === 'Literal' && node.raw === 'null';
111-
}
112-
11396
function isUseStrict(node) {
11497
return node.type === 'Literal' && node.value === 'use strict';
11598
}
@@ -316,11 +299,9 @@ function JSDCE(ast, aggressive) {
316299
}
317300
},
318301
ExpressionStatement(node, _c) {
319-
if (aggressive && !hasSideEffects(node)) {
320-
if (!isNull(node.expression) && !isUseStrict(node.expression)) {
321-
convertToNullStatement(node);
322-
removed++;
323-
}
302+
if (aggressive && !hasSideEffects(node) && !isUseStrict(node.expression)) {
303+
emptyOut(node);
304+
removed++;
324305
}
325306
},
326307
FunctionDeclaration(node, _c) {

0 commit comments

Comments
 (0)