diff options
author | philippsimon <github@philippsimon.de> | 2016-03-14 12:21:25 +0100 |
---|---|---|
committer | Richard van Velzen <rvanvelzen@experty.com> | 2016-03-14 12:41:06 +0100 |
commit | ee6c9fabb7dc00b8bbc9e60859767acc585cd0fa (patch) | |
tree | 4074dc54b582a76605aaa936d9a8adb18990377c | |
parent | 102d1b9137353086f11fe2fc7abf9095042d4306 (diff) | |
download | tracifyjs-ee6c9fabb7dc00b8bbc9e60859767acc585cd0fa.tar.gz tracifyjs-ee6c9fabb7dc00b8bbc9e60859767acc585cd0fa.zip |
Fix: Uglified Number.prototype functions on big numbers
-rw-r--r-- | lib/output.js | 10 | ||||
-rw-r--r-- | test/compress/numbers.js | 19 |
2 files changed, 26 insertions, 3 deletions
diff --git a/lib/output.js b/lib/output.js index dceece34..a8c45a0f 100644 --- a/lib/output.js +++ b/lib/output.js @@ -596,8 +596,12 @@ function OutputStream(options) { 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){ @@ -1026,7 +1030,7 @@ function OutputStream(options) { 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("."); } } diff --git a/test/compress/numbers.js b/test/compress/numbers.js new file mode 100644 index 00000000..8e32ad02 --- /dev/null +++ b/test/compress/numbers.js @@ -0,0 +1,19 @@ +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);" +} |