tor-browser

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

S11.4.5_A2.2_T1.js (4381B)


      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.5_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 - 1) {
     13  throw new Test262Error('#1: var object = {valueOf: function() {return 1}}; --object === 1 - 1. Actual: ' + (--object));
     14 } else {
     15  if (object !== 1 - 1) {
     16    throw new Test262Error('#1: var object = {valueOf: function() {return 1}}; --object; object === 1 - 1. Actual: ' + (object));
     17  }
     18 }
     19 
     20 //CHECK#2
     21 var object = {valueOf: function() {return 1}, toString: function() {return 0}};
     22 if (--object !== 1 - 1) {
     23  throw new Test262Error('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; --object === 1 - 1. Actual: ' + (--object));
     24 } else {
     25  if (object !== 1 - 1) {
     26    throw new Test262Error('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; --object; object === 1 - 1. Actual: ' + (object));
     27  }
     28 }
     29 
     30 //CHECK#3
     31 var object = {valueOf: function() {return 1}, toString: function() {return {}}};
     32 if (--object !== 1 - 1) {
     33  throw new Test262Error('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; --object === 1 - 1. Actual: ' + (--object));
     34 } else {
     35  if (object !== 1 - 1) {
     36    throw new Test262Error('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; --object; object === 1 - 1. Actual: ' + (object));
     37  }
     38 }
     39 
     40 //CHECK#4
     41 try {
     42  var object = {valueOf: function() {return 1}, toString: function() {throw "error"}};
     43  if (--object !== 1 - 1) {
     44    throw new Test262Error('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; --object === 1 - 1. Actual: ' + (--object));
     45  } else {
     46    if (object !== 1 - 1) {
     47      throw new Test262Error('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; --object; object === 1 - 1. Actual: ' + (object));
     48    }
     49  }
     50 }
     51 catch (e) {
     52  if (e === "error") {
     53    throw new Test262Error('#4.2: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; --object not throw "error"');
     54  } else {
     55    throw new Test262Error('#4.3: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; --object not throw Error. Actual: ' + (e));
     56  }
     57 }
     58 
     59 //CHECK#5
     60 var object = {toString: function() {return 1}};
     61 if (--object !== 1 - 1) {
     62  throw new Test262Error('#5.1: var object = {toString: function() {return 1}}; --object === 1 - 1. Actual: ' + (--object));
     63 } else {
     64  if (object !== 1 - 1) {
     65    throw new Test262Error('#5.2: var object = {toString: function() {return 1}}; --object; object === 1 - 1. Actual: ' + (object));
     66  }
     67 }
     68 
     69 
     70 //CHECK#6
     71 var object = {valueOf: function() {return {}}, toString: function() {return 1}}
     72 if (--object !== 1 - 1) {
     73  throw new Test262Error('#6.1: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; --object === 1 - 1. Actual: ' + (--object));
     74 } else {
     75  if (object !== 1 - 1) {
     76    throw new Test262Error('#6.2: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; --object; object === 1 - 1. Actual: ' + (object));
     77  }
     78 }
     79 
     80 //CHECK#7
     81 try {
     82  var object = {valueOf: function() {throw "error"}, toString: function() {return 1}};
     83  --object;
     84  throw new Test262Error('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; --object throw "error". Actual: ' + (--object));
     85 }  
     86 catch (e) {
     87  if (e !== "error") {
     88    throw new Test262Error('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; --object throw "error". Actual: ' + (e));
     89  } 
     90 }
     91 
     92 //CHECK#8
     93 try {
     94  var object = {valueOf: function() {return {}}, toString: function() {return {}}};
     95  --object;
     96  throw new Test262Error('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; --object throw TypeError. Actual: ' + (--object));
     97 }  
     98 catch (e) {
     99  if ((e instanceof TypeError) !== true) {
    100    throw new Test262Error('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; --object throw TypeError. Actual: ' + (e));
    101  } 
    102 }
    103 
    104 reportCompare(0, 0);