tor-browser

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

S9.8_A5_T2.js (2969B)


      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_T2
      9 description: Some objects convert to String by implicit transformation
     10 ---*/
     11 
     12 // CHECK#1
     13 if (new Number() + "" !== "0") {
     14  throw new Test262Error('#1: new Number() + "" === "0". Actual: ' + (new Number() + ""));
     15 }
     16 
     17 // CHECK#2
     18 if (new Number(0) + "" !== "0") {
     19  throw new Test262Error('#2: new Number(0) + "" === "0". Actual: ' + (new Number(0) + ""));
     20 }
     21 
     22 // CHECK#3
     23 if (new Number(Number.NaN) + "" !== "NaN") {
     24  throw new Test262Error('#3: new Number(Number.NaN) + "" === "NaN". Actual: ' + (new Number(Number.NaN) + ""));
     25 }
     26 
     27 // CHECK#4
     28 if (new Number(null) + "" !== "0") {
     29  throw new Test262Error('#4: new Number(null) + "" === "0". Actual: ' + (new Number(null) + "")); 
     30 }
     31 
     32 // CHECK#5
     33 if (new Number(void 0) + "" !== "NaN") {
     34  throw new Test262Error('#5: new Number(void 0) + "" === "NaN. Actual: ' + (new Number(void 0) + ""));
     35 }
     36 
     37 // CHECK#6
     38 if (new Number(true) + "" !== "1") {
     39  throw new Test262Error('#6: new Number(true) + "" === "1". Actual: ' + (new Number(true) + ""));
     40 }
     41 
     42 // CHECK#7
     43 if (new Number(false) + "" !== "0") {
     44  throw new Test262Error('#7: new Number(false) + "" === "0". Actual: ' + (new Number(false) + ""));
     45 }
     46 
     47 // CHECK#8
     48 if (new Boolean(true) + "" !== "true") {
     49  throw new Test262Error('#8: new Boolean(true) + "" === "true". Actual: ' + (new Boolean(true) + ""));
     50 }
     51 
     52 // CHECK#9
     53 if (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 (new Array(2,4,8,16,32) + "" !== "2,4,8,16,32") {
     59  throw new Test262Error('#10: new Array(2,4,8,16,32) + "" === "2,4,8,16,32". Actual: ' + (new Array(2,4,8,16,32) + ""));
     60 }
     61 
     62 // CHECK#11
     63 var myobj1 = {
     64                toNumber : function(){return 12345;}, 
     65                toString : function(){return 67890;},
     66                valueOf  : function(){return "[object MyObj]";} 
     67            };
     68 
     69 if (myobj1 + "" !== "[object MyObj]"){
     70  throw new Test262Error('#11: myobj1 + "" calls ToPrimitive with hint Number. Exptected: "[object MyObj]". Actual: ' + (myobj1 + ""));
     71 }
     72 
     73 // CHECK#12
     74 var myobj2 = {
     75                toNumber : function(){return 12345;},
     76                toString : function(){return 67890}, 
     77                valueOf  : function(){return {}} 
     78            };
     79 
     80 if (myobj2 + "" !== "67890"){
     81  throw new Test262Error('#12: myobj2 + "" calls ToPrimitive with hint Number. Exptected: "67890". Actual: ' + (myobj2 + ""));
     82 }
     83 
     84 // CHECK#13
     85 var myobj3 = {
     86                toNumber : function(){return 12345;} 
     87            };
     88 
     89 if (myobj3 + "" !== "[object Object]"){
     90  throw new Test262Error('#13: myobj3 + "" calls ToPrimitive with hint Number.  Exptected: "[object Object]". Actual: ' + (myobj3 + ""));
     91 }
     92 
     93 reportCompare(0, 0);