blob: f9ba09698fe99f185a47548d8a7413ed72b7b1a0 [file] [log] [blame] [edit]
function shouldBe(actual, expected) {
if (actual !== expected)
throw new Error('bad value: ' + actual);
}
function parseFloatDouble(value) {
return parseFloat(value);
}
noInline(parseFloatDouble);
for (var i = 0; i < testLoopCount; ++i) {
shouldBe(Object.is(parseFloatDouble(0.0), 0), true);
shouldBe(Object.is(parseFloatDouble(-0.0), 0), true); // Not -0 since -0.0.toString() is "0".
shouldBe(Object.is(parseFloatDouble(-1.0), -1.0), true);
shouldBe(Object.is(parseFloatDouble(-0.01), -0.01), true);
shouldBe(Object.is(parseFloatDouble(-1.1), -1.1), true);
shouldBe(Object.is(parseFloatDouble(-1.0), -1.0), true);
shouldBe(Object.is(parseFloatDouble(-0.9), -0.9), true);
shouldBe(Object.is(parseFloatDouble(-1.000000001), -1.000000001), true);
shouldBe(Object.is(parseFloatDouble(-0.000000001), -0.000000001), true);
shouldBe(Object.is(parseFloatDouble(0.000000001), 0.000000001), true);
shouldBe(Object.is(parseFloatDouble(0.000001), 0.000001), true);
shouldBe(Object.is(parseFloatDouble(0.000001), 0.000001), true);
shouldBe(Object.is(parseFloatDouble(0.0000001), 0.0000001), true);
shouldBe(Object.is(parseFloatDouble(-0.0000001), -0.0000001), true);
shouldBe(Object.is(parseFloatDouble(1e+21), 1e+21), true);
shouldBe(Object.is(parseFloatDouble(1e+20), 1e+20), true);
shouldBe(Object.is(parseFloatDouble(NaN), NaN), true);
shouldBe(Object.is(parseFloatDouble(Infinity), Infinity), true);
shouldBe(Object.is(parseFloatDouble(-Infinity), -Infinity), true);
}