1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/tests/test262/ch11/11.4/11.4.7/S11.4.7_A2.2_T1.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,79 @@ 1.4 +// Copyright 2009 the Sputnik authors. All rights reserved. 1.5 +// This code is governed by the BSD license found in the LICENSE file. 1.6 + 1.7 +/** 1.8 + * Operator -x uses [[Default Value]] 1.9 + * 1.10 + * @path ch11/11.4/11.4.7/S11.4.7_A2.2_T1.js 1.11 + * @description If Type(value) is Object, evaluate ToPrimitive(value, Number) 1.12 + */ 1.13 + 1.14 +//CHECK#1 1.15 +var object = {valueOf: function() {return -1}}; 1.16 +if (-object !== 1) { 1.17 + $ERROR('#1: var object = {valueOf: function() {return -1}}; -object === 1. Actual: ' + (-object)); 1.18 +} 1.19 + 1.20 +//CHECK#2 1.21 +var object = {valueOf: function() {return -1}, toString: function() {return 0}}; 1.22 +if (-object !== 1) { 1.23 + $ERROR('#2: var object = {valueOf: function() {return -1}, toString: function() {return 0}}; -object === 1. Actual: ' + (-object)); 1.24 +} 1.25 + 1.26 +//CHECK#3 1.27 +var object = {valueOf: function() {return -1}, toString: function() {return {}}}; 1.28 +if (-object !== 1) { 1.29 + $ERROR('#3: var object = {valueOf: function() {return -1}, toString: function() {return {}}}; -object === 1. Actual: ' + (-object)); 1.30 +} 1.31 + 1.32 +//CHECK#4 1.33 +try { 1.34 + var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; 1.35 + if (-object !== 1) { 1.36 + $ERROR('#4.1: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object === 1. Actual: ' + (-object)); 1.37 + } 1.38 +} 1.39 +catch (e) { 1.40 + if (e === "error") { 1.41 + $ERROR('#4.2: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object not throw "error"'); 1.42 + } else { 1.43 + $ERROR('#4.3: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object not throw Error. Actual: ' + (e)); 1.44 + } 1.45 +} 1.46 + 1.47 +//CHECK#5 1.48 +var object = {toString: function() {return -1}}; 1.49 +if (-object !== 1) { 1.50 + $ERROR('#5.1: var object = {toString: function() {return -1}}; -object === 1. Actual: ' + (-object)); 1.51 +} 1.52 + 1.53 +//CHECK#6 1.54 +var object = {valueOf: function() {return {}}, toString: function() {return -1}} 1.55 +if (-object !== 1) { 1.56 + $ERROR('#6: var object = {valueOf: function() {return {}}, toString: function() {return -1}}; -object === 1. Actual: ' + (-object)); 1.57 +} 1.58 + 1.59 +//CHECK#7 1.60 +try { 1.61 + var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; 1.62 + -object; 1.63 + $ERROR('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; -object throw "error". Actual: ' + (-object)); 1.64 +} 1.65 +catch (e) { 1.66 + if (e !== "error") { 1.67 + $ERROR('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; -object throw "error". Actual: ' + (e)); 1.68 + } 1.69 +} 1.70 + 1.71 +//CHECK#8 1.72 +try { 1.73 + var object = {valueOf: function() {return {}}, toString: function() {return {}}}; 1.74 + -object; 1.75 + $ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; -object throw TypeError. Actual: ' + (-object)); 1.76 +} 1.77 +catch (e) { 1.78 + if ((e instanceof TypeError) !== true) { 1.79 + $ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; -object throw TypeError. Actual: ' + (e)); 1.80 + } 1.81 +} 1.82 +