tor-browser

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

S15.1.2.3_A1_T7.js (3531B)


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