Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 function Module(stdlib) { | |
| 6 "use asm"; | |
| 7 | |
| 8 var abs = stdlib.Math.abs; | |
| 9 | |
| 10 // f: double -> double | |
| 11 function f(a) { | |
| 12 a = +a; | |
| 13 return abs(a); | |
| 14 } | |
|
titzer
2014/09/26 13:35:13
How about an int32 and uint32 case too?
Michael Starzinger
2014/09/26 13:59:39
Done.
| |
| 15 | |
| 16 return { f: f }; | |
| 17 } | |
| 18 | |
| 19 var f = Module({ Math: Math }).f; | |
| 20 | |
| 21 assertTrue(isNaN(f(NaN))); | |
| 22 assertTrue(isNaN(f(undefined))); | |
| 23 assertTrue(isNaN(f(function() {}))); | |
| 24 | |
| 25 assertEquals("Infinity", String(1/f(0))); | |
| 26 assertEquals("Infinity", String(1/f(-0))); | |
| 27 assertEquals("Infinity", String(f(Infinity))); | |
| 28 assertEquals("Infinity", String(f(-Infinity))); | |
| 29 | |
| 30 assertEquals(0, f(0)); | |
| 31 assertEquals(0.1, f(0.1)); | |
| 32 assertEquals(0.5, f(0.5)); | |
| 33 assertEquals(0.1, f(-0.1)); | |
| 34 assertEquals(0.5, f(-0.5)); | |
| 35 assertEquals(1, f(1)); | |
| 36 assertEquals(1.1, f(1.1)); | |
| 37 assertEquals(1.5, f(1.5)); | |
| 38 assertEquals(1, f(-1)); | |
| 39 assertEquals(1.1, f(-1.1)); | |
| 40 assertEquals(1.5, f(-1.5)); | |
| 41 | |
| 42 assertEquals(Number.MIN_VALUE, f(Number.MIN_VALUE)); | |
| 43 assertEquals(Number.MIN_VALUE, f(-Number.MIN_VALUE)); | |
| 44 assertEquals(Number.MAX_VALUE, f(Number.MAX_VALUE)); | |
| 45 assertEquals(Number.MAX_VALUE, f(-Number.MAX_VALUE)); | |
| OLD | NEW |