The essence is that IIFEs in the form of !function() { ... }() that are evaluated as conditions will incorrectly get their exclamation mark removed by Butternut, resulting in invalid output:
function fn () {
if ( !function () {
return any_value
}() ) {
do_something()
}
}
The invaild output is this:
function fn(){function(){return any_value}()||do_something()}
Trying to squash minified aight failed.
The essence is that IIFEs in the form of
!function() { ... }()
that are evaluated as conditions will incorrectly get their exclamation mark removed by Butternut, resulting in invalid output:The invaild output is this: