Files
UglifyJS/test/compress/negate-iife.js
Mihai Bazon ed80b4a534 Move support for negate_iife in the compressor, rather than code generator
(the code generator doesn't maintain enough context to know whether
the return value is important or discarded)

Fixes #272
2013-08-20 17:45:52 +03:00

77 lines
1.6 KiB
JavaScript

negate_iife_1: {
options = {
negate_iife: true
};
input: {
(function(){ stuff() })();
}
expect: {
!function(){ stuff() }();
}
}
negate_iife_2: {
options = {
negate_iife: true
};
input: {
(function(){ return {} })().x = 10; // should not transform this one
}
expect: {
(function(){ return {} })().x = 10;
}
}
negate_iife_3: {
options = {
negate_iife: true,
};
input: {
(function(){ return true })() ? console.log(true) : console.log(false);
}
expect: {
!function(){ return true }() ? console.log(false) : console.log(true);
}
}
negate_iife_3: {
options = {
negate_iife: true,
sequences: true
};
input: {
(function(){ return true })() ? console.log(true) : console.log(false);
(function(){
console.log("something");
})();
}
expect: {
!function(){ return true }() ? console.log(false) : console.log(true), function(){
console.log("something");
}();
}
}
negate_iife_4: {
options = {
negate_iife: true,
sequences: true,
conditionals: true,
};
input: {
if ((function(){ return true })()) {
console.log(true);
} else {
console.log(false);
}
(function(){
console.log("something");
})();
}
expect: {
!function(){ return true }() ? console.log(false) : console.log(true), function(){
console.log("something");
}();
}
}