[JSC] Add SameValue DFG node
[WebKit-https.git] / JSTests / stress / object-is.js
1 function shouldBe(actual, expected) {
2     if (actual !== expected)
3         throw new Error('bad value: ' + actual);
4 }
5
6 function is1(a, b) { return Object.is(a, b); }
7 noInline(is1);
8 function is2(a, b) { return Object.is(a, b); }
9 noInline(is2);
10 function is3(a, b) { return Object.is(a, b); }
11 noInline(is3);
12 function is4(a, b) { return Object.is(a, b); }
13 noInline(is4);
14 function is5(a, b) { return Object.is(a, b); }
15 noInline(is5);
16 function is6(a, b) { return Object.is(a, b); }
17 noInline(is6);
18 function is7(a, b) { return Object.is(a, b); }
19 noInline(is7);
20 function is8(a, b) { return Object.is(a, b); }
21 noInline(is8);
22 function is9(a, b) { return Object.is(a, b); }
23 noInline(is9);
24 function is10(a, b) { return Object.is(a, b); }
25 noInline(is10);
26 function is11(a, b) { return Object.is(a, b); }
27 noInline(is11);
28 function is12(a, b) { return Object.is(a, b); }
29 noInline(is12);
30 function is13(a, b) { return Object.is(a, b); }
31 noInline(is13);
32 function is14(a, b) { return Object.is(a, b); }
33 noInline(is14);
34 function is15(a, b) { return Object.is(a, b); }
35 noInline(is15);
36
37 for (var i = 0; i < 1e5; ++i) {
38     shouldBe(Object.is(NaN, NaN), true);
39     shouldBe(Object.is(null, null), true);
40     shouldBe(Object.is(null), false);
41     shouldBe(Object.is(undefined, undefined), true);
42     shouldBe(Object.is(true, true), true);
43     shouldBe(Object.is(false, false), true);
44     shouldBe(Object.is('abc', 'abc'), true);
45     shouldBe(Object.is(Infinity, Infinity), true);
46     shouldBe(Object.is(0, 0), true);
47     shouldBe(Object.is(-0, -0), true);
48     shouldBe(Object.is(0, -0), false);
49     shouldBe(Object.is(-0, 0), false);
50     var obj = {};
51     shouldBe(Object.is(obj, obj), true);
52     var arr = [];
53     shouldBe(Object.is(arr, arr), true);
54     var sym = Symbol();
55     shouldBe(Object.is(sym, sym), true);
56
57     shouldBe(is1(NaN, NaN), true);
58     shouldBe(is2(null, null), true);
59     shouldBe(is3(null), false);
60     shouldBe(is4(undefined, undefined), true);
61     shouldBe(is5(true, true), true);
62     shouldBe(is6(false, false), true);
63     shouldBe(is7('abc', 'abc'), true);
64     shouldBe(is8(Infinity, Infinity), true);
65     shouldBe(is9(0, 0), true);
66     shouldBe(is10(-0, -0), true);
67     shouldBe(is11(0, -0), false);
68     shouldBe(is12(-0, 0), false);
69     shouldBe(is13(obj, obj), true);
70     shouldBe(is14(arr, arr), true);
71     shouldBe(is15(sym, sym), true);
72 }