OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 function Module(stdlib, foreign, heap) { | 5 function Module(stdlib, foreign, heap) { |
6 "use asm"; | 6 "use asm"; |
7 function f1(i) { | 7 function f1(i) { |
8 i = +i; | 8 i = +i; |
9 return +(i * -1); | 9 return +(i * -1); |
10 } | 10 } |
11 function f2(i) { | 11 function f2(i) { |
12 i = +i; | 12 i = +i; |
13 return +(-1 * i); | 13 return +(-1 * i); |
14 } | 14 } |
15 return { f1: f1, f2: f2 }; | 15 function f3(i) { |
| 16 i = +i; |
| 17 return +(-i); |
| 18 } |
| 19 return { f1: f1, f2: f2, f3: f3 }; |
16 } | 20 } |
17 | 21 |
18 var m = Module(this, {}, new ArrayBuffer(64 * 1024)); | 22 var m = Module(this, {}, new ArrayBuffer(64 * 1024)); |
19 | 23 |
20 assertEquals(NaN, m.f1(NaN)); | 24 assertEquals(NaN, m.f1(NaN)); |
21 assertEquals(NaN, m.f2(NaN)); | 25 assertEquals(NaN, m.f2(NaN)); |
| 26 assertEquals(NaN, m.f3(NaN)); |
22 assertEquals(Infinity, 1 / m.f1(-0)); | 27 assertEquals(Infinity, 1 / m.f1(-0)); |
23 assertEquals(Infinity, 1 / m.f2(-0)); | 28 assertEquals(Infinity, 1 / m.f2(-0)); |
| 29 assertEquals(Infinity, 1 / m.f3(-0)); |
24 assertEquals(Infinity, m.f1(-Infinity)); | 30 assertEquals(Infinity, m.f1(-Infinity)); |
25 assertEquals(Infinity, m.f2(-Infinity)); | 31 assertEquals(Infinity, m.f2(-Infinity)); |
| 32 assertEquals(Infinity, m.f3(-Infinity)); |
26 assertEquals(-Infinity, 1 / m.f1(0)); | 33 assertEquals(-Infinity, 1 / m.f1(0)); |
27 assertEquals(-Infinity, 1 / m.f2(0)); | 34 assertEquals(-Infinity, 1 / m.f2(0)); |
| 35 assertEquals(-Infinity, 1 / m.f3(0)); |
28 assertEquals(-Infinity, m.f1(Infinity)); | 36 assertEquals(-Infinity, m.f1(Infinity)); |
29 assertEquals(-Infinity, m.f2(Infinity)); | 37 assertEquals(-Infinity, m.f2(Infinity)); |
| 38 assertEquals(-Infinity, m.f3(Infinity)); |
30 for (var i = -2147483648; i < 2147483648; i += 3999777) { | 39 for (var i = -2147483648; i < 2147483648; i += 3999777) { |
31 assertEquals(-i, m.f1(i)); | 40 assertEquals(-i, m.f1(i)); |
32 assertEquals(-i, m.f2(i)); | 41 assertEquals(-i, m.f2(i)); |
| 42 assertEquals(-i, m.f3(i)); |
33 } | 43 } |
OLD | NEW |