test262-automation e9a5a7f918 [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time) (#1620)
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
2018-07-03 15:59:58 -04:00

217 lines
9.2 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function opaqueDivBy2(a)
{
return a / 2;
}
noInline(opaqueDivBy2);
function opaqueDivBy3(a)
{
return a / 3;
}
noInline(opaqueDivBy3);
function opaqueDivBy4(a)
{
return a / 4;
}
noInline(opaqueDivBy4);
function opaqueDivBySafeMaxMinusOne(a)
{
// 2^1022
return a / 44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304;
}
noInline(opaqueDivBySafeMaxMinusOne);
function opaqueDivBySafeMax(a)
{
// 2^1023
return a / 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608;
}
noInline(opaqueDivBySafeMax);
function opaqueDivBySafeMaxPlusOne(a)
{
// 2^1024
return a / 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216;
}
noInline(opaqueDivBySafeMaxPlusOne);
function opaqueDivBySafeMin(a)
{
// 2^-1022
return a / (1 / 44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304);
}
noInline(opaqueDivBySafeMin);
function opaqueDivBySafeMinMinusOne(a)
{
// 2^-1023
return a / (1 / 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239858152417678164812112068608);
}
noInline(opaqueDivBySafeMinMinusOne);
for (let i = 0; i < 1e4; ++i) {
let result = opaqueDivBy2(Math.PI);
if (result !== 1.5707963267948966)
throw "Failed opaqueDivBy2(Math.PI). Result = " + result;
result = opaqueDivBy2(NaN);
if (result === result)
throw "Failed opaqueDivBy2(NaN). Result = " + result;
result = opaqueDivBy2(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBy2(Infinity). Result = " + result;
result = opaqueDivBy2(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBy2(-Infinity). Result = " + result;
result = opaqueDivBy2(Math.E);
if (result !== 1.3591409142295225)
throw "Failed opaqueDivBy2(Math.E). Result = " + result;
result = opaqueDivBy3(Math.PI);
if (result !== 1.0471975511965976)
throw "Failed opaqueDivBy3(Math.PI). Result = " + result;
result = opaqueDivBy3(NaN);
if (result === result)
throw "Failed opaqueDivBy3(NaN). Result = " + result;
result = opaqueDivBy3(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBy3(Infinity). Result = " + result;
result = opaqueDivBy3(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBy3(-Infinity). Result = " + result;
result = opaqueDivBy3(Math.E);
if (result !== 0.9060939428196817)
throw "Failed opaqueDivBy3(Math.E). Result = " + result;
result = opaqueDivBy4(Math.PI);
if (result !== 0.7853981633974483)
throw "Failed opaqueDivBy4(Math.PI). Result = " + result;
result = opaqueDivBy4(NaN);
if (result === result)
throw "Failed opaqueDivBy4(NaN). Result = " + result;
result = opaqueDivBy4(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBy4(Infinity). Result = " + result;
result = opaqueDivBy4(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBy4(-Infinity). Result = " + result;
result = opaqueDivBy4(Math.E);
if (result !== 0.6795704571147613)
throw "Failed opaqueDivBy4(Math.E). Result = " + result;
result = opaqueDivBySafeMaxMinusOne(Math.PI);
if (result !== 6.990275687580919e-308)
throw "Failed opaqueDivBySafeMaxMinusOne(Math.PI). Result = " + result;
result = opaqueDivBySafeMaxMinusOne(NaN);
if (result === result)
throw "Failed opaqueDivBySafeMaxMinusOne(NaN). Result = " + result;
result = opaqueDivBySafeMaxMinusOne(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBySafeMaxMinusOne(Infinity). Result = " + result;
result = opaqueDivBySafeMaxMinusOne(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBySafeMaxMinusOne(-Infinity). Result = " + result;
result = opaqueDivBySafeMaxMinusOne(Math.E);
if (result !== 6.048377836559378e-308)
throw "Failed opaqueDivBySafeMaxMinusOne(Math.E). Result = " + result;
result = opaqueDivBySafeMax(Math.PI);
if (result !== 3.4951378437904593e-308)
throw "Failed opaqueDivBySafeMax(Math.PI). Result = " + result;
result = opaqueDivBySafeMax(NaN);
if (result === result)
throw "Failed opaqueDivBySafeMax(NaN). Result = " + result;
result = opaqueDivBySafeMax(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBySafeMax(Infinity). Result = " + result;
result = opaqueDivBySafeMax(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBySafeMax(-Infinity). Result = " + result;
result = opaqueDivBySafeMax(Math.E);
if (result !== 3.024188918279689e-308)
throw "Failed opaqueDivBySafeMax(Math.E). Result = " + result;
result = opaqueDivBySafeMaxPlusOne(Math.PI);
if (result !== 0)
throw "Failed opaqueDivBySafeMaxPlusOne(Math.PI). Result = " + result;
result = opaqueDivBySafeMaxPlusOne(NaN);
if (result === result)
throw "Failed opaqueDivBySafeMaxPlusOne(NaN). Result = " + result;
result = opaqueDivBySafeMaxPlusOne(Infinity);
if (result === result)
throw "Failed opaqueDivBySafeMaxPlusOne(Infinity). Result = " + result;
result = opaqueDivBySafeMaxPlusOne(-Infinity);
if (result === result)
throw "Failed opaqueDivBySafeMaxPlusOne(-Infinity). Result = " + result;
result = opaqueDivBySafeMaxPlusOne(Math.E);
if (result !== 0)
throw "Failed opaqueDivBySafeMaxPlusOne(Math.E). Result = " + result;
result = opaqueDivBySafeMin(Math.PI);
if (result !== 1.4119048864730642e+308)
throw "Failed opaqueDivBySafeMin(Math.PI). Result = " + result;
result = opaqueDivBySafeMin(NaN);
if (result === result)
throw "Failed opaqueDivBySafeMin(NaN). Result = " + result;
result = opaqueDivBySafeMin(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBySafeMin(Infinity). Result = " + result;
result = opaqueDivBySafeMin(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBySafeMin(-Infinity). Result = " + result;
result = opaqueDivBySafeMin(Math.E);
if (result !== 1.2216591454104522e+308)
throw "Failed opaqueDivBySafeMin(Math.E). Result = " + result;
result = opaqueDivBySafeMinMinusOne(Math.PI);
if (result !== Infinity)
throw "Failed opaqueDivBySafeMinMinusOne(Math.PI). Result = " + result;
result = opaqueDivBySafeMinMinusOne(NaN);
if (result === result)
throw "Failed opaqueDivBySafeMinMinusOne(NaN). Result = " + result;
result = opaqueDivBySafeMinMinusOne(Infinity);
if (result !== Infinity)
throw "Failed opaqueDivBySafeMinMinusOne(Infinity). Result = " + result;
result = opaqueDivBySafeMinMinusOne(-Infinity);
if (result !== -Infinity)
throw "Failed opaqueDivBySafeMinMinusOne(-Infinity). Result = " + result;
result = opaqueDivBySafeMinMinusOne(Math.E);
if (result !== Infinity)
throw "Failed opaqueDivBySafeMinMinusOne(Math.E). Result = " + result;
}
// Check that we don't do anything crazy with crazy types.
for (let i = 0; i < 1e3; ++i) {
let result = opaqueDivBy2();
if (result === result)
throw "Failed opaqueDivBy2()";
result = opaqueDivBy4(null);
if (result !== 0)
throw "Failed opaqueDivBy4(null)";
result = opaqueDivBySafeMaxMinusOne("WebKit!");
if (result === result)
throw "Failed opaqueDivBy4(null)";
result = opaqueDivBySafeMin("");
if (result !== 0)
throw "Failed opaqueDivBySafeMin('')";
try {
result = opaqueDivBy2(Symbol());
throw "Failed opaqueDivBy2(Symbol())";
} catch (exception) {
if (exception != "TypeError: Cannot convert a symbol to a number")
throw "Wrong exception: " + exception;
}
result = opaqueDivBy4(true);
if (result !== 0.25)
throw "Failed opaqueDivBy4(true)";
result = opaqueDivBySafeMaxMinusOne(false);
if (result !== 0)
throw "Failed opaqueDivBySafeMaxMinusOne(false)";
result = opaqueDivBySafeMin({ valueOf: function() { return 42; }});
if (result !== Infinity)
throw "Failed opaqueDivBySafeMin({ valueOf: function() { return 42; }})";
}