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