tor-browser

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

message-tostring-abrupt.js (1202B)


      1 // Copyright (C) 2019 Leo Balter. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 esid: sec-aggregate-error
      6 description: >
      7  Abrupt completions of ToString(message)
      8 info: |
      9  AggregateError ( errors, message )
     10 
     11  ...
     12  5. If message is not undefined, then
     13    a. Let msg be ? ToString(message).
     14    b. Perform ! CreateMethodProperty(O, "message", msg).
     15  6. Return O.
     16 features: [AggregateError, Symbol.toPrimitive]
     17 ---*/
     18 
     19 var case1 = {
     20  [Symbol.toPrimitive]() {
     21    throw new Test262Error();
     22  },
     23  toString() {
     24    throw 'toString called';
     25  },
     26  valueOf() {
     27    throw 'valueOf called';
     28  }
     29 };
     30 
     31 assert.throws(Test262Error, () => {
     32  new AggregateError([], case1);
     33 }, 'toPrimitive');
     34 
     35 var case2 = {
     36  [Symbol.toPrimitive]: undefined,
     37  toString() {
     38    throw new Test262Error();
     39  },
     40  valueOf() {
     41    throw 'valueOf called';
     42  }
     43 };
     44 
     45 assert.throws(Test262Error, () => {
     46  new AggregateError([], case2);
     47 }, 'toString');
     48 
     49 var case3 = {
     50  [Symbol.toPrimitive]: undefined,
     51  toString: undefined,
     52  valueOf() {
     53    throw new Test262Error();
     54  }
     55 };
     56 
     57 assert.throws(Test262Error, () => {
     58  new AggregateError([], case3);
     59 }, 'valueOf');
     60 
     61 reportCompare(0, 0);