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