tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

bigint-errors.js (1991B)


      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: exponentiation operator ToNumeric with BigInt operands
      5 esid: sec-exp-operator-runtime-semantics-evaluation
      6 features: [BigInt, Symbol, Symbol.toPrimitive, computed-property-names, exponentiation]
      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);