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