bigint-errors.js (1964B)
1 // Copyright (C) 2017 Josh Wolfe. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 description: bitwise-and operator ToNumeric with BigInt operands 5 esid: sec-binary-bitwise-operators-runtime-semantics-evaluation 6 features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] 7 ---*/ 8 assert.throws(TypeError, function() { 9 Symbol('1') & 0n; 10 }, 'Symbol("1") & 0n throws TypeError'); 11 12 assert.throws(TypeError, function() { 13 0n & Symbol('1'); 14 }, '0n & Symbol("1") throws TypeError'); 15 16 assert.throws(TypeError, function() { 17 Object(Symbol('1')) & 0n; 18 }, 'Object(Symbol("1")) & 0n throws TypeError'); 19 20 assert.throws(TypeError, function() { 21 0n & Object(Symbol('1')); 22 }, '0n & Object(Symbol("1")) throws TypeError'); 23 24 assert.throws(TypeError, function() { 25 ({ 26 [Symbol.toPrimitive]: function() { 27 return Symbol('1'); 28 } 29 }) & 0n; 30 }, '({[Symbol.toPrimitive]: function() {return Symbol("1");}}) & 0n throws TypeError'); 31 32 assert.throws(TypeError, function() { 33 0n & { 34 [Symbol.toPrimitive]: function() { 35 return Symbol('1'); 36 } 37 }; 38 }, '0n & {[Symbol.toPrimitive]: function() {return Symbol("1");}} throws TypeError'); 39 40 assert.throws(TypeError, function() { 41 ({ 42 valueOf: function() { 43 return Symbol('1'); 44 } 45 }) & 0n; 46 }, '({valueOf: function() {return Symbol("1");}}) & 0n throws TypeError'); 47 48 assert.throws(TypeError, function() { 49 0n & { 50 valueOf: function() { 51 return Symbol('1'); 52 } 53 }; 54 }, '0n & {valueOf: function() {return Symbol("1");}} throws TypeError'); 55 56 assert.throws(TypeError, function() { 57 ({ 58 toString: function() { 59 return Symbol('1'); 60 } 61 }) & 0n; 62 }, '({toString: function() {return Symbol("1");}}) & 0n throws TypeError'); 63 64 assert.throws(TypeError, function() { 65 0n & { 66 toString: function() { 67 return Symbol('1'); 68 } 69 }; 70 }, '0n & {toString: function() {return Symbol("1");}} throws TypeError'); 71 72 reportCompare(0, 0);