parent
206a54a746
commit
3497a99182
|
|
@ -2264,6 +2264,7 @@ merge(Compressor.prototype, {
|
||||||
def(AST_Constant, return_true);
|
def(AST_Constant, return_true);
|
||||||
def(AST_Lambda, function(scope){
|
def(AST_Lambda, function(scope){
|
||||||
var self = this;
|
var self = this;
|
||||||
|
if (self.inlined) return false;
|
||||||
var result = true;
|
var result = true;
|
||||||
self.walk(new TreeWalker(function(node) {
|
self.walk(new TreeWalker(function(node) {
|
||||||
if (!result) return true;
|
if (!result) return true;
|
||||||
|
|
|
||||||
|
|
@ -554,3 +554,102 @@ issue_2428: {
|
||||||
"PASS",
|
"PASS",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
issue_2531_1: {
|
||||||
|
options = {
|
||||||
|
evaluate: true,
|
||||||
|
inline: true,
|
||||||
|
reduce_funcs: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
function outer() {
|
||||||
|
function inner(value) {
|
||||||
|
function closure() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
return function() {
|
||||||
|
return closure();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return inner("Hello");
|
||||||
|
}
|
||||||
|
console.log("Greeting:", outer()());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
function outer() {
|
||||||
|
return function(value) {
|
||||||
|
return function() {
|
||||||
|
return value;
|
||||||
|
};
|
||||||
|
}("Hello");
|
||||||
|
}
|
||||||
|
console.log("Greeting:", outer()());
|
||||||
|
}
|
||||||
|
expect_stdout: "Greeting: Hello"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_2531_2: {
|
||||||
|
options = {
|
||||||
|
evaluate: true,
|
||||||
|
inline: true,
|
||||||
|
passes: 2,
|
||||||
|
reduce_funcs: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
function outer() {
|
||||||
|
function inner(value) {
|
||||||
|
function closure() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
return function() {
|
||||||
|
return closure();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return inner("Hello");
|
||||||
|
}
|
||||||
|
console.log("Greeting:", outer()());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
function outer() {
|
||||||
|
return function() {
|
||||||
|
return "Hello";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
console.log("Greeting:", outer()());
|
||||||
|
}
|
||||||
|
expect_stdout: "Greeting: Hello"
|
||||||
|
}
|
||||||
|
|
||||||
|
issue_2531_3: {
|
||||||
|
options = {
|
||||||
|
evaluate: true,
|
||||||
|
inline: true,
|
||||||
|
passes: 2,
|
||||||
|
reduce_funcs: true,
|
||||||
|
reduce_vars: true,
|
||||||
|
toplevel: true,
|
||||||
|
unused: true,
|
||||||
|
}
|
||||||
|
input: {
|
||||||
|
function outer() {
|
||||||
|
function inner(value) {
|
||||||
|
function closure() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
return function() {
|
||||||
|
return closure();
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return inner("Hello");
|
||||||
|
}
|
||||||
|
console.log("Greeting:", outer()());
|
||||||
|
}
|
||||||
|
expect: {
|
||||||
|
console.log("Greeting:", "Hello");
|
||||||
|
}
|
||||||
|
expect_stdout: "Greeting: Hello"
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user