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:
Richard van Velzen
2016-05-17 22:34:38 +02:00
parent 5f464b41e2
commit 27eedbc302
2 changed files with 12 additions and 3 deletions

View File

@@ -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;

View File

@@ -0,0 +1,9 @@
negative_zero: {
options = { evaluate: true }
input: {
assert.sameValue(-"", -0, '-""');
}
expect: {
assert.sameValue(-"", -0, '-""');
}
}