bigint-errors.js (1960B)
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: modulus operator ToNumeric with BigInt operands 5 esid: sec-multiplicative-operators-runtime-semantics-evaluation 6 features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names] 7 ---*/ 8 assert.throws(TypeError, function() { 9 Symbol('1') % 1n; 10 }, 'Symbol("1") % 1n 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')) % 1n; 18 }, 'Object(Symbol("1")) % 1n 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 }) % 1n; 30 }, '({[Symbol.toPrimitive]: function() {return Symbol("1");}}) % 1n 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 }) % 1n; 46 }, '({valueOf: function() {return Symbol("1");}}) % 1n 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 }) % 1n; 62 }, '({toString: function() {return Symbol("1");}}) % 1n 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);