summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/asm/math-fround.js
blob: b1d37e904e0755575671cf7aee673211193813f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2014 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

function Module(stdlib) {
  "use asm";

  var fround = stdlib.Math.fround;

  // f: double -> float
  function f(a) {
    a = +a;
    return fround(a);
  }

  return { f: f };
}

var f = Module({ Math: Math }).f;

assertTrue(isNaN(f(NaN)));
assertTrue(isNaN(f(undefined)));
assertTrue(isNaN(f(function() {})));

assertEquals("Infinity", String(1/f(0)));
assertEquals("-Infinity", String(1/f(-0)));
assertEquals("Infinity", String(f(Infinity)));
assertEquals("-Infinity", String(f(-Infinity)));
assertEquals("Infinity", String(f(1E200)));
assertEquals("-Infinity", String(f(-1E200)));
assertEquals("Infinity", String(1/f(1E-300)));
assertEquals("-Infinity", String(1/f(-1E-300)));

assertEquals(0,                  f(0));
assertEquals(1,                  f(1));
assertEquals(1.5,                f(1.5));
assertEquals(1.3370000123977661, f(1.337));
assertEquals(-4.300000190734863, f(-4.3));