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 5function Module(stdlib) { 6 "use asm"; 7 8 var fround = stdlib.Math.fround; 9 10 // f: double -> float 11 function f(a) { 12 a = +a; 13 return fround(a); 14 } 15 16 return { f: f }; 17} 18 19var f = Module({ Math: Math }).f; 20 21assertTrue(isNaN(f(NaN))); 22assertTrue(isNaN(f(undefined))); 23assertTrue(isNaN(f(function() {}))); 24 25assertEquals("Infinity", String(1/f(0))); 26assertEquals("-Infinity", String(1/f(-0))); 27assertEquals("Infinity", String(f(Infinity))); 28assertEquals("-Infinity", String(f(-Infinity))); 29assertEquals("Infinity", String(f(1E200))); 30assertEquals("-Infinity", String(f(-1E200))); 31assertEquals("Infinity", String(1/f(1E-300))); 32assertEquals("-Infinity", String(1/f(-1E-300))); 33 34assertEquals(0, f(0)); 35assertEquals(1, f(1)); 36assertEquals(1.5, f(1.5)); 37assertEquals(1.3370000123977661, f(1.337)); 38assertEquals(-4.300000190734863, f(-4.3)); 39