Never produce -0 when evaluating expressions (like -"")
Fix for #1085. The major case was already there, but more expressions can result in -0.
This commit is contained in:
@@ -1029,9 +1029,9 @@ merge(Compressor.prototype, {
|
||||
case "void": return void ev(e, compressor);
|
||||
case "~": return ~ev(e, compressor);
|
||||
case "-":
|
||||
e = ev(e, compressor);
|
||||
if (e === 0) throw def;
|
||||
return -e;
|
||||
e = -ev(e, compressor);
|
||||
if (e === -0) throw def;
|
||||
return e;
|
||||
case "+": return +ev(e, compressor);
|
||||
}
|
||||
throw def;
|
||||
|
||||
9
test/compress/evaluate.js
Normal file
9
test/compress/evaluate.js
Normal file
@@ -0,0 +1,9 @@
|
||||
negative_zero: {
|
||||
options = { evaluate: true }
|
||||
input: {
|
||||
assert.sameValue(-"", -0, '-""');
|
||||
}
|
||||
expect: {
|
||||
assert.sameValue(-"", -0, '-""');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user