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) { | 5 function Module(stdlib) { |
6 "use asm"; | 6 "use asm"; |
7 | 7 |
8 var floor = stdlib.Math.floor; | 8 var floor = stdlib.Math.floor; |
9 | 9 |
10 // f: double -> float | 10 // f: double -> float |
11 function f(a) { | 11 function f(a) { |
12 a = +a; | 12 a = +a |
13 return floor(a); | 13 return +floor(a); |
14 } | 14 } |
15 | 15 |
16 return { f: f }; | 16 return { f: f }; |
17 } | 17 } |
18 | 18 |
19 var f = Module({ Math: Math }).f; | 19 var f = Module({ Math: Math }).f; |
20 | 20 |
21 assertTrue(isNaN(f(NaN))); | 21 assertTrue(isNaN(f(NaN))); |
22 assertTrue(isNaN(f(undefined))); | 22 assertTrue(isNaN(f(undefined))); |
23 assertTrue(isNaN(f(function() {}))); | 23 assertTrue(isNaN(f(function() {}))); |
24 | 24 |
25 assertEquals(0, f(0)); | 25 assertEquals(0, f(0)); |
26 assertEquals(+0, f(+0)); | 26 assertEquals(+0, f(+0)); |
27 assertEquals(-0, f(-0)); | 27 assertEquals(-0, f(-0)); |
28 assertEquals(0, f(0.49999)); | 28 assertEquals(0, f(0.49999)); |
29 assertEquals(+0, f(0.6)); | 29 assertEquals(+0, f(0.6)); |
30 assertEquals(+0, f(0.5)); | 30 assertEquals(+0, f(0.5)); |
31 assertEquals(-1, f(-0.1)); | 31 assertEquals(-1, f(-0.1)); |
32 assertEquals(-1, f(-0.5)); | 32 assertEquals(-1, f(-0.5)); |
33 assertEquals(-1, f(-0.6)); | 33 assertEquals(-1, f(-0.6)); |
34 assertEquals(-2, f(-1.6)); | 34 assertEquals(-2, f(-1.6)); |
35 assertEquals(-1, f(-0.50001)); | 35 assertEquals(-1, f(-0.50001)); |
36 | 36 |
37 assertEquals("Infinity", String(f(Infinity))); | 37 assertEquals("Infinity", String(f(Infinity))); |
38 assertEquals("-Infinity", String(f(-Infinity))); | 38 assertEquals("-Infinity", String(f(-Infinity))); |
OLD | NEW |