bigint-errors.js (1987B)
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: right-shift operator ToNumeric with BigInt operands 5 esid: sec-signed-right-shift-operator-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);