//@ 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);