Wed, 31 Dec 2014 07:53:36 +0100
Correct small whitespace inconsistency, lost while renaming variables.
1 // Copyright 2009 the Sputnik authors. All rights reserved.
2 // This code is governed by the BSD license found in the LICENSE file.
4 /**
5 * Result of String conversion from Object value is conversion
6 * from primitive value
7 *
8 * @path ch09/9.8/S9.8_A5_T1.js
9 * @description Some objects convert to String by explicit transformation
10 */
12 // CHECK#1
13 if (String(new Number()) !== "0") {
14 $ERROR('#1: String(new Number()) === "0". Actual: ' + (String(new Number())));
15 }
17 // CHECK#2
18 if (String(new Number(0)) !== "0") {
19 $ERROR('#2: String(new Number(0)) === "0". Actual: ' + (String(new Number(0))));
20 }
22 // CHECK#3
23 if (String(new Number(Number.NaN)) !== "NaN") {
24 $ERROR('#3: String(new Number(Number.NaN)) === Not-a-Number. Actual: ' + (String(new Number(Number.NaN))));
25 }
27 // CHECK#4
28 if (String(new Number(null)) !== "0") {
29 $ERROR('#4: String(new Number(null)) === "0". Actual: ' + (String(new Number(null))));
30 }
32 // CHECK#5
33 if (String(new Number(void 0)) !== "NaN") {
34 $ERROR('#5: String(new Number(void 0)) === Not-a-Number. Actual: ' + (String(new Number(void 0))));
35 }
37 // CHECK#6
38 if (String(new Number(true)) !== "1") {
39 $ERROR('#6: String(new Number(true)) === "1". Actual: ' + (String(new Number(true))));
40 }
42 // CHECK#7
43 if (String(new Number(false)) !== "0") {
44 $ERROR('#7: String(new Number(false)) === "0". Actual: ' + (String(new Number(false))));
45 }
47 // CHECK#8
48 if (String(new Boolean(true)) !== "true") {
49 $ERROR('#8: String(new Boolean(true)) === "true". Actual: ' + (String(new Boolean(true))));
50 }
52 // CHECK#9
53 if (String(new Boolean(false)) !== "false") {
54 $ERROR('#9: Number(new Boolean(false)) === "false". Actual: ' + (Number(new Boolean(false))));
55 }
57 // CHECK#10
58 if (String(new Array(2,4,8,16,32)) !== "2,4,8,16,32") {
59 $ERROR('#10: String(new Array(2,4,8,16,32)) === "2,4,8,16,32". Actual: ' + (String(new Array(2,4,8,16,32))));
60 }
62 // CHECK#11
63 var myobj1 = {
64 toNumber : function(){return 12345;},
65 toString : function(){return 67890;},
66 valueOf : function(){return "[object MyObj]";}
67 };
69 if (String(myobj1) !== "67890"){
70 $ERROR("#11: String(myobj) calls ToPrimitive with hint String");
71 }
73 // CHECK#12
74 var myobj2 = {
75 toNumber : function(){return 12345;},
76 toString : function(){return {}},
77 valueOf : function(){return "[object MyObj]";}
78 };
80 if (String(myobj2) !== "[object MyObj]"){
81 $ERROR("#12: String(myobj) calls ToPrimitive with hint String");
82 }
84 // CHECK#13
85 var myobj3 = {
86 toNumber : function(){return 12345;},
87 valueOf : function(){return "[object MyObj]";}
88 };
90 if (String(myobj3) !== "[object Object]"){
91 $ERROR("#13: String(myobj) calls ToPrimitive with hint String");
92 }