test262/implementation-contributed/javascriptcore/stress/big-int-addition-to-primitive.js
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

40 lines
826 B
JavaScript

//@ runBigIntEnabled
function assert(a) {
if (!a)
throw new Error("Bad assertion");
}
assert.sameValue = function (input, expected, message) {
if (input !== expected)
throw new Error(message);
}
function testAdd(x, y, z) {
assert.sameValue(x + y, z, x + " + " + y + " = " + z);
assert.sameValue(y + x, z, y + " + " + x + " = " + z);
}
let o = {
[Symbol.toPrimitive]: function () { return 300000000000000n; }
}
testAdd(500000000000438n, o, 800000000000438n);
o.valueOf = function () {
throw new Error("Should never execute it");
};
testAdd(700000000000438n, o, 1000000000000438n);
o.toString = function () {
throw new Error("Should never execute it");
};
testAdd(700000000000438n, o, 1000000000000438n);
delete o.valueOf;
testAdd(700000000000438n, o, 1000000000000438n);