summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/tests/mozilla/ecma_2/Expressions/instanceof-005-n.js
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/ecma_2/Expressions/instanceof-005-n.js')
-rw-r--r--Source/JavaScriptCore/tests/mozilla/ecma_2/Expressions/instanceof-005-n.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/ecma_2/Expressions/instanceof-005-n.js b/Source/JavaScriptCore/tests/mozilla/ecma_2/Expressions/instanceof-005-n.js
new file mode 100644
index 0000000..c3a621d
--- /dev/null
+++ b/Source/JavaScriptCore/tests/mozilla/ecma_2/Expressions/instanceof-005-n.js
@@ -0,0 +1,84 @@
+/**
+ * File Name: instanceof-001.js
+ * ECMA Section: 11.8.6
+ * Description:
+ *
+ * RelationalExpression instanceof Identifier
+ *
+ * Author: christine@netscape.com
+ * Date: 2 September 1998
+ */
+ var SECTION = "instanceof-001";
+ var VERSION = "ECMA_2";
+ var TITLE = "instanceof"
+
+ startTest();
+ writeHeaderToLog( SECTION + " "+ TITLE);
+
+ var tc = 0;
+ var testcases = new Array();
+
+ function InstanceOf( object_1, object_2, expect ) {
+ result = object_1 instanceof object_2;
+
+ testcases[tc++] = new TestCase(
+ SECTION,
+ "(" + object_1 + ") instanceof " + object_2,
+ expect,
+ result );
+ }
+
+ function Gen3(value) {
+ this.value = value;
+ this.generation = 3;
+ this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" );
+ }
+ Gen3.name = 3;
+ Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\"");
+
+ function Gen2(value) {
+ this.value = value;
+ this.generation = 2;
+ }
+ Gen2.name = 2;
+ Gen2.prototype = new Gen3();
+
+ function Gen1(value) {
+ this.value = value;
+ this.generation = 1;
+ }
+ Gen1.name = 1;
+ Gen1.prototype = new Gen2();
+
+ function Gen0(value) {
+ this.value = value;
+ this.generation = 0;
+ }
+ Gen0.name = 0;
+ Gen0.prototype = new Gen1();
+
+
+ function GenA(value) {
+ this.value = value;
+ this.generation = "A";
+ this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+
+ }
+ GenA.prototype = new Gen0();
+ GenA.name = "A";
+
+ function GenB(value) {
+ this.value = value;
+ this.generation = "B";
+ this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" );
+ }
+ GenB.name = "B"
+ GenB.prototype = void 0;
+
+
+ // Identifier is a function, prototype of Identifier is not an object
+
+ InstanceOf( new GenB(), GenB, false );
+
+
+ test(); \ No newline at end of file