tor-browser

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

S15.1.3.1_A6_T1.js (3719B)


      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 use ToString
      6 esid: sec-decodeuri-encodeduri
      7 description: If Type(value) is Object, evaluate ToPrimitive(value, String)
      8 ---*/
      9 
     10 //CHECK#1
     11 var object = {
     12  valueOf: function() {
     13    return "%5E"
     14  }
     15 };
     16 if (decodeURI(object) !== "[object Object]") {
     17  throw new Test262Error('#1: var object = {valueOf: function() {return "%5E"}}; decodeURI(object) === [object Object]. Actual: ' + (decodeURI(object)));
     18 }
     19 
     20 //CHECK#2
     21 var object = {
     22  valueOf: function() {
     23    return ""
     24  },
     25  toString: function() {
     26    return "%5E"
     27  }
     28 };
     29 if (decodeURI(object) !== "^") {
     30  throw new Test262Error('#2: var object = {valueOf: function() {return ""}, toString: function() {return "%5E"}}; decodeURI(object) === "^". Actual: ' + (decodeURI(object)));
     31 }
     32 
     33 //CHECK#3
     34 var object = {
     35  valueOf: function() {
     36    return "%5E"
     37  },
     38  toString: function() {
     39    return {}
     40  }
     41 };
     42 if (decodeURI(object) !== "^") {
     43  throw new Test262Error('#3: var object = {valueOf: function() {return "%5E"}, toString: function() {return {}}}; decodeURI(object) === "^". Actual: ' + (decodeURI(object)));
     44 }
     45 
     46 //CHECK#4
     47 try {
     48  var object = {
     49    valueOf: function() {
     50      throw "error"
     51    },
     52    toString: function() {
     53      return "%5E"
     54    }
     55  };
     56  if (decodeURI(object) !== "^") {
     57    throw new Test262Error('#4.1: var object = {valueOf: function() {throw "error"}, toString: function() {return "%5E"}}; decodeURI(object) === "^". Actual: ' + (decodeURI(object)));
     58  }
     59 }
     60 catch (e) {
     61  if (e === "error") {
     62    throw new Test262Error('#4.2: var object = {valueOf: function() {throw "error"}, toString: function() {return "%5E"}}; decodeURI(object) not throw "error"');
     63  } else {
     64    throw new Test262Error('#4.3: var object = {valueOf: function() {throw "error"}, toString: function() {return "%5E"}}; decodeURI(object) not throw Error. Actual: ' + (e));
     65  }
     66 }
     67 
     68 //CHECK#5
     69 var object = {
     70  toString: function() {
     71    return "%5E"
     72  }
     73 };
     74 if (decodeURI(object) !== "^") {
     75  throw new Test262Error('#5: var object = {toString: function() {return "%5E"}}; decodeURI(object) === "^". Actual: ' + (decodeURI(object)));
     76 }
     77 
     78 //CHECK#6
     79 var object = {
     80  valueOf: function() {
     81    return {}
     82  },
     83  toString: function() {
     84    return "%5E"
     85  }
     86 }
     87 if (decodeURI(object) !== "^") {
     88  throw new Test262Error('#6: var object = {valueOf: function() {return {}}, toString: function() {return "%5E"}}; decodeURI(object) === "^". Actual: ' + (decodeURI(object)));
     89 }
     90 
     91 //CHECK#7
     92 try {
     93  var object = {
     94    valueOf: function() {
     95      return "%5E"
     96    },
     97    toString: function() {
     98      throw "error"
     99    }
    100  };
    101  decodeURI(object);
    102  throw new Test262Error('#7.1: var object = {valueOf: function() {return "%5E"}, toString: function() {throw "error"}}; decodeURI(object) throw "error". Actual: ' + (decodeURI(object)));
    103 }
    104 catch (e) {
    105  if (e !== "error") {
    106    throw new Test262Error('#7.2: var object = {valueOf: function() {return "%5E"}, toString: function() {throw "error"}}; decodeURI(object) throw "error". Actual: ' + (e));
    107  }
    108 }
    109 
    110 //CHECK#8
    111 try {
    112  var object = {
    113    valueOf: function() {
    114      return {}
    115    },
    116    toString: function() {
    117      return {}
    118    }
    119  };
    120  decodeURI(object);
    121  throw new Test262Error('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; decodeURI(object) throw TypeError. Actual: ' + (decodeURI(object)));
    122 }
    123 catch (e) {
    124  if ((e instanceof TypeError) !== true) {
    125    throw new Test262Error('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; decodeURI(object) throw TypeError. Actual: ' + (e));
    126  }
    127 }
    128 
    129 reportCompare(0, 0);