Fix for #1085. The major case was already there, but more expressions can result in -0.
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;
--- /dev/null
+negative_zero: {
+ options = { evaluate: true }
+ input: {
+ assert.sameValue(-"", -0, '-""');
+ }
+ expect: {
+ assert.sameValue(-"", -0, '-""');
+ }
+}