tor-browser

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

S9.8_A5_T1.js (2920B)


      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: |
      6    Result of String conversion from Object value is conversion
      7    from primitive value
      8 es5id: 9.8_A5_T1
      9 description: Some objects convert to String by explicit transformation
     10 ---*/
     11 
     12 // CHECK#1
     13 if (String(new Number()) !== "0") {
     14  throw new Test262Error('#1: String(new Number()) === "0". Actual: ' + (String(new Number())));
     15 }
     16 
     17 // CHECK#2
     18 if (String(new Number(0)) !== "0") {
     19  throw new Test262Error('#2: String(new Number(0)) === "0". Actual: ' + (String(new Number(0))));
     20 }
     21 
     22 // CHECK#3
     23 if (String(new Number(Number.NaN)) !== "NaN") {
     24  throw new Test262Error('#3: String(new Number(Number.NaN)) === Not-a-Number. Actual: ' + (String(new Number(Number.NaN))));
     25 }
     26 
     27 // CHECK#4
     28 if (String(new Number(null)) !== "0") {
     29  throw new Test262Error('#4: String(new Number(null)) === "0". Actual: ' + (String(new Number(null))));
     30 }
     31 
     32 // CHECK#5
     33 if (String(new Number(void 0)) !== "NaN") {
     34  throw new Test262Error('#5: String(new Number(void 0)) === Not-a-Number. Actual: ' + (String(new Number(void 0))));
     35 }
     36 
     37 // CHECK#6
     38 if (String(new Number(true)) !== "1") {
     39  throw new Test262Error('#6: String(new Number(true)) === "1". Actual: ' + (String(new Number(true))));
     40 }
     41 
     42 // CHECK#7
     43 if (String(new Number(false)) !== "0") {
     44  throw new Test262Error('#7: String(new Number(false)) === "0". Actual: ' + (String(new Number(false))));
     45 }
     46 
     47 // CHECK#8
     48 if (String(new Boolean(true)) !== "true") {
     49  throw new Test262Error('#8: String(new Boolean(true)) === "true". Actual: ' + (String(new Boolean(true))));
     50 }
     51 
     52 // CHECK#9
     53 if (String(new Boolean(false)) !== "false") {
     54  throw new Test262Error('#9: Number(new Boolean(false)) === "false". Actual: ' + (Number(new Boolean(false))));
     55 }
     56 
     57 // CHECK#10
     58 if (String(new Array(2, 4, 8, 16, 32)) !== "2,4,8,16,32") {
     59  throw new Test262Error('#10: String(new Array(2,4,8,16,32)) === "2,4,8,16,32". Actual: ' + (String(new Array(2, 4, 8, 16, 32))));
     60 }
     61 
     62 // CHECK#11
     63 var myobj1 = {
     64  toNumber: function() {
     65    return 12345;
     66  },
     67  toString: function() {
     68    return 67890;
     69  },
     70  valueOf: function() {
     71    return "[object MyObj]";
     72  }
     73 };
     74 
     75 if (String(myobj1) !== "67890") {
     76  throw new Test262Error("#11: String(myobj) calls ToPrimitive with hint String");
     77 }
     78 
     79 // CHECK#12
     80 var myobj2 = {
     81  toNumber: function() {
     82    return 12345;
     83  },
     84  toString: function() {
     85    return {}
     86  },
     87  valueOf: function() {
     88    return "[object MyObj]";
     89  }
     90 };
     91 
     92 if (String(myobj2) !== "[object MyObj]") {
     93  throw new Test262Error("#12: String(myobj) calls ToPrimitive with hint String");
     94 }
     95 
     96 // CHECK#13
     97 var myobj3 = {
     98  toNumber: function() {
     99    return 12345;
    100  },
    101  valueOf: function() {
    102    return "[object MyObj]";
    103  }
    104 };
    105 
    106 if (String(myobj3) !== "[object Object]") {
    107  throw new Test262Error("#13: String(myobj) calls ToPrimitive with hint String");
    108 }
    109 
    110 reportCompare(0, 0);