| /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ |
| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| |
| /** |
| * 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-005-n"; |
| var VERSION = "ECMA_2"; |
| var TITLE = "instanceof" |
| |
| startTest(); |
| writeHeaderToLog( SECTION + " "+ TITLE); |
| |
| function InstanceOf( object_1, object_2, expect ) { |
| result = object_1 instanceof object_2; |
| |
| 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 |
| |
| DESCRIPTION = "Identifier is a function, prototype of Identifier is not an object"; |
| EXPECTED = "error"; |
| |
| InstanceOf( new GenB(), GenB, "error" ); |
| |
| test(); |