| function shouldBe(actual, expected) { |
| if (actual !== expected) |
| throw new Error('bad value: ' + actual); |
| } |
| |
| function is1(a, b) { return Object.is(a, b); } |
| noInline(is1); |
| function is2(a, b) { return Object.is(a, b); } |
| noInline(is2); |
| function is3(a, b) { return Object.is(a, b); } |
| noInline(is3); |
| function is4(a, b) { return Object.is(a, b); } |
| noInline(is4); |
| function is5(a, b) { return Object.is(a, b); } |
| noInline(is5); |
| function is6(a, b) { return Object.is(a, b); } |
| noInline(is6); |
| function is7(a, b) { return Object.is(a, b); } |
| noInline(is7); |
| function is8(a, b) { return Object.is(a, b); } |
| noInline(is8); |
| function is9(a, b) { return Object.is(a, b); } |
| noInline(is9); |
| function is10(a, b) { return Object.is(a, b); } |
| noInline(is10); |
| function is11(a, b) { return Object.is(a, b); } |
| noInline(is11); |
| function is12(a, b) { return Object.is(a, b); } |
| noInline(is12); |
| function is13(a, b) { return Object.is(a, b); } |
| noInline(is13); |
| function is14(a, b) { return Object.is(a, b); } |
| noInline(is14); |
| function is15(a, b) { return Object.is(a, b); } |
| noInline(is15); |
| |
| for (var i = 0; i < 1e5; ++i) { |
| shouldBe(Object.is(NaN, NaN), true); |
| shouldBe(Object.is(null, null), true); |
| shouldBe(Object.is(null), false); |
| shouldBe(Object.is(undefined, undefined), true); |
| shouldBe(Object.is(true, true), true); |
| shouldBe(Object.is(false, false), true); |
| shouldBe(Object.is('abc', 'abc'), true); |
| shouldBe(Object.is(Infinity, Infinity), true); |
| shouldBe(Object.is(0, 0), true); |
| shouldBe(Object.is(-0, -0), true); |
| shouldBe(Object.is(0, -0), false); |
| shouldBe(Object.is(-0, 0), false); |
| var obj = {}; |
| shouldBe(Object.is(obj, obj), true); |
| var arr = []; |
| shouldBe(Object.is(arr, arr), true); |
| var sym = Symbol(); |
| shouldBe(Object.is(sym, sym), true); |
| |
| shouldBe(is1(NaN, NaN), true); |
| shouldBe(is2(null, null), true); |
| shouldBe(is3(null), false); |
| shouldBe(is4(undefined, undefined), true); |
| shouldBe(is5(true, true), true); |
| shouldBe(is6(false, false), true); |
| shouldBe(is7('abc', 'abc'), true); |
| shouldBe(is8(Infinity, Infinity), true); |
| shouldBe(is9(0, 0), true); |
| shouldBe(is10(-0, -0), true); |
| shouldBe(is11(0, -0), false); |
| shouldBe(is12(-0, 0), false); |
| shouldBe(is13(obj, obj), true); |
| shouldBe(is14(arr, arr), true); |
| shouldBe(is15(sym, sym), true); |
| } |