//@ runBigIntEnabled | |
function assert(a) { | |
if (!a) | |
throw new Error("Bad!") | |
} | |
function assertTypeError(input) { | |
try { | |
let a = +input; | |
assert(false); | |
} catch(e) { | |
assert(e instanceof TypeError); | |
} | |
} | |
assertTypeError(10n); | |
assertTypeError(-10n); | |
assertTypeError(Object(10n)); | |
assertTypeError(Object(-10n)); | |
let obj = { | |
[Symbol.toPrimitive]: function() { | |
return 1n; | |
}, | |
valueOf: function() { | |
throw new Error("Should never be called"); | |
}, | |
toString: function() { | |
throw new Error("Should never be called"); | |
} | |
}; | |
assertTypeError(obj); | |
obj = { | |
valueOf: function() { | |
return 1n; | |
}, | |
toString: function() { | |
throw new Error("Should never be called"); | |
} | |
}; | |
assertTypeError(obj); | |
obj = { | |
toString: function() { | |
return 1n; | |
} | |
}; | |
assertTypeError(obj); | |