diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/js-optimizer.js | 6 | ||||
-rw-r--r-- | tools/test-js-optimizer-asm-regs-output.js | 2 | ||||
-rw-r--r-- | tools/test-js-optimizer-asm-regs.js | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 5f21d87d..7ceade86 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -1278,6 +1278,12 @@ function normalizeAsm(func) { traverse(stats[i], function(node, type) { if (type == 'var') { unVarify(node[1], node); + } else if (type == 'dot') { + if (node[1][0] == 'name' && node[1][1] == 'Math') { + // transform Math.max to Math_max; we forward in the latter version + node[0] = 'name'; + node[1] = 'Math_' + node[2]; + } } }); i++; diff --git a/tools/test-js-optimizer-asm-regs-output.js b/tools/test-js-optimizer-asm-regs-output.js index 299db727..9dcb4f70 100644 --- a/tools/test-js-optimizer-asm-regs-output.js +++ b/tools/test-js-optimizer-asm-regs-output.js @@ -3,7 +3,7 @@ function asm(x, y) { y = y | 0; var i1 = 0, d2 = +0, i3 = 0, d4 = +0; i1 = x + x | 0; - d2 = d(); + d2 = d(Math_max(10, Math_min(5, f()))); i3 = i1 + 2 | 0; print(i3); d4 = d2 * 5; diff --git a/tools/test-js-optimizer-asm-regs.js b/tools/test-js-optimizer-asm-regs.js index b1a2663b..2ae21f5e 100644 --- a/tools/test-js-optimizer-asm-regs.js +++ b/tools/test-js-optimizer-asm-regs.js @@ -4,7 +4,7 @@ function asm(x, y) { var int1 = 0, int2 = 0; // do not mix the types! var double1 = +0, double2 = +0; int1 = (x+x)|0; - double1 = d(); + double1 = d(Math.max(10, Math_min(5, f()))); int2 = (int1+2)|0; print(int2); double2 = double1*5; |