diff options
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.js | 84 |
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 |