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 "void": return void ev(e, compressor);
|
||||||
case "~": return ~ev(e, compressor);
|
case "~": return ~ev(e, compressor);
|
||||||
case "-":
|
case "-":
|
||||||
e = ev(e, compressor);
|
e = -ev(e, compressor);
|
||||||
if (e === 0) throw def;
|
if (e === -0) throw def;
|
||||||
return -e;
|
return e;
|
||||||
case "+": return +ev(e, compressor);
|
case "+": return +ev(e, compressor);
|
||||||
}
|
}
|
||||||
throw def;
|
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