tor-browser

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

toprimitive-result-is-symbol-throws.js (929B)


      1 // Copyright (C) 2016 The V8 Project authors. All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 esid: sec-isfinite-number
      6 description: >
      7  Throws a TypeError if the result of calling number.@@toPrimitive is a symbol
      8 info: |
      9  isFinite (number)
     10 
     11  1. Let num be ? ToNumber(number).
     12 
     13  ToNumber ( argument )
     14 
     15  1. Let primValue be ? ToPrimitive(argument, hint Number).
     16  2. Return ? ToNumber(primValue).
     17 
     18  ToPrimitive ( input [ , PreferredType ] )
     19 
     20  [...]
     21  4. Let exoticToPrim be ? GetMethod(input, @@toPrimitive).
     22  5. If exoticToPrim is not undefined, then
     23    a. Let result be ? Call(exoticToPrim, input, « hint »).
     24    b. If Type(result) is not Object, return result.
     25 features: [Symbol.toPrimitive]
     26 ---*/
     27 
     28 var obj = {};
     29 obj[Symbol.toPrimitive] = function() {
     30  return Symbol.toPrimitive;
     31 };
     32 
     33 assert.throws(TypeError, function() {
     34  isFinite(obj);
     35 });
     36 
     37 reportCompare(0, 0);