summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch11/11.9/11.9.4
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.9/11.9.4
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.9/11.9.4')
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A1.js60
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T1.js44
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T2.js22
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T3.js22
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T1.js23
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T2.js26
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T3.js27
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A3.js31
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T1.js56
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T2.js55
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.2.js20
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.3.js56
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A5.js36
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.1.js25
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.2.js15
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A7.js53
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T1.js65
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T2.js65
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T3.js65
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T4.js80
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T5.js28
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/browser.js0
-rw-r--r--js/src/tests/test262/ch11/11.9/11.9.4/shell.js0
23 files changed, 874 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A1.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A1.js
new file mode 100644
index 000000000..410fe3962
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A1.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.
+
+/**
+ * White Space and Line Terminator between EqualityExpression and "===" or between "===" and RelationalExpression are allowed
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A1.js
+ * @description Checking by using eval
+ */
+
+//CHECK#1
+if (!(eval("1\u0009===\u00091"))) {
+ $ERROR('#1: 1\\u0009===\\u00091');
+}
+
+//CHECK#2
+if (!(eval("1\u000B===\u000B1"))) {
+ $ERROR('#2: 1\\u000B===\\u000B1');
+}
+
+//CHECK#3
+if (!(eval("1\u000C===\u000C1"))) {
+ $ERROR('#3: 1\\u000C===\\u000C1');
+}
+
+//CHECK#4
+if (!(eval("1\u0020===\u00201"))) {
+ $ERROR('#4: 1\\u0020===\\u00201');
+}
+
+//CHECK#5
+if (!(eval("1\u00A0===\u00A01"))) {
+ $ERROR('#5: 1\\u00A0===\\u00A01');
+}
+
+//CHECK#6
+if (!(eval("1\u000A===\u000A1"))) {
+ $ERROR('#6: 1\\u000A===\\u000A1');
+}
+
+//CHECK#7
+if (!(eval("1\u000D===\u000D1"))) {
+ $ERROR('#7: 1\\u000D===\\u000D1');
+}
+
+//CHECK#8
+if (!(eval("1\u2028===\u20281"))) {
+ $ERROR('#8: 1\\u2028===\\u20281');
+}
+
+//CHECK#9
+if (!(eval("1\u2029===\u20291"))) {
+ $ERROR('#9: 1\\u2029===\\u20291');
+}
+
+//CHECK#10
+if (!(eval("1\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029===\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u20291"))) {
+ $ERROR('#10: 1\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029===\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u20291');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T1.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T1.js
new file mode 100644
index 000000000..b9a1958cb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_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.9/11.9.4/S11.9.4_A2.1_T1.js
+ * @description Either Type is not Reference or GetBase is not null
+ */
+
+//CHECK#1
+if (!(1 === 1)) {
+ $ERROR('#1: 1 === 1');
+}
+
+//CHECK#2
+var x = 1;
+if (!(x === 1)) {
+ $ERROR('#2: var x = 1; x === 1');
+}
+
+//CHECK#3
+var y = 1;
+if (!(1 === y)) {
+ $ERROR('#3: var y = 1; 1 === y');
+}
+
+//CHECK#4
+var x = 1;
+var y = 1;
+if (!(x === y)) {
+ $ERROR('#4: var x = 1; var y = 1; x === y');
+}
+
+//CHECK#5
+var objectx = new Object();
+var objecty = new Object();
+objectx.prop = 1;
+objecty.prop = 1;
+if (!(objectx.prop === objecty.prop)) {
+ $ERROR('#5: var objectx = new Object(); var objecty = new Object(); objectx.prop = 1; objecty.prop = 1; objectx.prop === objecty.prop');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T2.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T2.js
new file mode 100644
index 000000000..c0741ccd1
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T2.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.
+
+/**
+ * Operator x === y uses GetValue
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_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.9/11.9.4/S11.9.4_A2.1_T3.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T3.js
new file mode 100644
index 000000000..dc50a2505
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.1_T3.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.
+
+/**
+ * Operator x === y uses GetValue
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_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.9/11.9.4/S11.9.4_A2.4_T1.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T1.js
new file mode 100644
index 000000000..f24d933b0
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T1.js
@@ -0,0 +1,23 @@
+// 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.9/11.9.4/S11.9.4_A2.4_T1.js
+ * @description Checking with "="
+ */
+
+//CHECK#1
+var x = 0;
+if (!((x = 1) === x)) {
+ $ERROR('#1: var x = 0; (x = 1) === x');
+}
+
+//CHECK#2
+var x = 0;
+if (x === (x = 1)) {
+ $ERROR('#2: var x = 0; x !== (x = 1)');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T2.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T2.js
new file mode 100644
index 000000000..02fe1ba7c
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_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.9/11.9.4/S11.9.4_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.9/11.9.4/S11.9.4_A2.4_T3.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A2.4_T3.js
new file mode 100644
index 000000000..5b9fa7a03
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_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.9/11.9.4/S11.9.4_A2.4_T3.js
+ * @description Checking with undeclarated variables
+ */
+
+//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)) {
+ $ERROR('#2: (y = 1) === y');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A3.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A3.js
new file mode 100644
index 000000000..5fc2545d4
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A3.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.
+
+/**
+ * Type(x) and Type(y) are Boolean-s.
+ * Return true, if x and y are both true and both false; otherwise, return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A3.js
+ * @description x and y are primitive booleans
+ */
+
+//CHECK#1
+if (!(true === true)) {
+ $ERROR('#1: true === true');
+}
+
+//CHECK#2
+if (!(false === false)) {
+ $ERROR('#2: false === false');
+}
+
+//CHECK#3
+if (true === false) {
+ $ERROR('#3: true !== false');
+}
+
+//CHECK#4
+if (false === true) {
+ $ERROR('#4: false !== true');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T1.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T1.js
new file mode 100644
index 000000000..b742929df
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T1.js
@@ -0,0 +1,56 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If x or y is NaN, return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A4.1_T1.js
+ * @description x is NaN
+ */
+
+//CHECK#1
+if (Number.NaN === true) {
+ $ERROR('#1: NaN !== true');
+}
+
+//CHECK#2
+if (Number.NaN === 1) {
+ $ERROR('#2: NaN !== 1');
+}
+
+//CHECK#3
+if (Number.NaN === Number.NaN) {
+ $ERROR('#3: NaN !== NaN');
+}
+
+//CHECK#4
+if (Number.NaN === Number.POSITIVE_INFINITY) {
+ $ERROR('#4: NaN !== +Infinity');
+}
+
+//CHECK#5
+if (Number.NaN === Number.NEGATIVE_INFINITY) {
+ $ERROR('#5: NaN !== -Infinity');
+}
+
+//CHECK#6
+if (Number.NaN === Number.MAX_VALUE) {
+ $ERROR('#6: NaN !== Number.MAX_VALUE');
+}
+
+//CHECK#7
+if (Number.NaN === Number.MIN_VALUE) {
+ $ERROR('#7: NaN !== Number.MIN_VALUE');
+}
+
+//CHECK#8
+if (Number.NaN === "string") {
+ $ERROR('#8: NaN !== "string"');
+}
+
+//CHECK#9
+if (Number.NaN === new Object()) {
+ $ERROR('#9: NaN !== new Object()');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T2.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T2.js
new file mode 100644
index 000000000..3cd02a9fd
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.1_T2.js
@@ -0,0 +1,55 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If x or y is NaN, return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A4.1_T2.js
+ * @description y is NaN
+ */
+
+//CHECK#1
+if (true === Number.NaN) {
+ $ERROR('#1: true !== NaN');
+}
+
+//CHECK#2
+if (-1 === Number.NaN) {
+ $ERROR('#2: -1 !== NaN');
+}
+
+//CHECK#3
+if (Number.NaN === Number.NaN) {
+ $ERROR('#3: NaN !== NaN');
+}
+
+//CHECK#4
+if (Number.POSITIVE_INFINITY === Number.NaN) {
+ $ERROR('#4: +Infinity !== NaN');
+}
+
+//CHECK#5
+if (Number.NEGATIVE_INFINITY === Number.NaN) {
+ $ERROR('#5: -Infinity !== NaN');
+}
+
+//CHECK#6
+if (Number.MAX_VALUE === Number.NaN) {
+ $ERROR('#6: Number.MAX_VALUE !== NaN');
+}
+
+//CHECK#7
+if (Number.MIN_VALUE === Number.NaN) {
+ $ERROR('#7: Number.MIN_VALUE !== NaN');
+}
+
+//CHECK#8
+if ("string" === Number.NaN) {
+ $ERROR('#8: "string" !== NaN');
+}
+
+//CHECK#9
+if (new Object() === Number.NaN) {
+ $ERROR('#9: new Object() !== NaN');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.2.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.2.js
new file mode 100644
index 000000000..7de56ed7d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.2.js
@@ -0,0 +1,20 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If x is +0(-0) and y is -0(+0), return true
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A4.2.js
+ * @description Checking all combinations
+ */
+
+//CHECK#1
+if (!(+0 === -0)) {
+ $ERROR('#1: +0 === -0');
+}
+
+//CHECK#2
+if (!(-0 === +0)) {
+ $ERROR('#2: -0 === +0');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.3.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.3.js
new file mode 100644
index 000000000..e13bea441
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A4.3.js
@@ -0,0 +1,56 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Type(x) and Type(y) are Number-s minus NaN, +0, -0.
+ * Return true, if x is the same number value as y; otherwise, return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A4.3.js
+ * @description x and y are primitive numbers
+ */
+
+//CHECK#1
+if (!(Number.POSITIVE_INFINITY === Number.POSITIVE_INFINITY)) {
+ $ERROR('#1: +Infinity === +Infinity');
+}
+
+//CHECK#2
+if (!(Number.NEGATIVE_INFINITY === Number.NEGATIVE_INFINITY)) {
+ $ERROR('#2: -Infinity === -Infinity');
+}
+
+//CHECK#3
+if (!(13 === 13)) {
+ $ERROR('#3: 13 === 13');
+}
+
+//CHECK#4
+if (!(-13 === -13)) {
+ $ERROR('#4: -13 === -13');
+}
+
+//CHECK#5
+if (!(1.3 === 1.3)) {
+ $ERROR('#5: 1.3 === 1.3');
+}
+
+//CHECK#6
+if (!(-1.3 === -1.3)) {
+ $ERROR('#6: -1.3 === -1.3');
+}
+
+//CHECK#7
+if (!(Number.POSITIVE_INFINITY === -Number.NEGATIVE_INFINITY)) {
+ $ERROR('#7: +Infinity === -(-Infinity)');
+}
+
+//CHECK#8
+if (1 === 0.999999999999) {
+ $ERROR('#8: 1 !== 0.999999999999');
+}
+
+//CHECK#9
+if (!(1.0 === 1)) {
+ $ERROR('#9: 1.0 === 1');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A5.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A5.js
new file mode 100644
index 000000000..f32d7c5ae
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A5.js
@@ -0,0 +1,36 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Type(x) and Type(y) are String-s.
+ * Return true, if x and y are exactly the same sequence of characters; otherwise, return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A5.js
+ * @description x and y are primitive strings
+ */
+
+//CHECK#1
+if (!("" === "")) {
+ $ERROR('#1: "" === ""');
+}
+
+//CHECK#2
+if (!(" " === " ")) {
+ $ERROR('#2: " " === " "');
+}
+
+//CHECK#3
+if (!("string" === "string")) {
+ $ERROR('#3: "string" === "string"');
+}
+
+//CHECK#4
+if (" string" === "string ") {
+ $ERROR('#4: " string" !== "string "');
+}
+
+//CHECK#5
+if ("1.0" === "1") {
+ $ERROR('#5: "1.0" !== "1"');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.1.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.1.js
new file mode 100644
index 000000000..b392d432a
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.1.js
@@ -0,0 +1,25 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) and Type(y) are Undefined-s, return true
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A6.1.js
+ * @description void 0, eval("var x") is undefined
+ */
+
+//CHECK#1
+if (!(undefined === undefined)) {
+ $ERROR('#1: undefined === undefined');
+}
+
+//CHECK#2
+if (!(void 0 === undefined)) {
+ $ERROR('#2: void 0 === undefined');
+}
+
+//CHECK#3
+if (!(undefined === eval("var x"))) {
+ $ERROR('#3: undefined === eval("var x")');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.2.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.2.js
new file mode 100644
index 000000000..82bdbea6f
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A6.2.js
@@ -0,0 +1,15 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) and Type(y) are Null-s, return true
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A6.2.js
+ * @description null === null
+ */
+
+//CHECK#1
+if (!(null === null)) {
+ $ERROR('#1: null === null');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A7.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A7.js
new file mode 100644
index 000000000..0c27f3df5
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A7.js
@@ -0,0 +1,53 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Type(x) and Type(y) are Object-s.
+ * Return true, if x and y are references to the same Object; otherwise, return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A7.js
+ * @description Checking Boolean object, Number object, String object, Object object
+ */
+
+//CHECK#1
+if (new Object() === new Object()) {
+ $ERROR('#1: new Object() !== new Object()');
+}
+
+//CHECK#2
+if (new Object(true) === new Object(true)) {
+ $ERROR('#2: new Object() !== new Object()');
+}
+
+//CHECK#3
+if (new Object(false) === new Object(false)) {
+ $ERROR('#3: new Object() !== new Object()');
+}
+
+//CHECK#4
+if (new Object(+0) === new Object(-0)) {
+ $ERROR('#4: new Object(+0) !== new Object(-0)');
+}
+
+//CHECK#5
+x = {};
+y = x;
+if (!(x === y)) {
+ $ERROR('#5: x = {}; y = x; x === y');
+}
+
+//CHECK#6
+if (new Boolean(true) === new Number(1)) {
+ $ERROR('#6 new Boolean(true) === new Number(1)');
+}
+
+//CHECK#7
+if (new Number(1) === new String("1")) {
+ $ERROR('#7: new Number(1) === new String("1")');
+}
+
+//CHECK#8
+if (new String("1") === new Boolean(true)) {
+ $ERROR('#8: new String("x") === new Boolean(true)');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T1.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T1.js
new file mode 100644
index 000000000..ce51dddef
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T1.js
@@ -0,0 +1,65 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) is different from Type(y), return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A8_T1.js
+ * @description x or y is primitive boolean
+ */
+
+//CHECK#1
+if (true === new Boolean(true)) {
+ $ERROR('#1: true !== new Number(true)');
+}
+
+//CHECK#2
+if (true === 1) {
+ $ERROR('#2: true !== 1');
+}
+
+//CHECK#3
+if (true === new Number(true)) {
+ $ERROR('#3: true !== new Number(true)');
+}
+
+//CHECK#4
+if (true === "1") {
+ $ERROR('#4: true !== "1"');
+}
+
+//CHECK#5
+if (true === new String(true)) {
+ $ERROR('#5: true !== new String(true)');
+}
+
+//CHECK#6
+if (new Boolean(false) === false) {
+ $ERROR('#6: new Number(false) !== false');
+}
+
+//CHECK#7
+if (0 === false) {
+ $ERROR('#7: 0 !== false');
+}
+
+//CHECK#8
+if (new Number(false) === false) {
+ $ERROR('#8: new Number(false) !== false');
+}
+
+//CHECK#9
+if ("0" === false) {
+ $ERROR('#9: "0" !== false');
+}
+
+//CHECK#10
+if (false === new String(false)) {
+ $ERROR('#10: false !== new String(false)');
+}
+
+//CHECK#11
+if (true === {valueOf: function () {return true}}) {
+ $ERROR('#11: true === {valueOf: function () {return true}}');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T2.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T2.js
new file mode 100644
index 000000000..c7bfa4d5b
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T2.js
@@ -0,0 +1,65 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) is different from Type(y), return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A8_T2.js
+ * @description x or y is primitive number
+ */
+
+//CHECK#1
+if (1 === new Number(1)) {
+ $ERROR('#1: 1 !== new Number(1)');
+}
+
+//CHECK#2
+if (1 === true) {
+ $ERROR('#2: 1 !== true');
+}
+
+//CHECK#3
+if (1 === new Boolean(1)) {
+ $ERROR('#3: 1 !== new Boolean(1)');
+}
+
+//CHECK#4
+if (1 === "1") {
+ $ERROR('#4: 1 !== "1"');
+}
+
+//CHECK#5
+if (1 === new String(1)) {
+ $ERROR('#5: 1 !== new String(1)');
+}
+
+//CHECK#6
+if (new Number(0) === 0) {
+ $ERROR('#6: new Number(0) !== 0');
+}
+
+//CHECK#7
+if (false === 0) {
+ $ERROR('#7: false !== 0');
+}
+
+//CHECK#8
+if (new Boolean(0) === 0) {
+ $ERROR('#8: new Boolean(0) !== 0');
+}
+
+//CHECK#9
+if ("0" === 0) {
+ $ERROR('#9: "0" !== 0');
+}
+
+//CHECK#10
+if (new String(0) === 0) {
+ $ERROR('#10: new String(0) !== 0');
+}
+
+//CHECK#11
+if (1 === {valueOf: function () {return 1}}) {
+ $ERROR('#11: 1 === {valueOf: function () {return 1}}');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T3.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T3.js
new file mode 100644
index 000000000..a448bbd70
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T3.js
@@ -0,0 +1,65 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) is different from Type(y), return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A8_T3.js
+ * @description x or y is primitive string
+ */
+
+//CHECK#1
+if ("1" === new String("1")) {
+ $ERROR('#1: "1" !== new String("1")');
+}
+
+//CHECK#2
+if ("1" === true) {
+ $ERROR('#2: "1" !== true');
+}
+
+//CHECK#3
+if ("1" === new Boolean("1")) {
+ $ERROR('#3: "1" !== new Boolean("1")');
+}
+
+//CHECK#4
+if ("1" === 1) {
+ $ERROR('#4: "1" === 1');
+}
+
+//CHECK#5
+if ("1" === new Number("1")) {
+ $ERROR('#5: "1" === new Number("1")');
+}
+
+//CHECK#6
+if (new String(false) === false) {
+ $ERROR('#6: new Number(false) !== false');
+}
+
+//CHECK#7
+if (false === "0") {
+ $ERROR('#7: false !== "0"');
+}
+
+//CHECK#8
+if ("0" === new Boolean("0")) {
+ $ERROR('#8: "0" !== new Boolean("0")');
+}
+
+//CHECK#9
+if (false === 0) {
+ $ERROR('#9: false !== 0');
+}
+
+//CHECK#10
+if (false === new Number(false)) {
+ $ERROR('#10: false !== new Number(false)');
+}
+
+//CHECK#11
+if ("1" === {valueOf: function () {return "1"}}) {
+ $ERROR('#11: "1" === {valueOf: function () {return "1"}}');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T4.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T4.js
new file mode 100644
index 000000000..92aa846ca
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T4.js
@@ -0,0 +1,80 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) is different from Type(y), return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A8_T4.js
+ * @description x or y is null or undefined
+ */
+
+//CHECK#1
+if (undefined === null) {
+ $ERROR('#1: undefined !== null');
+}
+
+//CHECK#2
+if (null === undefined) {
+ $ERROR('#2: null !== undefined');
+}
+
+//CHECK#3
+if (null === 0) {
+ $ERROR('#3: null !== 0');
+}
+
+//CHECK#4
+if (0 === null) {
+ $ERROR('#4: 0 !== null');
+}
+
+//CHECK#5
+if (null === false) {
+ $ERROR('#5: null !== false');
+}
+
+//CHECK#6
+if (false === null) {
+ $ERROR('#6: false !== null');
+}
+
+//CHECK#7
+if (undefined === false) {
+ $ERROR('#7: undefined !== false');
+}
+
+//CHECK#8
+if (false === undefined) {
+ $ERROR('#8: false !== undefined');
+}
+
+//CHECK#9
+if (null === new Object()) {
+ $ERROR('#9: null !== new Object()');
+}
+
+//CHECK#10
+if (new Object() === null) {
+ $ERROR('#10: new Object() !== null');
+}
+
+//CHECK#11
+if (null === "null") {
+ $ERROR('#11: null !== "null"');
+}
+
+//CHECK#12
+if ("null" === null) {
+ $ERROR('#12: "null" !== null');
+}
+
+//CHECK#13
+if (undefined === "undefined") {
+ $ERROR('#13: undefined !== "undefined"');
+}
+
+//CHECK#14
+if ("undefined" === undefined) {
+ $ERROR('#14: "undefined" !== undefined');
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T5.js b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T5.js
new file mode 100644
index 000000000..5e6bdb2fd
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/S11.9.4_A8_T5.js
@@ -0,0 +1,28 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * If Type(x) is different from Type(y), return false
+ *
+ * @path ch11/11.9/11.9.4/S11.9.4_A8_T5.js
+ * @description Checking with such x and y that either x or y is primitive string and the other is primitive number
+ */
+
+//CHECK#1
+try {
+ throw 1;
+} catch(e) {
+ if (e === "1") {
+ $ERROR('#1: throw 1 !== "1"');
+ }
+}
+
+//CHECK#2
+try {
+ throw "1";
+} catch(e) {
+ if (1 === e) {
+ $ERROR('#2: 1 !== throw "1"');
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/browser.js b/js/src/tests/test262/ch11/11.9/11.9.4/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/browser.js
diff --git a/js/src/tests/test262/ch11/11.9/11.9.4/shell.js b/js/src/tests/test262/ch11/11.9/11.9.4/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.9/11.9.4/shell.js