184 lines
6.9 KiB
JavaScript
184 lines
6.9 KiB
JavaScript
pure_function_calls: {
|
|
options = {
|
|
booleans: true,
|
|
comparisons: true,
|
|
conditionals: true,
|
|
evaluate: true,
|
|
if_return: true,
|
|
join_vars: true,
|
|
negate_iife: true,
|
|
side_effects: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
// pure top-level IIFE will be dropped
|
|
// @__PURE__ - comment
|
|
(function() {
|
|
console.log("iife0");
|
|
})();
|
|
|
|
// pure top-level IIFE assigned to unreferenced var will not be dropped
|
|
var iife1 = /*@__PURE__*/(function() {
|
|
console.log("iife1");
|
|
function iife1() {}
|
|
return iife1;
|
|
})();
|
|
|
|
(function(){
|
|
// pure IIFE in function scope assigned to unreferenced var will be dropped
|
|
var iife2 = /*#__PURE__*/(function() {
|
|
console.log("iife2");
|
|
function iife2() {}
|
|
return iife2;
|
|
})();
|
|
})();
|
|
|
|
// comment #__PURE__ comment
|
|
bar(), baz(), quux();
|
|
a.b(), /* @__PURE__ */ c.d.e(), f.g();
|
|
}
|
|
expect: {
|
|
var iife1 = function() {
|
|
console.log("iife1");
|
|
function iife1() {}
|
|
return iife1;
|
|
}();
|
|
|
|
baz(), quux();
|
|
a.b(), f.g();
|
|
}
|
|
expect_warnings: [
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:3,8]",
|
|
"WARN: Dropping side-effect-free statement [test/compress/issue-1261.js:3,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:16,37]",
|
|
"WARN: Dropping unused variable iife2 [test/compress/issue-1261.js:16,16]",
|
|
"WARN: Dropping side-effect-free statement [test/compress/issue-1261.js:14,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:24,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:25,31]",
|
|
]
|
|
}
|
|
|
|
pure_function_calls_toplevel: {
|
|
options = {
|
|
booleans: true,
|
|
comparisons: true,
|
|
conditionals: true,
|
|
evaluate: true,
|
|
if_return: true,
|
|
join_vars: true,
|
|
negate_iife: true,
|
|
side_effects: true,
|
|
toplevel: true,
|
|
unused: true,
|
|
}
|
|
input: {
|
|
// pure top-level IIFE will be dropped
|
|
// @__PURE__ - comment
|
|
(function() {
|
|
console.log("iife0");
|
|
})();
|
|
|
|
// pure top-level IIFE assigned to unreferenced var will be dropped
|
|
var iife1 = /*@__PURE__*/(function() {
|
|
console.log("iife1");
|
|
function iife1() {}
|
|
return iife1;
|
|
})();
|
|
|
|
(function(){
|
|
// pure IIFE in function scope assigned to unreferenced var will be dropped
|
|
var iife2 = /*#__PURE__*/(function() {
|
|
console.log("iife2");
|
|
function iife2() {}
|
|
return iife2;
|
|
})();
|
|
})();
|
|
|
|
// pure top-level calls will be dropped regardless of the leading comments position
|
|
var MyClass = /*#__PURE__*//*@class*/(function(){
|
|
function MyClass() {}
|
|
MyClass.prototype.method = function() {};
|
|
return MyClass;
|
|
})();
|
|
|
|
// comment #__PURE__ comment
|
|
bar(), baz(), quux();
|
|
a.b(), /* @__PURE__ */ c.d.e(), f.g();
|
|
}
|
|
expect: {
|
|
baz(), quux();
|
|
a.b(), f.g();
|
|
}
|
|
expect_warnings: [
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:3,8]",
|
|
"WARN: Dropping side-effect-free statement [test/compress/issue-1261.js:3,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:16,37]",
|
|
"WARN: Dropping unused variable iife2 [test/compress/issue-1261.js:16,16]",
|
|
"WARN: Dropping side-effect-free statement [test/compress/issue-1261.js:14,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:31,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:32,31]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:8,33]",
|
|
"WARN: Dropping unused variable iife1 [test/compress/issue-1261.js:8,12]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:24,45]",
|
|
"WARN: Dropping unused variable MyClass [test/compress/issue-1261.js:24,12]",
|
|
]
|
|
}
|
|
|
|
should_warn: {
|
|
options = {
|
|
booleans: true,
|
|
conditionals: true,
|
|
evaluate: true,
|
|
side_effects: true,
|
|
}
|
|
input: {
|
|
/* @__PURE__ */(function(){x})(), void/* @__PURE__ */(function(){y})();
|
|
/* @__PURE__ */(function(){x})() || true ? foo() : bar();
|
|
true || /* @__PURE__ */(function(){y})() ? foo() : bar();
|
|
/* @__PURE__ */(function(){x})() && false ? foo() : bar();
|
|
false && /* @__PURE__ */(function(){y})() ? foo() : bar();
|
|
/* @__PURE__ */(function(){x})() + "foo" ? bar() : baz();
|
|
"foo" + /* @__PURE__ */(function(){y})() ? bar() : baz();
|
|
/* @__PURE__ */(function(){x})() ? foo() : foo();
|
|
[/* @__PURE__ */(function(){x})()] ? foo() : bar();
|
|
!{ foo: /* @__PURE__ */(function(){x})() } ? bar() : baz();
|
|
}
|
|
expect: {
|
|
foo();
|
|
foo();
|
|
bar();
|
|
bar();
|
|
bar();
|
|
bar();
|
|
foo();
|
|
foo();
|
|
baz();
|
|
}
|
|
expect_warnings: [
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:1,61]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:1,23]",
|
|
"WARN: Dropping side-effect-free statement [test/compress/issue-1261.js:1,23]",
|
|
"WARN: Boolean || always true [test/compress/issue-1261.js:2,23]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:2,23]",
|
|
"WARN: Condition always true [test/compress/issue-1261.js:2,23]",
|
|
"WARN: Condition left of || always true [test/compress/issue-1261.js:3,8]",
|
|
"WARN: Condition always true [test/compress/issue-1261.js:3,8]",
|
|
"WARN: Boolean && always false [test/compress/issue-1261.js:4,23]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:4,23]",
|
|
"WARN: Condition always false [test/compress/issue-1261.js:4,23]",
|
|
"WARN: Condition left of && always false [test/compress/issue-1261.js:5,8]",
|
|
"WARN: Condition always false [test/compress/issue-1261.js:5,8]",
|
|
"WARN: + in boolean context always true [test/compress/issue-1261.js:6,23]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:6,23]",
|
|
"WARN: Condition always true [test/compress/issue-1261.js:6,23]",
|
|
"WARN: + in boolean context always true [test/compress/issue-1261.js:7,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:7,31]",
|
|
"WARN: Condition always true [test/compress/issue-1261.js:7,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:8,23]",
|
|
"WARN: Condition always true [test/compress/issue-1261.js:9,8]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:9,24]",
|
|
"WARN: Dropping __PURE__ call [test/compress/issue-1261.js:10,31]",
|
|
"WARN: Condition always false [test/compress/issue-1261.js:10,8]",
|
|
]
|
|
}
|