tor-browser

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

S11.4.6_A2.2_T1.js (3132B)


      1 // Copyright 2009 the Sputnik authors.  All rights reserved.
      2 // This code is governed by the BSD license found in the LICENSE file.
      3 
      4 /*---
      5 info: Operator +x uses [[Default Value]]
      6 es5id: 11.4.6_A2.2_T1
      7 description: If Type(value) is Object, evaluate ToPrimitive(value, Number)
      8 ---*/
      9 
     10 //CHECK#1
     11 var object = {valueOf: function() {return 1}};
     12 if (+object !== 1) {
     13  throw new Test262Error('#1: var object = {valueOf: function() {return 1}}; +object === 1. Actual: ' + (+object));
     14 }
     15 
     16 //CHECK#2
     17 var object = {valueOf: function() {return 1}, toString: function() {return 0}};
     18 if (+object !== 1) {
     19  throw new Test262Error('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; +object === 1. Actual: ' + (+object));
     20 } 
     21 
     22 //CHECK#3
     23 var object = {valueOf: function() {return 1}, toString: function() {return {}}};
     24 if (+object !== 1) {
     25  throw new Test262Error('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; +object === 1. Actual: ' + (+object));
     26 }
     27 
     28 //CHECK#4
     29 try {
     30  var object = {valueOf: function() {return 1}, toString: function() {throw "error"}};
     31  if (+object !== 1) {
     32    throw new Test262Error('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; +object === 1. Actual: ' + (+object));
     33  }
     34 }
     35 catch (e) {
     36  if (e === "error") {
     37    throw new Test262Error('#4.2: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; +object not throw "error"');
     38  } else {
     39    throw new Test262Error('#4.3: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; +object not throw Error. Actual: ' + (e));
     40  }
     41 }
     42 
     43 //CHECK#5
     44 var object = {toString: function() {return 1}};
     45 if (+object !== 1) {
     46  throw new Test262Error('#5: var object = {toString: function() {return 1}}; +object === 1. Actual: ' + (+object));
     47 }
     48 
     49 //CHECK#6
     50 var object = {valueOf: function() {return {}}, toString: function() {return 1}}
     51 if (+object !== 1) {
     52  throw new Test262Error('#6: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; +object === 1. Actual: ' + (+object));
     53 }
     54 
     55 //CHECK#7
     56 try {
     57  var object = {valueOf: function() {throw "error"}, toString: function() {return 1}};
     58  +object;
     59  throw new Test262Error('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; +object throw "error". Actual: ' + (+object));
     60 }  
     61 catch (e) {
     62  if (e !== "error") {
     63    throw new Test262Error('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; +object throw "error". Actual: ' + (e));
     64  } 
     65 }
     66 
     67 //CHECK#8
     68 try {
     69  var object = {valueOf: function() {return {}}, toString: function() {return {}}};
     70  +object;
     71  throw new Test262Error('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; +object throw TypeError. Actual: ' + (+object));
     72 }  
     73 catch (e) {
     74  if ((e instanceof TypeError) !== true) {
     75    throw new Test262Error('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; +object throw TypeError. Actual: ' + (e));
     76  } 
     77 }
     78 
     79 reportCompare(0, 0);