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 * y uses [[Default Value]]
6 *
7 * @path ch11/11.5/11.5.1/S11.5.1_A2.2_T1.js
8 * @description If Type(value) is Object, evaluate ToPrimitive(value, Number)
9 */
11 //CHECK#1
12 if ({valueOf: function() {return 1}} * 1 !== 1) {
13 $ERROR('#1: {valueOf: function() {return 1}} * 1 === 1. Actual: ' + ({valueOf: function() {return 1}} * 1));
14 }
16 //CHECK#2
17 if ({valueOf: function() {return 1}, toString: function() {return 0}} * 1 !== 1) {
18 $ERROR('#2: {valueOf: function() {return 1}, toString: function() {return 0}} * 1 === 1. Actual: ' + ({valueOf: function() {return 1}, toString: function() {return 0}} * 1));
19 }
21 //CHECK#3
22 if ({valueOf: function() {return 1}, toString: function() {return {}}} * 1 !== 1) {
23 $ERROR('#3: {valueOf: function() {return 1}, toString: function() {return {}}} * 1 === 1. Actual: ' + ({valueOf: function() {return 1}, toString: function() {return {}}} * 1));
24 }
26 //CHECK#4
27 try {
28 if ({valueOf: function() {return 1}, toString: function() {throw "error"}} * 1 !== 1) {
29 $ERROR('#4.1: {valueOf: function() {return 1}, toString: function() {throw "error"}} * 1 === 1. Actual: ' + ({valueOf: function() {return 1}, toString: function() {throw "error"}} * 1));
30 }
31 }
32 catch (e) {
33 if (e === "error") {
34 $ERROR('#4.2: {valueOf: function() {return 1}, toString: function() {throw "error"}} * 1 not throw "error"');
35 } else {
36 $ERROR('#4.3: {valueOf: function() {return 1}, toString: function() {throw "error"}} * 1 not throw Error. Actual: ' + (e));
37 }
38 }
40 //CHECK#5
41 if (1 * {toString: function() {return 1}} !== 1) {
42 $ERROR('#5: 1 * {toString: function() {return 1}} === 1. Actual: ' + (1 * {toString: function() {return 1}}));
43 }
45 //CHECK#6
46 if (1 * {valueOf: function() {return {}}, toString: function() {return 1}} !== 1) {
47 $ERROR('#6: 1 * {valueOf: function() {return {}}, toString: function() {return 1}} === 1. Actual: ' + (1 * {valueOf: function() {return {}}, toString: function() {return 1}}));
48 }
50 //CHECK#7
51 try {
52 1 * {valueOf: function() {throw "error"}, toString: function() {return 1}};
53 $ERROR('#7.1: 1 * {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (1 * {valueOf: function() {throw "error"}, toString: function() {return 1}}));
54 }
55 catch (e) {
56 if (e !== "error") {
57 $ERROR('#7.2: 1 * {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (e));
58 }
59 }
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 }