|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 |
|
7 /** |
|
8 * File Name: instanceof-001.js |
|
9 * ECMA Section: 11.8.6 |
|
10 * Description: |
|
11 * |
|
12 * RelationalExpression instanceof Identifier |
|
13 * |
|
14 * Author: christine@netscape.com |
|
15 * Date: 2 September 1998 |
|
16 */ |
|
17 var SECTION = "instanceof-003-n"; |
|
18 var VERSION = "ECMA_2"; |
|
19 var TITLE = "instanceof" |
|
20 |
|
21 startTest(); |
|
22 writeHeaderToLog( SECTION + " "+ TITLE); |
|
23 |
|
24 function InstanceOf( object_1, object_2, expect ) { |
|
25 |
|
26 result = object_1 instanceof object_2; |
|
27 |
|
28 new TestCase( |
|
29 SECTION, |
|
30 "(" + object_1 + ") instanceof " + object_2, |
|
31 expect, |
|
32 result ); |
|
33 } |
|
34 |
|
35 function Gen3(value) { |
|
36 this.value = value; |
|
37 this.generation = 3; |
|
38 this.toString = new Function ( "return \"(Gen\"+this.generation+\" instance)\"" ); |
|
39 } |
|
40 Gen3.name = 3; |
|
41 Gen3.__proto__.toString = new Function( "return \"(\"+this.name+\" object)\""); |
|
42 |
|
43 function Gen2(value) { |
|
44 this.value = value; |
|
45 this.generation = 2; |
|
46 } |
|
47 Gen2.name = 2; |
|
48 Gen2.prototype = new Gen3(); |
|
49 |
|
50 function Gen1(value) { |
|
51 this.value = value; |
|
52 this.generation = 1; |
|
53 } |
|
54 Gen1.name = 1; |
|
55 Gen1.prototype = new Gen2(); |
|
56 |
|
57 function Gen0(value) { |
|
58 this.value = value; |
|
59 this.generation = 0; |
|
60 } |
|
61 Gen0.name = 0; |
|
62 Gen0.prototype = new Gen1(); |
|
63 |
|
64 |
|
65 function GenA(value) { |
|
66 this.value = value; |
|
67 this.generation = "A"; |
|
68 this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" ); |
|
69 |
|
70 } |
|
71 GenA.prototype = new Gen0(); |
|
72 GenA.name = "A"; |
|
73 |
|
74 function GenB(value) { |
|
75 this.value = value; |
|
76 this.generation = "B"; |
|
77 this.toString = new Function ( "return \"(instance of Gen\"+this.generation+\")\"" ); |
|
78 } |
|
79 GenB.name = "B" |
|
80 GenB.prototype = void 0; |
|
81 |
|
82 // Identifier is not a function |
|
83 DESCRIPTION = "Identifier is not a function"; |
|
84 EXPECTED = "error"; |
|
85 |
|
86 InstanceOf( true, true, "error" ); |
|
87 |
|
88 test(); |