Wed, 31 Dec 2014 13:27:57 +0100
Ignore runtime configuration files generated during quality assurance.
1 // Copyright 2009 the Sputnik authors. All rights reserved.
2 // This code is governed by the BSD license found in the LICENSE file.
4 /**
5 * Operator x-- uses [[Default Value]]
6 *
7 * @path ch11/11.3/11.3.2/S11.3.2_A2.2_T1.js
8 * @description If Type(value) is Object, evaluate ToPrimitive(value, Number)
9 */
11 //CHECK#1
12 var object = {valueOf: function() {return 1}};
13 var y = object--;
14 if (y !== 1) {
15 $ERROR('#1: var object = {valueOf: function() {return 1}}; var y = object--; y === 1. Actual: ' + (y));
16 } else {
17 if (object !== 1 - 1) {
18 $ERROR('#1: var object = {valueOf: function() {return 1}}; object--; object === 1 - 1. Actual: ' + (object));
19 }
20 }
22 //CHECK#2
23 var object = {valueOf: function() {return 1}, toString: function() {return 0}};
24 var y = object--;
25 if (y !== 1) {
26 $ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; var y = object--; y === 1. Actual: ' + (y));
27 } else {
28 if (object !== 1 - 1) {
29 $ERROR('#2: var object = {valueOf: function() {return 1}, toString: function() {return 0}}; object--; object === 1 - 1. Actual: ' + (object));
30 }
31 }
33 //CHECK#3
34 var object = {valueOf: function() {return 1}, toString: function() {return {}}};
35 var y = object--;
36 if (y !== 1) {
37 $ERROR('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; var y = object--; y === 1. Actual: ' + (y));
38 } else {
39 if (object !== 1 - 1) {
40 $ERROR('#3: var object = {valueOf: function() {return 1}, toString: function() {return {}}}; object--; object === 1 - 1. Actual: ' + (object));
41 }
42 }
44 //CHECK#4
45 try {
46 var object = {valueOf: function() {return 1}, toString: function() {throw "error"}};
47 var y = object--;
48 if (y !== 1) {
49 $ERROR('#4.1: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; var y = object--; y === 1. Actual: ' + (y));
50 } else {
51 if (object !== 1 - 1) {
52 $ERROR('#4.2: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; object--; object === 1 - 1. Actual: ' + (object));
53 }
54 }
55 }
56 catch (e) {
57 if (e === "error") {
58 $ERROR('#4.3: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; y not throw "error"');
59 } else {
60 $ERROR('#4.4: var object = {valueOf: function() {return 1}, toString: function() {throw "error"}}; y not throw Error. Actual: ' + (e));
61 }
62 }
64 //CHECK#5
65 var object = {toString: function() {return 1}};
66 var y = object--;
67 if (y !== 1) {
68 $ERROR('#5.1: var object = {toString: function() {return 1}}; var y = object--; y === 1. Actual: ' + (y));
69 } else {
70 if (object !== 1 - 1) {
71 $ERROR('#5.2: var object = {toString: function() {return 1}}; object--; object === 1 - 1. Actual: ' + (object));
72 }
73 }
76 //CHECK#6
77 var object = {valueOf: function() {return {}}, toString: function() {return 1}}
78 var y = object--;
79 if (y !== 1) {
80 $ERROR('#6.1: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; var y = object--; y === 1. Actual: ' + (y));
81 } else {
82 if (object !== 1 - 1) {
83 $ERROR('#6.2: var object = {valueOf: function() {return {}}, toString: function() {return 1}}; object--; object === 1 - 1. Actual: ' + (object));
84 }
85 }
87 //CHECK#7
88 try {
89 var object = {valueOf: function() {throw "error"}, toString: function() {return 1}};
90 var y = object--;
91 $ERROR('#7.1: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; object-- throw "error". Actual: ' + (y));
92 }
93 catch (e) {
94 if (e !== "error") {
95 $ERROR('#7.2: var object = {valueOf: function() {throw "error"}, toString: function() {return 1}}; object-- throw "error". Actual: ' + (e));
96 }
97 }
99 //CHECK#8
100 try {
101 var object = {valueOf: function() {return {}}, toString: function() {return {}}};
102 var y = object--;
103 $ERROR('#8.1: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; object-- throw TypeError. Actual: ' + (y));
104 }
105 catch (e) {
106 if ((e instanceof TypeError) !== true) {
107 $ERROR('#8.2: var object = {valueOf: function() {return {}}, toString: function() {return {}}}; object-- throw TypeError. Actual: ' + (e));
108 }
109 }