Closed
Description
I found an issue with "simple" compression and binary "or" operations. In this case, the variable is just overwritten with "48" instead of doing clean "or" operations on given input.
With advanced compression (or just whitespace removal) I get valid code.
Input code: (generated by https://github.com/openfl/lime convertor)
var addFlags = function(data) {
data.flags = (data.flags |= 8) | 4
data.flags = (data.flags |= 16) | 32
}
var data = {flags:1};
addFlags(data)
console.log(data.flags); // expected: 61
Output in SIMPLE_OPTIMIZATIONS
var addFlags = function(a) {
a.flags = 12;
a.flags = 48;
}, data = {flags:1};
addFlags(data);
console.log(data.flags);
-> output 48 👎
Output in ADVANCED_OPTIMIZATIONS
var addFlags = function(a) {
a.flags |= 12;
a.flags |= 48;
};
var b = {flags:1};
addFlags(b);
console.log(b.flags);
-> output: 61 👍
Metadata
Metadata
Assignees
Labels
No labels