js/src/tests/test262/ch11/11.5/11.5.3/S11.5.3_A2.2_T1.js

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

mercurial