S11.4.7_A2.2_T1.js (3151B)
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 -x uses [[Default Value]] 6 es5id: 11.4.7_A2.2_T1 7 description: If Type(value) is Object, evaluate ToPrimitive(value, Number) 8 ---*/ 9 10 //CHECK#1 11 var object = {valueOf: function() {return -1}}; 12 if (-object !== 1) { 13 throw new Test262Error('#1: var object = {valueOf: function() {return -1}}; -object === 1. Actual: ' + (-object)); 14 } 15 16 //CHECK#2 17 var object = {valueOf: function() {return -1}, toString: function() {return 0}}; 18 if (-object !== 1) { 19 throw new Test262Error('#2: var object = {valueOf: function() {return -1}, toString: function() {return 0}}; -object === 1. Actual: ' + (-object)); 20 } 21 22 //CHECK#3 23 var object = {valueOf: function() {return -1}, toString: function() {return {}}}; 24 if (-object !== 1) { 25 throw new Test262Error('#3: var object = {valueOf: function() {return -1}, toString: function() {return {}}}; -object === 1. Actual: ' + (-object)); 26 } 27 28 //CHECK#4 29 try { 30 var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; 31 if (-object !== 1) { 32 throw new Test262Error('#4.1: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object === 1. Actual: ' + (-object)); 33 } 34 } 35 catch (e) { 36 if (e === "error") { 37 throw new Test262Error('#4.2: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object not throw "error"'); 38 } else { 39 throw new Test262Error('#4.3: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object not throw Error. Actual: ' + (e)); 40 } 41 } 42 43 //CHECK#5 44 var object = {toString: function() {return -1}}; 45 if (-object !== 1) { 46 throw new Test262Error('#5.1: var object = {toString: function() {return -1}}; -object === 1. Actual: ' + (-object)); 47 } 48 49 //CHECK#6 50 var object = {valueOf: function() {return {}}, toString: function() {return -1}} 51 if (-object !== 1) { 52 throw new Test262Error('#6: var object = {valueOf: function() {return {}}, toString: function() {return -1}}; -object === 1. Actual: ' + (-object)); 53 } 54 55 //CHECK#7 56 try { 57 var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; 58 -object; 59 throw new Test262Error('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; -object throw "error". Actual: ' + (-object)); 60 } 61 catch (e) { 62 if (e !== "error") { 63 throw new Test262Error('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; -object throw "error". Actual: ' + (e)); 64 } 65 } 66 67 //CHECK#8 68 try { 69 var object = {valueOf: function() {return {}}, toString: function() {return {}}}; 70 -object; 71 throw new Test262Error('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; -object throw TypeError. Actual: ' + (-object)); 72 } 73 catch (e) { 74 if ((e instanceof TypeError) !== true) { 75 throw new Test262Error('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; -object throw TypeError. Actual: ' + (e)); 76 } 77 } 78 79 reportCompare(0, 0);