function shouldBe(actual, expected) { if (actual !== expected) throw new Error(`bad value: ${actual}`); } function test1(i) { shouldBe(Number.isFinite(i), true); } noInline(test1); for (var i = -1e4; i < 1e4; ++i) test1(i); function test2(i) { shouldBe(Number.isFinite(Infinity), false); shouldBe(Number.isFinite(-Infinity), false); shouldBe(Number.isFinite(NaN), false); } noInline(test2); // Emit DoubleRep. for (var i = 0; i < 100; ++i) test2(i); function test3(i) { shouldBe(Number.isFinite("0"), false); shouldBe(Number.isFinite("Hello"), false); } noInline(test3); // Emit IsNumber. for (var i = 0; i < 100; ++i) test3(i);