tor-browser

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

S11.3.1_A2.2_T1.js (4450B)


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