summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch11/11.10/11.10.2
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/ch11/11.10/11.10.2')
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A1.js61
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T1.js44
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T2.js21
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T3.js21
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.2_T1.js71
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.3_T1.js26
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T1.js24
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T2.js26
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T3.js29
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.1.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.2.js31
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.3.js40
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.4.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.5.js31
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.1.js50
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.2.js60
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.3.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.4.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.5.js50
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.6.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.7.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.8.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.9.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/browser.js0
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.2/shell.js0
25 files changed, 825 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A1.js
new file mode 100644
index 000000000..6798a9ea4
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A1.js
@@ -0,0 +1,61 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * White Space and Line Terminator between BitwiseXORExpression and "^" or between "^" and BitwiseANDExpression are allowed
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A1.js
+ * @description The check uses eval
+ */
+
+//CHECK#1
+if ((eval("1\u0009^\u00091")) !== 0) {
+ $ERROR('#1: (1\\u0009^\\u00091) === 0');
+}
+
+//CHECK#2
+if ((eval("1\u000B^\u000B1")) !== 0) {
+ $ERROR('#2: (1\\u000B^\\u000B1) === 0');
+}
+
+//CHECK#3
+if ((eval("1\u000C^\u000C1")) !== 0) {
+ $ERROR('#3: (1\\u000C^\\u000C1) === 0');
+}
+
+//CHECK#4
+if ((eval("1\u0020^\u00201")) !== 0) {
+ $ERROR('#4: (1\\u0020^\\u00201) === 0');
+}
+
+//CHECK#5
+if ((eval("1\u00A0^\u00A01")) !== 0) {
+ $ERROR('#5: (1\\u00A0^\\u00A01) === 0');
+}
+
+//CHECK#6
+if ((eval("1\u000A^\u000A1")) !== 0) {
+ $ERROR('#6: (1\\u000A^\\u000A1) === 0');
+}
+
+//CHECK#7
+if ((eval("1\u000D^\u000D1")) !== 0) {
+ $ERROR('#7: (1\\u000D^\\u000D1) === 0');
+}
+
+//CHECK#8
+if ((eval("1\u2028^\u20281")) !== 0) {
+ $ERROR('#8: (1\\u2028^\\u20281) === 0');
+}
+
+//CHECK#9
+if ((eval("1\u2029^\u20291")) !== 0) {
+ $ERROR('#9: (1\\u2029^\\u20291) === 0');
+}
+
+
+//CHECK#10
+if ((eval("1\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029^\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20291")) !== 0) {
+ $ERROR('#10: (1\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029^\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20291) === 0');
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T1.js
new file mode 100644
index 000000000..f4aad4a19
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T1.js
@@ -0,0 +1,44 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y uses GetValue
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.1_T1.js
+ * @description Either Type is not Reference or GetBase is not null
+ */
+
+//CHECK#1
+if ((1 ^ 1) !== 0) {
+ $ERROR('#1: (1 ^ 1) === 0. Actual: ' + ((1 ^ 1)));
+}
+
+//CHECK#2
+var x = 1;
+if ((x ^ 1) !== 0) {
+ $ERROR('#2: var x = 1; (x ^ 1) === 0. Actual: ' + ((x ^ 1)));
+}
+
+//CHECK#3
+var y = 1;
+if ((1 ^ y) !== 0) {
+ $ERROR('#3: var y = 1; (1 ^ y) === 0. Actual: ' + ((1 ^ y)));
+}
+
+//CHECK#4
+var x = 1;
+var y = 1;
+if ((x ^ y) !== 0) {
+ $ERROR('#4: var x = 1; var y = 1; (x ^ y) === 0. Actual: ' + ((x ^ y)));
+}
+
+//CHECK#5
+var objectx = new Object();
+var objecty = new Object();
+objectx.prop = 1;
+objecty.prop = 1;
+if ((objectx.prop ^ objecty.prop) !== 0) {
+ $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = 1; objecty.prop = 1; (objectx.prop ^ objecty.prop) === 0. Actual: ' + ((objectx.prop ^ objecty.prop)));
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T2.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T2.js
new file mode 100644
index 000000000..503ac9678
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T2.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y uses GetValue
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.1_T2.js
+ * @description If GetBase(x) is null, throw ReferenceError
+ */
+
+//CHECK#1
+try {
+ x ^ 1;
+ $ERROR('#1.1: x ^ 1 throw ReferenceError. Actual: ' + (x ^ 1));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: x ^ 1 throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T3.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T3.js
new file mode 100644
index 000000000..6c5969614
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.1_T3.js
@@ -0,0 +1,21 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y uses GetValue
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.1_T3.js
+ * @description If GetBase(y) is null, throw ReferenceError
+ */
+
+//CHECK#1
+try {
+ 1 ^ y;
+ $ERROR('#1.1: 1 ^ y throw ReferenceError. Actual: ' + (1 ^ y));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: 1 ^ y throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.2_T1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.2_T1.js
new file mode 100644
index 000000000..0a00ada6d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.2_T1.js
@@ -0,0 +1,71 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y uses [[Default Value]]
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.2_T1.js
+ * @description If Type(value) is Object, evaluate ToPrimitive(value, Number)
+ */
+
+//CHECK#1
+if (({valueOf: function() {return 1}} ^ 1) !== 0) {
+ $ERROR('#1: ({valueOf: function() {return 1}} ^ 1) === 0. Actual: ' + (({valueOf: function() {return 1}} ^ 1)));
+}
+
+//CHECK#2
+if (({valueOf: function() {return 1}, toString: function() {return 0}} ^ 1) !== 0) {
+ $ERROR('#2: ({valueOf: function() {return 1}, toString: function() {return 0}} ^ 1) === 0. Actual: ' + (({valueOf: function() {return 1}, toString: function() {return 0}} ^ 1)));
+}
+
+//CHECK#3
+if (({valueOf: function() {return 1}, toString: function() {return {}}} ^ 1) !== 0) {
+ $ERROR('#3: ({valueOf: function() {return 1}, toString: function() {return {}}} ^ 1) === 0. Actual: ' + (({valueOf: function() {return 1}, toString: function() {return {}}} ^ 1)));
+}
+
+//CHECK#4
+try {
+ if (({valueOf: function() {return 1}, toString: function() {throw "error"}} ^ 1) !== 0) {
+ $ERROR('#4.1: ({valueOf: function() {return 1}, toString: function() {throw "error"}} ^ 1) === 0. Actual: ' + (({valueOf: function() {return 1}, toString: function() {throw "error"}} ^ 1)));
+ }
+}
+catch (e) {
+ if (e === "error") {
+ $ERROR('#4.2: ({valueOf: function() {return 1}, toString: function() {throw "error"}} ^ 1) not throw "error"');
+ } else {
+ $ERROR('#4.3: ({valueOf: function() {return 1}, toString: function() {throw "error"}} ^ 1) not throw Error. Actual: ' + (e));
+ }
+}
+
+//CHECK#5
+if ((1 ^ {toString: function() {return 1}}) !== 0) {
+ $ERROR('#5: (1 ^ {toString: function() {return 1}}) === 0. Actual: ' + ((1 ^ {toString: function() {return 1}})));
+}
+
+//CHECK#6
+if ((1 ^ {valueOf: function() {return {}}, toString: function() {return 1}}) !== 0) {
+ $ERROR('#6: (1 ^ {valueOf: function() {return {}}, toString: function() {return 1}}) === 0. Actual: ' + ((1 ^ {valueOf: function() {return {}}, toString: function() {return 1}})));
+}
+
+//CHECK#7
+try {
+ 1 ^ {valueOf: function() {throw "error"}, toString: function() {return 1}};
+ $ERROR('#7.1: 1 ^ {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (1 ^ {valueOf: function() {throw "error"}, toString: function() {return 1}}));
+}
+catch (e) {
+ if (e !== "error") {
+ $ERROR('#7.2: 1 ^ {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (e));
+ }
+}
+
+//CHECK#8
+try {
+ 1 ^ {valueOf: function() {return {}}, toString: function() {return {}}};
+ $ERROR('#8.1: 1 ^ {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (1 ^ {valueOf: function() {return {}}, toString: function() {return {}}}));
+}
+catch (e) {
+ if ((e instanceof TypeError) !== true) {
+ $ERROR('#8.2: 1 ^ {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.3_T1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.3_T1.js
new file mode 100644
index 000000000..cbf3009a1
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.3_T1.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * ToInt32(first expression) is called first, and then ToInt32(second expression)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.3_T1.js
+ * @description Checking with "throw"
+ */
+
+//CHECK#1
+var x = { valueOf: function () { throw "x"; } };
+var y = { valueOf: function () { throw "y"; } };
+try {
+ x ^ y;
+ $ERROR('#1.1: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x ^ y throw "x". Actual: ' + (x ^ y));
+} catch (e) {
+ if (e === "y") {
+ $ERROR('#1.2: ToInt32(first expression) is called first, and then ToInt32(second expression)');
+ } else {
+ if (e !== "x") {
+ $ERROR('#1.3: var x = { valueOf: function () { throw "x"; } }; var y = { valueOf: function () { throw "y"; } }; x ^ y throw "x". Actual: ' + (e));
+ }
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T1.js
new file mode 100644
index 000000000..e1af1b864
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T1.js
@@ -0,0 +1,24 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * First expression is evaluated first, and then second expression
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.4_T1.js
+ * @description Checking with "="
+ */
+
+//CHECK#1
+var x = 1;
+if (((x = 0) ^ x) !== 0) {
+ $ERROR('#1: var x = 0; ((x = 1) ^ x) === 0. Actual: ' + (((x = 1) ^ x)));
+}
+
+//CHECK#2
+var x = 0;
+if ((x ^ (x = 1)) !== 1) {
+ $ERROR('#2: var x = 0; (x ^ (x = 1)) === 1. Actual: ' + ((x ^ (x = 1))));
+}
+
+
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T2.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T2.js
new file mode 100644
index 000000000..5cc5a1540
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T2.js
@@ -0,0 +1,26 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * First expression is evaluated first, and then second expression
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.4_T2.js
+ * @description Checking with "throw"
+ */
+
+//CHECK#1
+var x = function () { throw "x"; };
+var y = function () { throw "y"; };
+try {
+ x() ^ y();
+ $ERROR('#1.1: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() ^ y() throw "x". Actual: ' + (x() ^ y()));
+} catch (e) {
+ if (e === "y") {
+ $ERROR('#1.2: First expression is evaluated first, and then second expression');
+ } else {
+ if (e !== "x") {
+ $ERROR('#1.3: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() ^ y() throw "x". Actual: ' + (e));
+ }
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T3.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T3.js
new file mode 100644
index 000000000..5241ec557
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A2.4_T3.js
@@ -0,0 +1,29 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * First expression is evaluated first, and then second expression
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A2.4_T3.js
+ * @description Checking with undeclarated variables
+ * @noStrict
+ */
+
+//CHECK#1
+try {
+ x ^ (x = 1);
+ $ERROR('#1.1: x ^ (x = 1) throw ReferenceError. Actual: ' + (x ^ (x = 1)));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: x ^ (x = 1) throw ReferenceError. Actual: ' + (e));
+ }
+}
+
+//CHECK#2
+if (((y = 1) ^ y) !== 0) {
+ $ERROR('#2: ((y = 1) ^ y) === 0. Actual: ' + (((y = 1) ^ y)));
+}
+
+
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.1.js
new file mode 100644
index 000000000..e6466e784
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.1.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T1.1.js
+ * @description Type(x) and Type(y) are primitive boolean and Boolean object
+ */
+
+//CHECK#1
+if ((true ^ true) !== 0) {
+ $ERROR('#1: (true ^ true) === 0. Actual: ' + ((true ^ true)));
+}
+
+//CHECK#2
+if ((new Boolean(true) ^ true) !== 0) {
+ $ERROR('#2: (new Boolean(true) ^ true) === 0. Actual: ' + ((new Boolean(true) ^ true)));
+}
+
+//CHECK#3
+if ((true ^ new Boolean(true)) !== 0) {
+ $ERROR('#3: (true ^ new Boolean(true)) === 0. Actual: ' + ((true ^ new Boolean(true))));
+}
+
+//CHECK#4
+if ((new Boolean(true) ^ new Boolean(true)) !== 0) {
+ $ERROR('#4: (new Boolean(true) ^ new Boolean(true)) === 0. Actual: ' + ((new Boolean(true) ^ new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.2.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.2.js
new file mode 100644
index 000000000..9b997e82f
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.2.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T1.2.js
+ * @description Type(x) and Type(y) are primitive number and Number object
+ */
+
+//CHECK#1
+if ((1 ^ 1) !== 0) {
+ $ERROR('#1: (1 ^ 1) === 0. Actual: ' + ((1 ^ 1)));
+}
+
+//CHECK#2
+if ((new Number(1) ^ 1) !== 0) {
+ $ERROR('#2: (new Number(1) ^ 1) === 0. Actual: ' + ((new Number(1) ^ 1)));
+}
+
+//CHECK#3
+if ((1 ^ new Number(1)) !== 0) {
+ $ERROR('#3: (1 ^ new Number(1)) === 0. Actual: ' + ((1 ^ new Number(1))));
+}
+
+//CHECK#4
+if ((new Number(1) ^ new Number(1)) !== 0) {
+ $ERROR('#4: (new Number(1) ^ new Number(1)) === 0. Actual: ' + ((new Number(1) ^ new Number(1))));
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.3.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.3.js
new file mode 100644
index 000000000..acd61cf11
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.3.js
@@ -0,0 +1,40 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T1.3.js
+ * @description Type(x) and Type(y) are primitive string and String object
+ */
+
+//CHECK#1
+if (("1" ^ "1") !== 0) {
+ $ERROR('#1: ("1" ^ "1") === 0. Actual: ' + (("1" ^ "1")));
+}
+
+//CHECK#2
+if ((new String("1") ^ "1") !== 0) {
+ $ERROR('#2: (new String("1") ^ "1") === 0. Actual: ' + ((new String("1") ^ "1")));
+}
+
+//CHECK#3
+if (("1" ^ new String("1")) !== 0) {
+ $ERROR('#3: ("1" ^ new String("1")) === 0. Actual: ' + (("1" ^ new String("1"))));
+}
+
+//CHECK#4
+if ((new String("1") ^ new String("1")) !== 0) {
+ $ERROR('#4: (new String("1") ^ new String("1")) === 0. Actual: ' + ((new String("1") ^ new String("1"))));
+}
+
+//CHECK#5
+if (("x" ^ "1") !== 1) {
+ $ERROR('#5: ("x" ^ "1") === 1. Actual: ' + (("x" ^ "1")));
+}
+
+//CHECK#6
+if (("1" ^ "x") !== 1) {
+ $ERROR('#6: ("1" ^ "x") === 1. Actual: ' + (("1" ^ "x")));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.4.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.4.js
new file mode 100644
index 000000000..72698a656
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.4.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T1.4.js
+ * @description Type(x) and Type(y) are null and undefined
+ */
+
+//CHECK#1
+if ((null ^ undefined) !== 0) {
+ $ERROR('#1: (null ^ undefined) === 0. Actual: ' + ((null ^ undefined)));
+}
+
+//CHECK#2
+if ((undefined ^ null) !== 0) {
+ $ERROR('#2: (undefined ^ null) === 0. Actual: ' + ((undefined ^ null)));
+}
+
+//CHECK#3
+if ((undefined ^ undefined) !== 0) {
+ $ERROR('#3: (undefined ^ undefined) === 0. Actual: ' + ((undefined ^ undefined)));
+}
+
+//CHECK#4
+if ((null ^ null) !== 0) {
+ $ERROR('#4: (null ^ null) === 0. Actual: ' + ((null ^ null)));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.5.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.5.js
new file mode 100644
index 000000000..b415d1c75
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T1.5.js
@@ -0,0 +1,31 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T1.5.js
+ * @description Type(x) and Type(y) are Object object and Function object
+ */
+
+//CHECK#1
+if (({} ^ function(){return 1}) !== 0) {
+ $ERROR('#1: ({} ^ function(){return 1}) === 0. Actual: ' + (({} ^ function(){return 1})));
+}
+
+//CHECK#2
+if ((function(){return 1} ^ {}) !== 0) {
+ $ERROR('#2: (function(){return 1} ^ {}) === 0. Actual: ' + ((function(){return 1} ^ {})));
+}
+
+//CHECK#3
+if ((function(){return 1} ^ function(){return 1}) !== 0) {
+ $ERROR('#3: (function(){return 1} ^ function(){return 1}) === 0. Actual: ' + ((function(){return 1} ^ function(){return 1})));
+}
+
+//CHECK#4
+if (({} ^ {}) !== 0) {
+ $ERROR('#4: ({} ^ {}) === 0. Actual: ' + (({} ^ {})));
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.1.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.1.js
new file mode 100644
index 000000000..c32718b6e
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.1.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.1.js
+ * @description Type(x) is different from Type(y) and both types vary between Number (primitive or object) and Boolean (primitive and object)
+ */
+
+//CHECK#1
+if ((true ^ 1) !== 0) {
+ $ERROR('#1: (true ^ 1) === 0. Actual: ' + ((true ^ 1)));
+}
+
+//CHECK#2
+if ((1 ^ true) !== 0) {
+ $ERROR('#2: (1 ^ true) === 0. Actual: ' + ((1 ^ true)));
+}
+
+//CHECK#3
+if ((new Boolean(true) ^ 1) !== 0) {
+ $ERROR('#3: (new Boolean(true) ^ 1) === 0. Actual: ' + ((new Boolean(true) ^ 1)));
+}
+
+//CHECK#4
+if ((1 ^ new Boolean(true)) !== 0) {
+ $ERROR('#4: (1 ^ new Boolean(true)) === 0. Actual: ' + ((1 ^ new Boolean(true))));
+}
+
+//CHECK#5
+if ((true ^ new Number(1)) !== 0) {
+ $ERROR('#5: (true ^ new Number(1)) === 0. Actual: ' + ((true ^ new Number(1))));
+}
+
+//CHECK#6
+if ((new Number(1) ^ true) !== 0) {
+ $ERROR('#6: (new Number(1) ^ true) === 0. Actual: ' + ((new Number(1) ^ true)));
+}
+
+//CHECK#7
+if ((new Boolean(true) ^ new Number(1)) !== 0) {
+ $ERROR('#7: (new Boolean(true) ^ new Number(1)) === 0. Actual: ' + ((new Boolean(true) ^ new Number(1))));
+}
+
+//CHECK#8
+if ((new Number(1) ^ new Boolean(true)) !== 0) {
+ $ERROR('#8: (new Number(1) ^ new Boolean(true)) === 0. Actual: ' + ((new Number(1) ^ new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.2.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.2.js
new file mode 100644
index 000000000..1503fbaf5
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.2.js
@@ -0,0 +1,60 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.2.js
+ * @description Type(x) is different from Type(y) and both types vary between Number (primitive or object) and String (primitive and object)
+ */
+
+//CHECK#1
+if (("1" ^ 1) !== 0) {
+ $ERROR('#1: ("1" ^ 1) === 0. Actual: ' + (("1" ^ 1)));
+}
+
+//CHECK#2
+if ((1 ^ "1") !== 0) {
+ $ERROR('#2: (1 ^ "1") === 0. Actual: ' + ((1 ^ "1")));
+}
+
+//CHECK#3
+if ((new String("1") ^ 1) !== 0) {
+ $ERROR('#3: (new String("1") ^ 1) === 0. Actual: ' + ((new String("1") ^ 1)));
+}
+
+//CHECK#4
+if ((1 ^ new String("1")) !== 0) {
+ $ERROR('#4: (1 ^ new String("1")) === 0. Actual: ' + ((1 ^ new String("1"))));
+}
+
+//CHECK#5
+if (("1" ^ new Number(1)) !== 0) {
+ $ERROR('#5: ("1" ^ new Number(1)) === 0. Actual: ' + (("1" ^ new Number(1))));
+}
+
+//CHECK#6
+if ((new Number(1) ^ "1") !== 0) {
+ $ERROR('#6: (new Number(1) ^ "1") === 0. Actual: ' + ((new Number(1) ^ "1")));
+}
+
+//CHECK#7
+if ((new String("1") ^ new Number(1)) !== 0) {
+ $ERROR('#7: (new String("1") ^ new Number(1)) === 0. Actual: ' + ((new String("1") ^ new Number(1))));
+}
+
+//CHECK#8
+if ((new Number(1) ^ new String("1")) !== 0) {
+ $ERROR('#8: (new Number(1) ^ new String("1")) === 0. Actual: ' + ((new Number(1) ^ new String("1"))));
+}
+
+//CHECK#9
+if (("x" ^ 1) !== 1) {
+ $ERROR('#9: ("x" ^ 1) === 1. Actual: ' + (("x" ^ 1)));
+}
+
+//CHECK#10
+if ((1 ^ "x") !== 1) {
+ $ERROR('#10: (1 ^ "x") === 1. Actual: ' + ((1 ^ "x")));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.3.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.3.js
new file mode 100644
index 000000000..7944312eb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.3.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.3.js
+ * @description Type(x) is different from Type(y) and both types vary between Number (primitive or object) and Null
+ */
+
+//CHECK#1
+if ((1 ^ null) !== 1) {
+ $ERROR('#1: (1 ^ null) === 1. Actual: ' + ((1 ^ null)));
+}
+
+//CHECK#2
+if ((null ^ 1) !== 1) {
+ $ERROR('#2: (null ^ 1) === 1. Actual: ' + ((null ^ 1)));
+}
+
+//CHECK#3
+if ((new Number(1) ^ null) !== 1) {
+ $ERROR('#3: (new Number(1) ^ null) === 1. Actual: ' + ((new Number(1) ^ null)));
+}
+
+//CHECK#4
+if ((null ^ new Number(1)) !== 1) {
+ $ERROR('#4: (null ^ new Number(1)) === 1. Actual: ' + ((null ^ new Number(1))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.4.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.4.js
new file mode 100644
index 000000000..6578ce84d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.4.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.4.js
+ * @description Type(x) is different from Type(y) and both types vary between Number (primitive or object) and Undefined
+ */
+
+//CHECK#1
+if ((1 ^ undefined) !== 1) {
+ $ERROR('#1: (1 ^ undefined) === 1. Actual: ' + ((1 ^ undefined)));
+}
+
+//CHECK#2
+if ((undefined ^ 1) !== 1) {
+ $ERROR('#2: (undefined ^ 1) === 1. Actual: ' + ((undefined ^ 1)));
+}
+
+//CHECK#3
+if ((new Number(1) ^ undefined) !== 1) {
+ $ERROR('#3: (new Number(1) ^ undefined) === 1. Actual: ' + ((new Number(1) ^ undefined)));
+}
+
+//CHECK#4
+if ((undefined ^ new Number(1)) !== 1) {
+ $ERROR('#4: (undefined ^ new Number(1)) === 1. Actual: ' + ((undefined ^ new Number(1))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.5.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.5.js
new file mode 100644
index 000000000..2e80dfef2
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.5.js
@@ -0,0 +1,50 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.5.js
+ * @description Type(x) is different from Type(y) and both types vary between String (primitive or object) and Boolean (primitive and object)
+ */
+
+//CHECK#1
+if ((true ^ "1") !== 0) {
+ $ERROR('#1: (true ^ "1") === 0. Actual: ' + ((true ^ "1")));
+}
+
+//CHECK#2
+if (("1" ^ true) !== 0) {
+ $ERROR('#2: ("1" ^ true) === 0. Actual: ' + (("1" ^ true)));
+}
+
+//CHECK#3
+if ((new Boolean(true) ^ "1") !== 0) {
+ $ERROR('#3: (new Boolean(true) ^ "1") === 0. Actual: ' + ((new Boolean(true) ^ "1")));
+}
+
+//CHECK#4
+if (("1" ^ new Boolean(true)) !== 0) {
+ $ERROR('#4: ("1" ^ new Boolean(true)) === 0. Actual: ' + (("1" ^ new Boolean(true))));
+}
+
+//CHECK#5
+if ((true ^ new String("1")) !== 0) {
+ $ERROR('#5: (true ^ new String("1")) === 0. Actual: ' + ((true ^ new String("1"))));
+}
+
+//CHECK#6
+if ((new String("1") ^ true) !== 0) {
+ $ERROR('#6: (new String("1") ^ true) === 0. Actual: ' + ((new String("1") ^ true)));
+}
+
+//CHECK#7
+if ((new Boolean(true) ^ new String("1")) !== 0) {
+ $ERROR('#7: (new Boolean(true) ^ new String("1")) === 0. Actual: ' + ((new Boolean(true) ^ new String("1"))));
+}
+
+//CHECK#8
+if ((new String("1") ^ new Boolean(true)) !== 0) {
+ $ERROR('#8: (new String("1") ^ new Boolean(true)) === 0. Actual: ' + ((new String("1") ^ new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.6.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.6.js
new file mode 100644
index 000000000..b433b597e
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.6.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.6.js
+ * @description Type(x) is different from Type(y) and both types vary between String (primitive or object) and Undefined
+ */
+
+//CHECK#1
+if (("1" ^ undefined) !== 1) {
+ $ERROR('#1: ("1" ^ undefined) === 1. Actual: ' + (("1" ^ undefined)));
+}
+
+//CHECK#2
+if ((undefined ^ "1") !== 1) {
+ $ERROR('#2: (undefined ^ "1") === 1. Actual: ' + ((undefined ^ "1")));
+}
+
+//CHECK#3
+if ((new String("1") ^ undefined) !== 1) {
+ $ERROR('#3: (new String("1") ^ undefined) === 1. Actual: ' + ((new String("1") ^ undefined)));
+}
+
+//CHECK#4
+if ((undefined ^ new String("1")) !== 1) {
+ $ERROR('#4: (undefined ^ new String("1")) === 1. Actual: ' + ((undefined ^ new String("1"))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.7.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.7.js
new file mode 100644
index 000000000..17996c7b8
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.7.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.7.js
+ * @description Type(x) is different from Type(y) and both types vary between String (primitive or object) and Null
+ */
+
+//CHECK#1
+if (("1" ^ null) !== 1) {
+ $ERROR('#1: ("1" ^ null) === 1. Actual: ' + (("1" ^ null)));
+}
+
+//CHECK#2
+if ((null ^ "1") !== 1) {
+ $ERROR('#2: (null ^ "1") === 1. Actual: ' + ((null ^ "1")));
+}
+
+//CHECK#3
+if ((new String("1") ^ null) !== 1) {
+ $ERROR('#3: (new String("1") ^ null) === 1. Actual: ' + ((new String("1") ^ null)));
+}
+
+//CHECK#4
+if ((null ^ new String("1")) !== 1) {
+ $ERROR('#4: (null ^ new String("1")) === 1. Actual: ' + ((null ^ new String("1"))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.8.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.8.js
new file mode 100644
index 000000000..36c1c1d23
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.8.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.8.js
+ * @description Type(x) is different from Type(y) and both types vary between Boolean (primitive or object) and Undefined
+ */
+
+//CHECK#1
+if ((true ^ undefined) !== 1) {
+ $ERROR('#1: (true ^ undefined) === 1. Actual: ' + ((true ^ undefined)));
+}
+
+//CHECK#2
+if ((undefined ^ true) !== 1) {
+ $ERROR('#2: (undefined ^ true) === 1. Actual: ' + ((undefined ^ true)));
+}
+
+//CHECK#3
+if ((new Boolean(true) ^ undefined) !== 1) {
+ $ERROR('#3: (new Boolean(true) ^ undefined) === 1. Actual: ' + ((new Boolean(true) ^ undefined)));
+}
+
+//CHECK#4
+if ((undefined ^ new Boolean(true)) !== 1) {
+ $ERROR('#4: (undefined ^ new Boolean(true)) === 1. Actual: ' + ((undefined ^ new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.9.js b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.9.js
new file mode 100644
index 000000000..6a9d6cb0d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/S11.10.2_A3_T2.9.js
@@ -0,0 +1,30 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator x ^ y returns ToNumber(x) ^ ToNumber(y)
+ *
+ * @path ch11/11.10/11.10.2/S11.10.2_A3_T2.9.js
+ * @description Type(x) is different from Type(y) and both types vary between Boolean (primitive or object) and Null
+ */
+
+//CHECK#1
+if ((true ^ null) !== 1) {
+ $ERROR('#1: (true ^ null) === 1. Actual: ' + ((true ^ null)));
+}
+
+//CHECK#2
+if ((null ^ true) !== 1) {
+ $ERROR('#2: (null ^ true) === 1. Actual: ' + ((null ^ true)));
+}
+
+//CHECK#3
+if ((new Boolean(true) ^ null) !== 1) {
+ $ERROR('#3: (new Boolean(true) ^ null) === 1. Actual: ' + ((new Boolean(true) ^ null)));
+}
+
+//CHECK#4
+if ((null ^ new Boolean(true)) !== 1) {
+ $ERROR('#4: (null ^ new Boolean(true)) === 1. Actual: ' + ((null ^ new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/browser.js b/js/src/tests/test262/ch11/11.10/11.10.2/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/browser.js
diff --git a/js/src/tests/test262/ch11/11.10/11.10.2/shell.js b/js/src/tests/test262/ch11/11.10/11.10.2/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.2/shell.js