function evaluate(- UnaryExpression) { var expr = UnaryExpression; var oldValue = ToNumber(GetValue(UnaryExpression)); if (isNaN(oldValue)) return NaN; return -oldValue; // it's cheating, I know :) }
Note that +0 becomes -0 and vice versa. NaN just returns NaN.