PARENS(AST_Number, function(output){
var p = output.parent();
- if (this.getValue() < 0 && p instanceof AST_PropAccess && p.expression === this)
- return true;
+ if (p instanceof AST_PropAccess && p.expression === this) {
+ var value = this.getValue();
+ if (value < 0 || /^0/.test(make_num(value))) {
+ return true;
+ }
+ }
});
PARENS([ AST_Assign, AST_Conditional ], function (output){
var expr = self.expression;
expr.print(output);
if (expr instanceof AST_Number && expr.getValue() >= 0) {
- if (!/[xa-f.]/i.test(output.last())) {
+ if (!/[xa-f.)]/i.test(output.last())) {
output.print(".");
}
}
--- /dev/null
+hex_numbers_in_parentheses_for_prototype_functions: {
+ input: {
+ (-2);
+ (-2).toFixed(0);
+
+ (2);
+ (2).toFixed(0);
+
+ (0.2);
+ (0.2).toFixed(0);
+
+ (0.00000002);
+ (0.00000002).toFixed(0);
+
+ (1000000000000000128);
+ (1000000000000000128).toFixed(0);
+ }
+ expect_exact: "-2;(-2).toFixed(0);2;2..toFixed(0);.2;.2.toFixed(0);2e-8;2e-8.toFixed(0);0xde0b6b3a7640080;(0xde0b6b3a7640080).toFixed(0);"
+}