Fix: Uglified Number.prototype functions on big numbers
This commit is contained in:
committed by
Richard van Velzen
parent
102d1b9137
commit
ee6c9fabb7
@@ -596,8 +596,12 @@ function OutputStream(options) {
|
|||||||
|
|
||||||
PARENS(AST_Number, function(output){
|
PARENS(AST_Number, function(output){
|
||||||
var p = output.parent();
|
var p = output.parent();
|
||||||
if (this.getValue() < 0 && p instanceof AST_PropAccess && p.expression === this)
|
if (p instanceof AST_PropAccess && p.expression === this) {
|
||||||
return true;
|
var value = this.getValue();
|
||||||
|
if (value < 0 || /^0/.test(make_num(value))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
PARENS([ AST_Assign, AST_Conditional ], function (output){
|
PARENS([ AST_Assign, AST_Conditional ], function (output){
|
||||||
@@ -1026,7 +1030,7 @@ function OutputStream(options) {
|
|||||||
var expr = self.expression;
|
var expr = self.expression;
|
||||||
expr.print(output);
|
expr.print(output);
|
||||||
if (expr instanceof AST_Number && expr.getValue() >= 0) {
|
if (expr instanceof AST_Number && expr.getValue() >= 0) {
|
||||||
if (!/[xa-f.]/i.test(output.last())) {
|
if (!/[xa-f.)]/i.test(output.last())) {
|
||||||
output.print(".");
|
output.print(".");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
19
test/compress/numbers.js
Normal file
19
test/compress/numbers.js
Normal file
@@ -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);"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user