js/src/tests/test262/ch11/11.4/11.4.7/S11.4.7_A2.2_T1.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 // Copyright 2009 the Sputnik authors. All rights reserved.
michael@0 2 // This code is governed by the BSD license found in the LICENSE file.
michael@0 3
michael@0 4 /**
michael@0 5 * Operator -x uses [[Default Value]]
michael@0 6 *
michael@0 7 * @path ch11/11.4/11.4.7/S11.4.7_A2.2_T1.js
michael@0 8 * @description If Type(value) is Object, evaluate ToPrimitive(value, Number)
michael@0 9 */
michael@0 10
michael@0 11 //CHECK#1
michael@0 12 var object = {valueOf: function() {return -1}};
michael@0 13 if (-object !== 1) {
michael@0 14 $ERROR('#1: var object = {valueOf: function() {return -1}}; -object === 1. Actual: ' + (-object));
michael@0 15 }
michael@0 16
michael@0 17 //CHECK#2
michael@0 18 var object = {valueOf: function() {return -1}, toString: function() {return 0}};
michael@0 19 if (-object !== 1) {
michael@0 20 $ERROR('#2: var object = {valueOf: function() {return -1}, toString: function() {return 0}}; -object === 1. Actual: ' + (-object));
michael@0 21 }
michael@0 22
michael@0 23 //CHECK#3
michael@0 24 var object = {valueOf: function() {return -1}, toString: function() {return {}}};
michael@0 25 if (-object !== 1) {
michael@0 26 $ERROR('#3: var object = {valueOf: function() {return -1}, toString: function() {return {}}}; -object === 1. Actual: ' + (-object));
michael@0 27 }
michael@0 28
michael@0 29 //CHECK#4
michael@0 30 try {
michael@0 31 var object = {valueOf: function() {return -1}, toString: function() {throw "error"}};
michael@0 32 if (-object !== 1) {
michael@0 33 $ERROR('#4.1: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object === 1. Actual: ' + (-object));
michael@0 34 }
michael@0 35 }
michael@0 36 catch (e) {
michael@0 37 if (e === "error") {
michael@0 38 $ERROR('#4.2: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object not throw "error"');
michael@0 39 } else {
michael@0 40 $ERROR('#4.3: var object = {valueOf: function() {return -1}, toString: function() {throw "error"}}; -object not throw Error. Actual: ' + (e));
michael@0 41 }
michael@0 42 }
michael@0 43
michael@0 44 //CHECK#5
michael@0 45 var object = {toString: function() {return -1}};
michael@0 46 if (-object !== 1) {
michael@0 47 $ERROR('#5.1: var object = {toString: function() {return -1}}; -object === 1. Actual: ' + (-object));
michael@0 48 }
michael@0 49
michael@0 50 //CHECK#6
michael@0 51 var object = {valueOf: function() {return {}}, toString: function() {return -1}}
michael@0 52 if (-object !== 1) {
michael@0 53 $ERROR('#6: var object = {valueOf: function() {return {}}, toString: function() {return -1}}; -object === 1. Actual: ' + (-object));
michael@0 54 }
michael@0 55
michael@0 56 //CHECK#7
michael@0 57 try {
michael@0 58 var object = {valueOf: function() {throw "error"}, toString: function() {return -1}};
michael@0 59 -object;
michael@0 60 $ERROR('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; -object throw "error". Actual: ' + (-object));
michael@0 61 }
michael@0 62 catch (e) {
michael@0 63 if (e !== "error") {
michael@0 64 $ERROR('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return -1}}; -object throw "error". Actual: ' + (e));
michael@0 65 }
michael@0 66 }
michael@0 67
michael@0 68 //CHECK#8
michael@0 69 try {
michael@0 70 var object = {valueOf: function() {return {}}, toString: function() {return {}}};
michael@0 71 -object;
michael@0 72 $ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; -object throw TypeError. Actual: ' + (-object));
michael@0 73 }
michael@0 74 catch (e) {
michael@0 75 if ((e instanceof TypeError) !== true) {
michael@0 76 $ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; -object throw TypeError. Actual: ' + (e));
michael@0 77 }
michael@0 78 }
michael@0 79

mercurial