-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
/
dep-decl.js
166 lines (144 loc) · 3.06 KB
/
dep-decl.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
import { A, B, getC, getD, getE, getF, Foo, Pure, DateFormatter, ConditionalExpression, LogicalExpression } from "./dep2?decl";
import { A3, B3, C3, D3, E3, F3, Pure3, ConditionalExpression3, LogicalExpression3 } from "./dep3?decl";
export class A1 extends A {
render() {
return new A2();
}
}
export class B1 extends B {
render() {
return new B2();
}
}
// prettier-ignore
export class C1 extends /*#__PURE__*/ getC() {
render() {
return new C2();
}
}
// prettier-ignore
export class D1 extends /*@__PURE__*/ getD() {
render() {
return new D2();
}
}
export class E1 extends getE() {
render() {
return new E2();
}
}
export class F1 extends getF() {
render() {
return new F2();
}
}
function foo(instance) {
return new instance()
}
class Bar extends Foo {
static prop = 42;
static a = foo(this).prop;
static b = foo(Bar).prop;
static c = foo(super.Bar).prop;
static inStatic1;
static inStatic2;
static inStatic3;
static {
this.inStatic1 = new Bar().prop;
this.inStatic2 = new super.Bar().prop;
this.inStatic3 = (new this).prop;
}
}
class BarA extends Foo {
static prop = 42;
static a = foo(this).prop;
}
class BarB extends Foo {
static prop = 42;
static b = foo(Bar).prop;
}
class BarC extends Foo {
static prop = 42;
static c = foo(super.Bar).prop;
}
class BarPA extends Foo {
static prop = 42;
static #a = foo(this).prop;
}
class BarPB extends Foo {
static prop = 42;
static #b = foo(Bar).prop;
}
class BarPC extends Foo {
static prop = 42;
static #c = foo(super.Bar).prop;
}
const ExpressionFoo = class Bar extends Foo {
static prop = 42;
static a = foo(this).prop;
static b = foo(Bar).prop;
static c = foo(super.Bar).prop;
static inStatic1;
static inStatic2;
static inStatic3;
static {
this.inStatic1 = new Bar().prop;
this.inStatic2 = new super.Bar().prop;
this.inStatic3 = (new this).prop;
}
}
export class Baz extends Foo {
static prop = 42;
static a = foo(this).prop;
static b = foo(Bar).prop;
static c = foo(super.Bar).prop;
static inStatic1;
static inStatic2;
static inStatic3;
static {
this.inStatic1 = new Bar().prop;
this.inStatic2 = new super.Bar().prop;
this.inStatic3 = (new this).prop;
}
}
export default class DefaultBar extends Foo {
static prop = 42;
static a = foo(this).prop;
static b = foo(Bar).prop;
static c = foo(super.Bar).prop;
static inStatic1;
static inStatic2;
static inStatic3;
static {
this.inStatic1 = new Bar().prop;
this.inStatic2 = new super.Bar().prop;
this.inStatic3 = (new this).prop;
}
}
export class ExtendsPure extends Pure {
render() {
return new Pure3();
}
}
export class DateBar extends DateFormatter {
constructor() {
super();
}
render() {}
}
export class ConditionalExpression1 extends ConditionalExpression {
render() {
return new ConditionalExpression3();
}
}
export class LogicalExpression1 extends LogicalExpression {
render() {
return new LogicalExpression3();
}
}
export class A2 extends A3 {}
export class B2 extends B3 {}
export class C2 extends C3 {}
export class D2 extends D3 {}
export class E2 extends E3 {}
export class F2 extends F3 {}