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 ceil = stdlib.Math.ceil;
      9 
     10   // f: double -> float
     11   function f(a) {
     12     a = +a;
     13     return ceil(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(0,                   f(0));
     26 assertEquals(+0,                  f(+0));
     27 assertEquals(-0,                  f(-0));
     28 assertEquals(1,                   f(0.49999));
     29 assertEquals(1,                   f(0.6));
     30 assertEquals(1,                   f(0.5));
     31 assertEquals(-0,                  f(-0.1));
     32 assertEquals(-0,                  f(-0.5));
     33 assertEquals(-0,                  f(-0.6));
     34 assertEquals(-1,                  f(-1.6));
     35 assertEquals(-0,                  f(-0.50001));
     36 
     37 assertEquals("Infinity", String(f(Infinity)));
     38 assertEquals("-Infinity", String(f(-Infinity)));
     39