Home | History | Annotate | Download | only in asm
      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 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 
     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 assertEquals("Infinity", String(f(1E200)));
     30 assertEquals("-Infinity", String(f(-1E200)));
     31 assertEquals("Infinity", String(1/f(1E-300)));
     32 assertEquals("-Infinity", String(1/f(-1E-300)));
     33 
     34 assertEquals(0,                  f(0));
     35 assertEquals(1,                  f(1));
     36 assertEquals(1.5,                f(1.5));
     37 assertEquals(1.3370000123977661, f(1.337));
     38 assertEquals(-4.300000190734863, f(-4.3));
     39