summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/ch11/11.8/11.8.6
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.8/11.8.6
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.8/11.8.6')
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A1.js60
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T1.js35
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T2.js21
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T3.js21
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T1.js23
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T2.js26
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T3.js27
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A3.js65
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T1.js26
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T2.js26
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T3.js25
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T1.js47
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T2.js36
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T1.js21
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T2.js21
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T3.js27
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T4.js40
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T1.js22
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T2.js22
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T3.js23
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/browser.js0
-rw-r--r--js/src/tests/test262/ch11/11.8/11.8.6/shell.js0
22 files changed, 614 insertions, 0 deletions
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A1.js
new file mode 100644
index 000000000..282b9fda4
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_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 RelationalExpression and "instanceof" and between "instanceof" and ShiftExpression are allowed
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A1.js
+ * @description Checking by using eval
+ */
+
+//CHECK#1
+if (eval("({})\u0009instanceof\u0009Object") !== true) {
+ $ERROR('#1: ({})\\u0009instanceof\\u0009Object === true');
+}
+
+//CHECK#2
+if (eval("({})\u000Binstanceof\u000BObject") !== true) {
+ $ERROR('#2: ({})\\u000Binstanceof\\u000BObject === true');
+}
+
+//CHECK#3
+if (eval("({})\u000Cinstanceof\u000CObject") !== true) {
+ $ERROR('#3: ({})\\u000Cinstanceof\\u000CObject === true');
+}
+
+//CHECK#4
+if (eval("({})\u0020instanceof\u0020Object") !== true) {
+ $ERROR('#4: ({})\\u0020instanceof\\u0020Object === true');
+}
+
+//CHECK#5
+if (eval("({})\u00A0instanceof\u00A0Object") !== true) {
+ $ERROR('#5: ({})\\u00A0instanceof\\u00A0Object === true');
+}
+
+//CHECK#6
+if (eval("({})\u000Ainstanceof\u000AObject") !== true) {
+ $ERROR('#6: ({})\\u000Ainstanceof\\u000AObject === true');
+}
+
+//CHECK#7
+if (eval("({})\u000Dinstanceof\u000DObject") !== true) {
+ $ERROR('#7: ({})\\u000Dinstanceof\\u000DObject === true');
+}
+
+//CHECK#8
+if (eval("({})\u2028instanceof\u2028Object") !== true) {
+ $ERROR('#8: ({})\\u2028instanceof\\u2028Object === true');
+}
+
+//CHECK#9
+if (eval("({})\u2029instanceof\u2029Object") !== true) {
+ $ERROR('#9: ({})\\u2029instanceof\\u2029Object === true');
+}
+
+//CHECK#10
+if (eval("({})\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029instanceof\u0009\u000B\u000C\u0020\u00A0\u000A\u000D\u2028\u2029Object") !== true) {
+ $ERROR('#10: ({})\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029instanceof\\u0009\\u000B\\u000C\\u0020\\u00A0\\u000A\\u000D\\u2028\\u2029Object === true');
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T1.js
new file mode 100644
index 000000000..e7a31658c
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T1.js
@@ -0,0 +1,35 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * Operator "instanceof" uses GetValue
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A2.1_T1.js
+ * @description Either Expression is not Reference or GetBase is not null
+ */
+
+//CHECK#1
+if (({}) instanceof Object !== true) {
+ $ERROR('#1: ({}) instanceof Object === true');
+}
+
+//CHECK#2
+var object = {};
+if (object instanceof Object !== true) {
+ $ERROR('#2: var object = {}; object instanceof Object === true');
+}
+
+//CHECK#3
+var OBJECT = Object;
+if (({}) instanceof OBJECT !== true) {
+ $ERROR('#3: var OBJECT = Object; ({}) instanceof OBJECT === true');
+}
+
+//CHECK#4
+var object = {};
+var OBJECT = Object;
+if (object instanceof OBJECT !== true) {
+ $ERROR('#4: var object = {}; var OBJECT = Object; object instanceof OBJECT === true');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T2.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T2.js
new file mode 100644
index 000000000..9477b0b5d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_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 "instanceof" uses GetValue
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A2.1_T2.js
+ * @description If GetBase(RelationalExpression) is null, throw ReferenceError
+ */
+
+//CHECK#1
+try {
+ object instanceof Object;
+ $ERROR('#1.1: object instanceof Object throw ReferenceError. Actual: ' + (object instanceof Object));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: object instanceof Object throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T3.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.1_T3.js
new file mode 100644
index 000000000..bb0a094ce
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_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 "instanceof" uses GetValue
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A2.1_T3.js
+ * @description If GetBase(ShiftExpression) is null, throw ReferenceError
+ */
+
+//CHECK#1
+try {
+ ({}) instanceof OBJECT;
+ $ERROR('#1.1: ({}) instanceof OBJECT throw ReferenceError. Actual: ' + (({}) instanceof OBJECT));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: ({}) instanceof OBJECT throw ReferenceError. Actual: ' + (e));
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T1.js
new file mode 100644
index 000000000..957c99b3b
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_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.8/11.8.6/S11.8.6_A2.4_T1.js
+ * @description Checking with "="
+ */
+
+//CHECK#1
+var OBJECT = 0;
+if ((OBJECT = Object, {}) instanceof OBJECT !== true) {
+ $ERROR('#1: var OBJECT = 0; (OBJECT = Object, {}) instanceof OBJECT === true');
+}
+
+//CHECK#2
+var object = {};
+if (object instanceof (object = 0, Object) !== true) {
+ $ERROR('#2: var object = {}; object instanceof (object = 0, Object) === true');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T2.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T2.js
new file mode 100644
index 000000000..5f87c4342
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_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.8/11.8.6/S11.8.6_A2.4_T2.js
+ * @description Checking with "throw"
+ */
+
+//CHECK#1
+var x = function () { throw "x"; };
+var y = function () { throw "y"; };
+try {
+ x() instanceof y();
+ $ERROR('#1.1: var x = function () { throw "x"; }; var y = function () { throw "y"; }; x() instanceof y() throw "x". Actual: ' + (x() instanceof 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() instanceof y() throw "x". Actual: ' + (e));
+ }
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T3.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A2.4_T3.js
new file mode 100644
index 000000000..06ef16073
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_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.8/11.8.6/S11.8.6_A2.4_T3.js
+ * @description Checking with undeclarated variables
+ */
+
+//CHECK#1
+try {
+ object instanceof (object = {}, Object);
+ $ERROR('#1.1: object instanceof (object = {}, Object) throw ReferenceError. Actual: ' + (object instanceof (object = {}, Object)));
+}
+catch (e) {
+ if ((e instanceof ReferenceError) !== true) {
+ $ERROR('#1.2: object instanceof (object = {}, Object) throw ReferenceError. Actual: ' + (e));
+ }
+}
+
+//CHECK#2
+if ((OBJECT = Object, {}) instanceof OBJECT !== true) {
+ $ERROR('#2: (OBJECT = Object, {}) instanceof OBJECT !== true');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A3.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A3.js
new file mode 100644
index 000000000..da3d7e5dc
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A3.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 ShiftExpression is not an object, throw TypeError
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A3.js
+ * @description Checking all the types of primitives
+ */
+
+//CHECK#1
+try {
+ true instanceof true;
+ $ERROR('#1: true instanceof true throw TypeError');
+}
+catch (e) {
+ if (e instanceof TypeError !== true) {
+ $ERROR('#1: true instanceof true throw TypeError');
+ }
+}
+
+//CHECK#2
+try {
+ 1 instanceof 1;
+ $ERROR('#2: 1 instanceof 1 throw TypeError');
+}
+catch (e) {
+ if (e instanceof TypeError !== true) {
+ $ERROR('#2: 1 instanceof 1 throw TypeError');
+ }
+}
+
+//CHECK#3
+try {
+ "string" instanceof "string";
+ $ERROR('#3: "string" instanceof "string" throw TypeError');
+}
+catch (e) {
+ if (e instanceof TypeError !== true) {
+ $ERROR('#3: "string" instanceof "string" throw TypeError');
+ }
+}
+
+//CHECK#4
+try {
+ undefined instanceof undefined;
+ $ERROR('#4: undefined instanceof undefined throw TypeError');
+}
+catch (e) {
+ if (e instanceof TypeError !== true) {
+ $ERROR('#4: undefined instanceof undefined throw TypeError');
+ }
+}
+
+//CHECK#5
+try {
+ null instanceof null;
+ $ERROR('#5: null instanceof null throw TypeError');
+}
+catch (e) {
+ if (e instanceof TypeError !== true) {
+ $ERROR('#5: null instanceof null throw TypeError');
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T1.js
new file mode 100644
index 000000000..0f9d2319d
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_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.
+
+/**
+ * Only constructor call (with "new" keyword) makes instance
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A4_T1.js
+ * @description Checking Boolean case
+ */
+
+//CHECK#1
+if (false instanceof Boolean) {
+ $ERROR('#1: false is not instanceof Boolean');
+}
+
+//CHECK#2
+if (Boolean(false) instanceof Boolean) {
+ $ERROR('#2: Boolean(false) is not instanceof Boolean');
+}
+
+//CHECK#3
+if (new Boolean instanceof Boolean !== true) {
+ $ERROR('#3: new Boolean instanceof Boolean');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T2.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T2.js
new file mode 100644
index 000000000..a4f1f3c02
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_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.
+
+/**
+ * Only constructor call (with "new" keyword) makes instance
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A4_T2.js
+ * @description Checking Number case
+ */
+
+//CHECK#1
+if (0 instanceof Number) {
+ $ERROR('#1: 0 is not instanceof Number');
+}
+
+//CHECK#2
+if (Number(0) instanceof Number) {
+ $ERROR('#2: Number(0) is not instanceof Number');
+}
+
+//CHECK#3
+if (new Number instanceof Number !== true) {
+ $ERROR('#3: new Number instanceof Number');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T3.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T3.js
new file mode 100644
index 000000000..c8220049c
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A4_T3.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.
+
+/**
+ * Only constructor call (with "new" keyword) makes instance
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A4_T3.js
+ * @description Checking String case
+ */
+
+//CHECK#1
+if ("" instanceof String) {
+ $ERROR('#1: "" is not instanceof String');
+}
+
+//CHECK#2
+if (String("") instanceof String) {
+ $ERROR('#2: String("") is not instanceof String');
+}
+
+//CHECK#3
+if (new String instanceof String !== true) {
+ $ERROR('#3: new String instanceof String');
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T1.js
new file mode 100644
index 000000000..66d61034c
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T1.js
@@ -0,0 +1,47 @@
+// Copyright 2009 the Sputnik authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/**
+ * TypeError is subclass of Error from instanceof operator point of view
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A5_T1.js
+ * @description Checking Error case
+ */
+
+var __err = new Error;
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#1
+if (!(__err instanceof Error)) {
+ $ERROR('#1: TypeError is subclass of Error from instanceof operator poit of view');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#2
+if (__err instanceof TypeError) {
+ $ERROR('#2: TypeError is subclass of Error from instanceof operator poit of view');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+var err__ = Error('failed');
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#3
+if (!(err__ instanceof Error)) {
+ $ERROR('#3: TypeError is subclass of Error from instanceof operator poit of view');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+//////////////////////////////////////////////////////////////////////////////
+//CHECK#4
+if (err__ instanceof TypeError) {
+ $ERROR('#4: TypeError is subclass of Error from instanceof operator poit of view');
+}
+//
+//////////////////////////////////////////////////////////////////////////////
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T2.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T2.js
new file mode 100644
index 000000000..340f09ff4
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A5_T2.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.
+
+/**
+ * TypeError is subclass of Error from instanceof operator point of view
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A5_T2.js
+ * @description Checking TypeError case
+ */
+
+var __t__err = new TypeError;
+
+//CHECK#1
+if (!(__t__err instanceof Error)) {
+ $ERROR('#1: TypeError is subclass of Error from instanceof operator poit of view');
+}
+
+//CHECK#2
+if (!(__t__err instanceof TypeError)) {
+ $ERROR('#2: TypeError is subclass of Error from instanceof operator poit of view');
+}
+
+//////////////////////////////////////////////////////////////////////////////
+var err__t__ = TypeError('failed');
+
+//CHECK#3
+if (!(err__t__ instanceof Error)) {
+ $ERROR('#3: TypeError is subclass of Error from instanceof operator poit of view');
+}
+
+//CHECK#4
+if (!(err__t__ instanceof TypeError)) {
+ $ERROR('#4: TypeError is subclass of Error from instanceof operator poit of view');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T1.js
new file mode 100644
index 000000000..16e0d82b3
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T1.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.
+
+/**
+ * Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A6_T1.js
+ * @description Checking "this" case
+ */
+
+//CHECK#1
+try{
+ ({}) instanceof this;
+ $ERROR('#1: Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+}
+catch(e){
+ if (e instanceof TypeError !== true) {
+ $ERROR('#1: Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T2.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T2.js
new file mode 100644
index 000000000..f25dbed82
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_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.
+
+/**
+ * Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A6_T2.js
+ * @description Checking Math case
+ */
+
+//CHECK#1
+try{
+ 1 instanceof Math;
+ $ERROR('#1: 1 instanceof Math throw TypeError');
+}
+catch(e){
+ if (e instanceof TypeError !== true) {
+ $ERROR('#1: 1 instanceof Math throw TypeError');
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T3.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T3.js
new file mode 100644
index 000000000..24773ad97
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_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.
+
+/**
+ * Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A6_T3.js
+ * @description Checking if RelationalExpression is function
+ */
+
+function MyFunct(){return 0};
+
+//CHECK#1
+if (MyFunct instanceof MyFunct){
+ $ERROR('#1 function MyFunct(){return 0}; MyFunct instanceof MyFunct === false');
+}
+
+//CHECK#2
+if (MyFunct instanceof Function !== true){
+ $ERROR('#2 function MyFunct(){return 0}; MyFunct instanceof Function === true');
+}
+
+//CHECK#3
+if (MyFunct instanceof Object !== true){
+ $ERROR('#3 function MyFunct(){return 0}; MyFunct instanceof Object === true');
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T4.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T4.js
new file mode 100644
index 000000000..68aa843e8
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A6_T4.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.
+
+/**
+ * Only Function objects implement [[HasInstance]] and can be proper ShiftExpression for the "instanceof" operator consequently
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A6_T4.js
+ * @description Checking if RelationalExpression is object
+ */
+
+MyFunct = function(){};
+__my__funct = new MyFunct;
+
+
+//CHECK#1
+if (!(__my__funct instanceof MyFunct)){
+ $ERROR('#1 Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+}
+
+//CHECK#2
+if (__my__funct instanceof Function){
+ $ERROR('#2 Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+}
+
+//CHECK#3
+if (!(__my__funct instanceof Object)){
+ $ERROR('#3 Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+}
+
+//CHECK#4
+try{
+ __my__funct instanceof __my__funct;
+ $ERROR('#4 Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+}
+catch(e){
+ if (e instanceof TypeError !== true) {
+ $ERROR('#4 Only Function objects implement [[HasInstance]] and consequently can be proper ShiftExpression for The instanceof operator');
+ }
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T1.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T1.js
new file mode 100644
index 000000000..97944a5fd
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_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.
+
+/**
+ * When "instanceof" returns true it means that GetValue(RelationalExpression) is constructed with ShiftExpression
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A7_T1.js
+ * @description Checking Object object
+ */
+
+var __obj={};
+
+//CHECK#1
+if (!(__obj instanceof Object)) {
+ $ERROR('#1: If instanceof returns true then GetValue(RelationalExpression) was constructed with ShiftExpression');
+}
+
+//CHECK#2
+if (__obj.constructor !== Object) {
+ $ERROR('#2: If instanceof returns true then GetValue(RelationalExpression) was constructed with ShiftExpression');
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T2.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T2.js
new file mode 100644
index 000000000..c77c93c18
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_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.
+
+/**
+ * When "instanceof" returns true it means that GetValue(RelationalExpression) is constructed with ShiftExpression
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A7_T2.js
+ * @description Checking Array object
+ */
+
+var __arr=[];
+
+//CHECK#1
+if (!(__arr instanceof Array)) {
+ $ERROR('#1: If instanceof returns true then GetValue(RelationalExpression) was constructed with ShiftExpression');
+}
+
+//CHECK#2
+if (__arr.constructor !== Array) {
+ $ERROR('#2: If instanceof returns true then GetValue(RelationalExpression) was constructed with ShiftExpression');
+}
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T3.js b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T3.js
new file mode 100644
index 000000000..8d476a8ad
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/S11.8.6_A7_T3.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.
+
+/**
+ * When "instanceof" returns true it means that GetValue(RelationalExpression) is constructed with ShiftExpression
+ *
+ * @path ch11/11.8/11.8.6/S11.8.6_A7_T3.js
+ * @description Checking Function object
+ */
+
+var __func = new Function;
+
+//CHECK#1
+if (!(__func instanceof Function)) {
+ $ERROR('#1: If instanceof returns true then GetValue(RelationalExpression) was constructed with ShiftExpression');
+}
+
+//CHECK#2
+if (__func.constructor !== Function) {
+ $ERROR('#2: If instanceof returns true then GetValue(RelationalExpression) was constructed with ShiftExpression');
+}
+
+
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/browser.js b/js/src/tests/test262/ch11/11.8/11.8.6/browser.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/browser.js
diff --git a/js/src/tests/test262/ch11/11.8/11.8.6/shell.js b/js/src/tests/test262/ch11/11.8/11.8.6/shell.js
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/js/src/tests/test262/ch11/11.8/11.8.6/shell.js