summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch11/11.10/11.10.3
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/tests/test262/ch11/11.10/11.10.3
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/tests/test262/ch11/11.10/11.10.3')
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A1.js61
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T1.js43
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T2.js21
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T3.js21
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.2_T1.js71
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.3_T1.js26
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T1.js22
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T2.js26
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T3.js27
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.1.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.2.js31
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.3.js40
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.4.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.5.js31
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.1.js50
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.2.js60
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.3.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.4.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.5.js50
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.6.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.7.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.8.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.9.js30
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/browser.js0
-rw-r--r--js/src/tests/test262/ch11/11.10/11.10.3/shell.js0
25 files changed, 820 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A1.js
new file mode 100644
index 000000000..193860824
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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 BitwiseORExpression and "|" or between "|" and BitwiseXORExpression are allowed
+ *
+ * @path ch11/11.10/11.10.3/S11.10.3_A1.js
+ * @description Checking by using eval
+ */
+
+//CHECK#1
+if ((eval("0\u0009|\u00091")) !== 1) {
+ $ERROR('#1: (0\\u0009|\\u00091) === 1');
+}
+
+//CHECK#2
+if ((eval("0\u000B|\u000B1")) !== 1) {
+ $ERROR('#2: (0\\u000B|\\u000B1) === 1');
+}
+
+//CHECK#3
+if ((eval("0\u000C|\u000C1")) !== 1) {
+ $ERROR('#3: (0\\u000C|\\u000C1) === 1');
+}
+
+//CHECK#4
+if ((eval("0\u0020|\u00201")) !== 1) {
+ $ERROR('#4: (0\\u0020|\\u00201) === 1');
+}
+
+//CHECK#5
+if ((eval("0\u00A0|\u00A01")) !== 1) {
+ $ERROR('#5: (0\\u00A0|\\u00A01) === 1');
+}
+
+//CHECK#6
+if ((eval("0\u000A|\u000A1")) !== 1) {
+ $ERROR('#6: (0\\u000A|\\u000A1) === 1');
+}
+
+//CHECK#7
+if ((eval("0\u000D|\u000D1")) !== 1) {
+ $ERROR('#7: (0\\u000D|\\u000D1) === 1');
+}
+
+//CHECK#8
+if ((eval("0\u2028|\u20281")) !== 1) {
+ $ERROR('#8: (0\\u2028|\\u20281) === 1');
+}
+
+//CHECK#9
+if ((eval("0\u2029|\u20291")) !== 1) {
+ $ERROR('#9: (0\\u2029|\\u20291) === 1');
+}
+
+
+//CHECK#10
+if ((eval("0\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029|\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20291")) !== 1) {
+ $ERROR('#10: (0\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029|\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20291) === 1');
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T1.js
new file mode 100644
index 000000000..4c39440fe
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T1.js
@@ -0,0 +1,43 @@
+// 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.3/S11.10.3_A2.1_T1.js
+ * @description Either Type is not Reference or GetBase is not null
+ */
+
+//CHECK#1
+if ((1 | 0) !== 1) {
+ $ERROR('#1: (1 | 0) === 1. Actual: ' + ((1 | 0)));
+}
+
+//CHECK#2
+var x = 1;
+if ((x | 0) !== 1) {
+ $ERROR('#2: var x = 1; (x | 0) === 1. Actual: ' + ((x | 0)));
+}
+
+//CHECK#3
+var y = 0;
+if ((1 | y) !== 1) {
+ $ERROR('#3: var y = 0; (1 | y) === 1. Actual: ' + ((1 | y)));
+}
+
+//CHECK#4
+var x = 1;
+var y = 0;
+if ((x | y) !== 1) {
+ $ERROR('#4: var x = 1; var y = 0; (x | y) === 1. Actual: ' + ((x | y)));
+}
+
+//CHECK#5
+var objectx = new Object();
+var objecty = new Object();
+objectx.prop = 1;
+objecty.prop = 0;
+if ((objectx.prop | objecty.prop) !== 1) {
+ $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = 1; objecty.prop = 0; (objectx.prop | objecty.prop) === 1. Actual: ' + ((objectx.prop | objecty.prop)));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T2.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T2.js
new file mode 100644
index 000000000..38886529f
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A2.1_T3.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.1_T3.js
new file mode 100644
index 000000000..313ea9588
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A2.2_T1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.2_T1.js
new file mode 100644
index 000000000..1c7331411
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_A2.2_T1.js
+ * @description If Type(value) is Object, evaluate ToPrimitive(value, Number)
+ */
+
+//CHECK#1
+if (({valueOf: function() {return 1}} | 0) !== 1) {
+ $ERROR('#1: ({valueOf: function() {return 1}} | 0) === 1. Actual: ' + (({valueOf: function() {return 1}} | 0)));
+}
+
+//CHECK#2
+if (({valueOf: function() {return 1}, toString: function() {return 0}} | 0) !== 1) {
+ $ERROR('#2: ({valueOf: function() {return 1}, toString: function() {return 0}} | 0) === 1. Actual: ' + (({valueOf: function() {return 1}, toString: function() {return 0}} | 0)));
+}
+
+//CHECK#3
+if (({valueOf: function() {return 1}, toString: function() {return {}}} | 0) !== 1) {
+ $ERROR('#3: ({valueOf: function() {return 1}, toString: function() {return {}}} | 0) === 1. Actual: ' + (({valueOf: function() {return 1}, toString: function() {return {}}} | 0)));
+}
+
+//CHECK#4
+try {
+ if (({valueOf: function() {return 1}, toString: function() {throw "error"}} | 0) !== 1) {
+ $ERROR('#4.1: ({valueOf: function() {return 1}, toString: function() {throw "error"}} | 0) === 1. Actual: ' + (({valueOf: function() {return 1}, toString: function() {throw "error"}} | 0)));
+ }
+}
+catch (e) {
+ if (e === "error") {
+ $ERROR('#4.2: ({valueOf: function() {return 1}, toString: function() {throw "error"}} | 0) not throw "error"');
+ } else {
+ $ERROR('#4.3: ({valueOf: function() {return 1}, toString: function() {throw "error"}} | 0) not throw Error. Actual: ' + (e));
+ }
+}
+
+//CHECK#5
+if ((0 | {toString: function() {return 1}}) !== 1) {
+ $ERROR('#5: (0 | {toString: function() {return 1}}) === 1. Actual: ' + ((0 | {toString: function() {return 1}})));
+}
+
+//CHECK#6
+if ((0 | {valueOf: function() {return {}}, toString: function() {return 1}}) !== 1) {
+ $ERROR('#6: (0 | {valueOf: function() {return {}}, toString: function() {return 1}}) === 1. Actual: ' + ((0 | {valueOf: function() {return {}}, toString: function() {return 1}})));
+}
+
+//CHECK#7
+try {
+ 0 | {valueOf: function() {throw "error"}, toString: function() {return 1}};
+ $ERROR('#7.1: 0 | {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (0 | {valueOf: function() {throw "error"}, toString: function() {return 1}}));
+}
+catch (e) {
+ if (e !== "error") {
+ $ERROR('#7.2: 0 | {valueOf: function() {throw "error"}, toString: function() {return 1}} throw "error". Actual: ' + (e));
+ }
+}
+
+//CHECK#8
+try {
+ 0 | {valueOf: function() {return {}}, toString: function() {return {}}};
+ $ERROR('#8.1: 0 | {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (0 | {valueOf: function() {return {}}, toString: function() {return {}}}));
+}
+catch (e) {
+ if ((e instanceof TypeError) !== true) {
+ $ERROR('#8.2: 0 | {valueOf: function() {return {}}, toString: function() {return {}}} throw TypeError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.3_T1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.3_T1.js
new file mode 100644
index 000000000..fe60b24d1
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A2.4_T1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T1.js
new file mode 100644
index 000000000..4c5705d00
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T1.js
@@ -0,0 +1,22 @@
+// 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.3/S11.10.3_A2.4_T1.js
+ * @description Checking with "="
+ */
+
+//CHECK#1
+var x = 1;
+if (((x = 0) | x) !== 0) {
+ $ERROR('#1: var x = 1; ((x = 0) | x) === 0. Actual: ' + (((x = 0) | x)));
+}
+
+//CHECK#2
+var x = 1;
+if ((x | (x = 0)) !== 1) {
+ $ERROR('#2: var x = 1; (x | (x = 0)) === 1. Actual: ' + ((x | (x = 0))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T2.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T2.js
new file mode 100644
index 000000000..886ae2af5
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A2.4_T3.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T3.js
new file mode 100644
index 000000000..975bba911
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A2.4_T3.js
@@ -0,0 +1,27 @@
+// 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.3/S11.10.3_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) !== 1) {
+ $ERROR('#2: ((y = 1) | y) === 1. Actual: ' + (((y = 1) | y)));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.1.js
new file mode 100644
index 000000000..bdf1dddd2
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_A3_T1.1.js
+ * @description Type(x) and Type(y) vary between primitive boolean and Boolean object
+ */
+
+//CHECK#1
+if ((true | true) !== 1) {
+ $ERROR('#1: (true | true) === 1. Actual: ' + ((true | true)));
+}
+
+//CHECK#2
+if ((new Boolean(true) | true) !== 1) {
+ $ERROR('#2: (new Boolean(true) | true) === 1. Actual: ' + ((new Boolean(true) | true)));
+}
+
+//CHECK#3
+if ((true | new Boolean(true)) !== 1) {
+ $ERROR('#3: (true | new Boolean(true)) === 1. Actual: ' + ((true | new Boolean(true))));
+}
+
+//CHECK#4
+if ((new Boolean(true) | new Boolean(true)) !== 1) {
+ $ERROR('#4: (new Boolean(true) | new Boolean(true)) === 1. Actual: ' + ((new Boolean(true) | new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.2.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.2.js
new file mode 100644
index 000000000..057a8fd55
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_A3_T1.2.js
+ * @description Type(x) and Type(y) vary between primitive number and Number object
+ */
+
+//CHECK#1
+if ((1 | 1) !== 1) {
+ $ERROR('#1: (1 | 1) === 1. Actual: ' + ((1 | 1)));
+}
+
+//CHECK#2
+if ((new Number(1) | 1) !== 1) {
+ $ERROR('#2: (new Number(1) | 1) === 1. Actual: ' + ((new Number(1) | 1)));
+}
+
+//CHECK#3
+if ((1 | new Number(1)) !== 1) {
+ $ERROR('#3: (1 | new Number(1)) === 1. Actual: ' + ((1 | new Number(1))));
+}
+
+//CHECK#4
+if ((new Number(1) | new Number(1)) !== 1) {
+ $ERROR('#4: (new Number(1) | new Number(1)) === 1. Actual: ' + ((new Number(1) | new Number(1))));
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.3.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.3.js
new file mode 100644
index 000000000..f62798951
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_A3_T1.3.js
+ * @description Type(x) and Type(y) vary between primitive string and String object
+ */
+
+//CHECK#1
+if (("1" | "1") !== 1) {
+ $ERROR('#1: ("1" | "1") === 1. Actual: ' + (("1" | "1")));
+}
+
+//CHECK#2
+if ((new String("1") | "1") !== 1) {
+ $ERROR('#2: (new String("1") | "1") === 1. Actual: ' + ((new String("1") | "1")));
+}
+
+//CHECK#3
+if (("1" | new String("1")) !== 1) {
+ $ERROR('#3: ("1" | new String("1")) === 1. Actual: ' + (("1" | new String("1"))));
+}
+
+//CHECK#4
+if ((new String("1") | new String("1")) !== 1) {
+ $ERROR('#4: (new String("1") | new String("1")) === 1. 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.3/S11.10.3_A3_T1.4.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.4.js
new file mode 100644
index 000000000..1fcf3aea4
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_A3_T1.4.js
+ * @description Type(x) and Type(y) vary between 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.3/S11.10.3_A3_T1.5.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T1.5.js
new file mode 100644
index 000000000..c3df41a2c
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_A3_T1.5.js
+ * @description Type(x) and Type(y) vary between 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.3/S11.10.3_A3_T2.1.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.1.js
new file mode 100644
index 000000000..a54f2dbdf
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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) !== 1) {
+ $ERROR('#1: (true | 1) === 1. Actual: ' + ((true | 1)));
+}
+
+//CHECK#2
+if ((1 | true) !== 1) {
+ $ERROR('#2: (1 | true) === 1. Actual: ' + ((1 | true)));
+}
+
+//CHECK#3
+if ((new Boolean(true) | 1) !== 1) {
+ $ERROR('#3: (new Boolean(true) | 1) === 1. Actual: ' + ((new Boolean(true) | 1)));
+}
+
+//CHECK#4
+if ((1 | new Boolean(true)) !== 1) {
+ $ERROR('#4: (1 | new Boolean(true)) === 1. Actual: ' + ((1 | new Boolean(true))));
+}
+
+//CHECK#5
+if ((true | new Number(1)) !== 1) {
+ $ERROR('#5: (true | new Number(1)) === 1. Actual: ' + ((true | new Number(1))));
+}
+
+//CHECK#6
+if ((new Number(1) | true) !== 1) {
+ $ERROR('#6: (new Number(1) | true) === 1. Actual: ' + ((new Number(1) | true)));
+}
+
+//CHECK#7
+if ((new Boolean(true) | new Number(1)) !== 1) {
+ $ERROR('#7: (new Boolean(true) | new Number(1)) === 1. Actual: ' + ((new Boolean(true) | new Number(1))));
+}
+
+//CHECK#8
+if ((new Number(1) | new Boolean(true)) !== 1) {
+ $ERROR('#8: (new Number(1) | new Boolean(true)) === 1. Actual: ' + ((new Number(1) | new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.2.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.2.js
new file mode 100644
index 000000000..78795a543
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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) !== 1) {
+ $ERROR('#1: ("1" | 1) === 1. Actual: ' + (("1" | 1)));
+}
+
+//CHECK#2
+if ((1 | "1") !== 1) {
+ $ERROR('#2: (1 | "1") === 1. Actual: ' + ((1 | "1")));
+}
+
+//CHECK#3
+if ((new String("1") | 1) !== 1) {
+ $ERROR('#3: (new String("1") | 1) === 1. Actual: ' + ((new String("1") | 1)));
+}
+
+//CHECK#4
+if ((1 | new String("1")) !== 1) {
+ $ERROR('#4: (1 | new String("1")) === 1. Actual: ' + ((1 | new String("1"))));
+}
+
+//CHECK#5
+if (("1" | new Number(1)) !== 1) {
+ $ERROR('#5: ("1" | new Number(1)) === 1. Actual: ' + (("1" | new Number(1))));
+}
+
+//CHECK#6
+if ((new Number(1) | "1") !== 1) {
+ $ERROR('#6: (new Number(1) | "1") === 1. Actual: ' + ((new Number(1) | "1")));
+}
+
+//CHECK#7
+if ((new String("1") | new Number(1)) !== 1) {
+ $ERROR('#7: (new String("1") | new Number(1)) === 1. Actual: ' + ((new String("1") | new Number(1))));
+}
+
+//CHECK#8
+if ((new Number(1) | new String("1")) !== 1) {
+ $ERROR('#8: (new Number(1) | new String("1")) === 1. 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.3/S11.10.3_A3_T2.3.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.3.js
new file mode 100644
index 000000000..c01d6e726
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A3_T2.4.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.4.js
new file mode 100644
index 000000000..eb7d1432a
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A3_T2.5.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.5.js
new file mode 100644
index 000000000..3195c149d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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") !== 1) {
+ $ERROR('#1: (true | "1") === 1. Actual: ' + ((true | "1")));
+}
+
+//CHECK#2
+if (("1" | true) !== 1) {
+ $ERROR('#2: ("1" | true) === 1. Actual: ' + (("1" | true)));
+}
+
+//CHECK#3
+if ((new Boolean(true) | "1") !== 1) {
+ $ERROR('#3: (new Boolean(true) | "1") === 1. Actual: ' + ((new Boolean(true) | "1")));
+}
+
+//CHECK#4
+if (("1" | new Boolean(true)) !== 1) {
+ $ERROR('#4: ("1" | new Boolean(true)) === 1. Actual: ' + (("1" | new Boolean(true))));
+}
+
+//CHECK#5
+if ((true | new String("1")) !== 1) {
+ $ERROR('#5: (true | new String("1")) === 1. Actual: ' + ((true | new String("1"))));
+}
+
+//CHECK#6
+if ((new String("1") | true) !== 1) {
+ $ERROR('#6: (new String("1") | true) === 1. Actual: ' + ((new String("1") | true)));
+}
+
+//CHECK#7
+if ((new Boolean(true) | new String("1")) !== 1) {
+ $ERROR('#7: (new Boolean(true) | new String("1")) === 1. Actual: ' + ((new Boolean(true) | new String("1"))));
+}
+
+//CHECK#8
+if ((new String("1") | new Boolean(true)) !== 1) {
+ $ERROR('#8: (new String("1") | new Boolean(true)) === 1. Actual: ' + ((new String("1") | new Boolean(true))));
+}
+
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.6.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.6.js
new file mode 100644
index 000000000..c6aeffafd
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A3_T2.7.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.7.js
new file mode 100644
index 000000000..fc0e39bb9
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A3_T2.8.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.8.js
new file mode 100644
index 000000000..4208476dd
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/S11.10.3_A3_T2.9.js b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_A3_T2.9.js
new file mode 100644
index 000000000..2c892773b
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/S11.10.3_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.3/S11.10.3_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.3/browser.js b/js/src/tests/test262/ch11/11.10/11.10.3/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/browser.js
diff --git a/js/src/tests/test262/ch11/11.10/11.10.3/shell.js b/js/src/tests/test262/ch11/11.10/11.10.3/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.10/11.10.3/shell.js