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 function f3(i) { | 15 return { f1: f1, f2: f2 }; |
16 i = +i; | |
17 return +(-i); | |
18 } | |
19 return { f1: f1, f2: f2, f3: f3 }; | |
20 } | 16 } |
21 | 17 |
22 var m = Module(this, {}, new ArrayBuffer(64 * 1024)); | 18 var m = Module(this, {}, new ArrayBuffer(64 * 1024)); |
23 | 19 |
24 assertEquals(NaN, m.f1(NaN)); | 20 assertEquals(NaN, m.f1(NaN)); |
25 assertEquals(NaN, m.f2(NaN)); | 21 assertEquals(NaN, m.f2(NaN)); |
26 assertEquals(NaN, m.f3(NaN)); | |
27 assertEquals(Infinity, 1 / m.f1(-0)); | 22 assertEquals(Infinity, 1 / m.f1(-0)); |
28 assertEquals(Infinity, 1 / m.f2(-0)); | 23 assertEquals(Infinity, 1 / m.f2(-0)); |
29 assertEquals(Infinity, 1 / m.f3(-0)); | |
30 assertEquals(Infinity, m.f1(-Infinity)); | 24 assertEquals(Infinity, m.f1(-Infinity)); |
31 assertEquals(Infinity, m.f2(-Infinity)); | 25 assertEquals(Infinity, m.f2(-Infinity)); |
32 assertEquals(Infinity, m.f3(-Infinity)); | |
33 assertEquals(-Infinity, 1 / m.f1(0)); | 26 assertEquals(-Infinity, 1 / m.f1(0)); |
34 assertEquals(-Infinity, 1 / m.f2(0)); | 27 assertEquals(-Infinity, 1 / m.f2(0)); |
35 assertEquals(-Infinity, 1 / m.f3(0)); | |
36 assertEquals(-Infinity, m.f1(Infinity)); | 28 assertEquals(-Infinity, m.f1(Infinity)); |
37 assertEquals(-Infinity, m.f2(Infinity)); | 29 assertEquals(-Infinity, m.f2(Infinity)); |
38 assertEquals(-Infinity, m.f3(Infinity)); | |
39 for (var i = -2147483648; i < 2147483648; i += 3999777) { | 30 for (var i = -2147483648; i < 2147483648; i += 3999777) { |
40 assertEquals(-i, m.f1(i)); | 31 assertEquals(-i, m.f1(i)); |
41 assertEquals(-i, m.f2(i)); | 32 assertEquals(-i, m.f2(i)); |
42 assertEquals(-i, m.f3(i)); | |
43 } | 33 } |
OLD | NEW |