[JSC] Implement isFinite / isNaN in JS and make DFG ToNumber accept non number values
[WebKit-https.git] / Source / JavaScriptCore / tests / stress / number-is-finite.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error(`bad value: ${actual}`);
4 }
5
6 function test1(i)
7 {
8     shouldBe(Number.isFinite(i), true);
9 }
10 noInline(test1);
11
12 for (var i = -1e4; i < 1e4; ++i)
13     test1(i);
14
15 function test2(i)
16 {
17     shouldBe(Number.isFinite(Infinity), false);
18     shouldBe(Number.isFinite(-Infinity), false);
19     shouldBe(Number.isFinite(NaN), false);
20 }
21 noInline(test2);
22
23 // Emit DoubleRep.
24 for (var i = 0; i < 100; ++i)
25     test2(i);
26
27
28 function test3(i)
29 {
30     shouldBe(Number.isFinite("0"), false);
31     shouldBe(Number.isFinite("Hello"), false);
32 }
33 noInline(test3);
34
35 // Emit IsNumber.
36 for (var i = 0; i < 100; ++i)
37     test3(i);