js/src/tests/test262/ch11/11.4/11.4.6/S11.4.6_A2.2_T1.js

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

mercurial