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

107 lines
3.6 KiB
JavaScript

// Using full number + null for math.
function addArgsNumberAndNull(a, b) {
return a + b;
}
noInline(addArgsNumberAndNull);
for (var i = 0; i < 1e4; ++i) {
var value = addArgsNumberAndNull(i, 1);
if (value !== (i + 1))
throw "addArgsNumberAndNull(i, 1) failed with i = " + i + " returned value = " + value;
var value = addArgsNumberAndNull(0.5, i);
if (value !== (i + 0.5))
throw "addArgsNumberAndNull(0.5, i) failed with i = " + i + " returned value = " + value;
var value = addArgsNumberAndNull(null, i);
if (value !== i)
throw "addArgsNumberAndNull(null, i) failed with i = " + i + " returned value = " + value;
var value = addArgsNumberAndNull(i, null);
if (value !== i)
throw "addArgsNumberAndNull(i, null) failed with i = " + i + " returned value = " + value;
var value = addArgsNumberAndNull(null, null);
if (value !== 0)
throw "addArgsNumberAndNull(null, null) failed with i = " + i + " returned value = " + value;
}
// Using int32 + null for math.
function addArgsInt32AndNull(a, b) {
return a + b;
}
noInline(addArgsInt32AndNull);
for (var i = 0; i < 1e4; ++i) {
var value = addArgsInt32AndNull(i, 1);
if (value !== (i + 1))
throw "addArgsInt32AndNull(i, 1) failed with i = " + i + " returned value = " + value;
var value = addArgsInt32AndNull(null, i);
if (value !== i)
throw "addArgsInt32AndNull(null, i) failed with i = " + i + " returned value = " + value;
var value = addArgsInt32AndNull(i, null);
if (value !== i)
throw "addArgsInt32AndNull(i, null) failed with i = " + i + " returned value = " + value;
var value = addArgsInt32AndNull(null, null);
if (value !== 0)
throw "addArgsInt32AndNull(null, null) failed with i = " + i + " returned value = " + value;
}
function testFallbackWithDouble() {
var value = addArgsNumberAndNull(Math.PI, Math.PI);
if (value !== 2 * Math.PI)
throw "addArgsNumberAndNull(Math.PI, Math.PI) failed with i = " + i + " returned value = " + value;
}
testFallbackWithDouble();
// Using full number + null for math.
function addArgsDoubleAndNull(a, b) {
return a + b;
}
noInline(addArgsDoubleAndNull);
for (var i = 0; i < 1e4; ++i) {
var value = addArgsDoubleAndNull(0.5, i);
if (value !== (i + 0.5))
throw "addArgsDoubleAndNull(0.5, i) failed with i = " + i + " returned value = " + value;
var value = addArgsDoubleAndNull(null, 0.1);
if (value !== 0.1)
throw "addArgsDoubleAndNull(null, i) failed with i = " + i + " returned value = " + value;
var value = addArgsDoubleAndNull(0.6, null);
if (value !== 0.6)
throw "addArgsDoubleAndNull(i, null) failed with i = " + i + " returned value = " + value;
}
function testFallbackWithObject() {
var value = addArgsDoubleAndNull(Math.PI, { valueOf: function() { return 5; }});
if (value !== 5 + Math.PI)
throw "addArgsDoubleAndNull(Math.PI, { valueOf: function() { return 5; }}) failed with i = " + i + " returned value = " + value;
}
testFallbackWithObject();
// Using only null
function addArgsOnlyNull(a, b) {
return a + b;
}
noInline(addArgsOnlyNull);
for (var i = 0; i < 1e4; ++i) {
var value = addArgsOnlyNull(null, null);
if (value !== 0)
throw "addArgsOnlyNull(null, null) failed with i = " + i + " returned value = " + value;
}
function testFallbackWithString() {
var value = addArgsOnlyNull("foo", "bar");
if (value !== "foobar")
throw "addArgsOnlyNull(\"foo\", \"bar\") failed with i = " + i + " returned value = " + value;
}
testFallbackWithString();