test262/implementation-contributed/javascriptcore/stress/big-int-bitwise-xor-to-prim...

30 lines
727 B
JavaScript

//@ runBigIntEnabled
assert = {
sameValue: function (input, expected, message) {
if (input !== expected)
throw new Error(message);
}
};
let o = {
[Symbol.toPrimitive]: function() {
throw new Error("Bad");
}
};
try{
o ^ Symbol("2");
assert.sameValue(true, false, "Exception expected to be throwed, but executed without error");
} catch (e) {
assert.sameValue(e.message, "Bad", "Expected to throw Error('Bad'), but got: " + e);
}
try{
Symbol("2") ^ o;
assert.sameValue(true, false, "Exception expected to be throwed, but executed without error");
} catch (e) {
assert.sameValue(e instanceof TypeError, true, "Expected to throw TypeError, but got: " + e)
}