Skip to content

Commit f578ee8

Browse files
committed
Adding a few tests
1 parent 413f278 commit f578ee8

8 files changed

Lines changed: 166 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//// [classExpression3.ts]
2+
let C = class extends class extends class { a = 1 } { b = 2 } { c = 3 };
3+
let c = new C();
4+
c.a;
5+
c.b;
6+
c.c;
7+
8+
9+
//// [classExpression3.js]
10+
var __extends = (this && this.__extends) || function (d, b) {
11+
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
12+
function __() { this.constructor = d; }
13+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
14+
};
15+
var C = (function (_super) {
16+
__extends(class_1, _super);
17+
function class_1() {
18+
_super.apply(this, arguments);
19+
this.c = 3;
20+
}
21+
return class_1;
22+
})((function (_super) {
23+
__extends(class_2, _super);
24+
function class_2() {
25+
_super.apply(this, arguments);
26+
this.b = 2;
27+
}
28+
return class_2;
29+
})((function () {
30+
function class_3() {
31+
this.a = 1;
32+
}
33+
return class_3;
34+
})()));
35+
var c = new C();
36+
c.a;
37+
c.b;
38+
c.c;
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
=== tests/cases/conformance/classes/classExpressions/classExpression3.ts ===
2+
let C = class extends class extends class { a = 1 } { b = 2 } { c = 3 };
3+
>C : Symbol(C, Decl(classExpression3.ts, 0, 3))
4+
>a : Symbol((Anonymous class).a, Decl(classExpression3.ts, 0, 43))
5+
>b : Symbol((Anonymous class).b, Decl(classExpression3.ts, 0, 53))
6+
>c : Symbol((Anonymous class).c, Decl(classExpression3.ts, 0, 63))
7+
8+
let c = new C();
9+
>c : Symbol(c, Decl(classExpression3.ts, 1, 3))
10+
>C : Symbol(C, Decl(classExpression3.ts, 0, 3))
11+
12+
c.a;
13+
>c.a : Symbol((Anonymous class).a, Decl(classExpression3.ts, 0, 43))
14+
>c : Symbol(c, Decl(classExpression3.ts, 1, 3))
15+
>a : Symbol((Anonymous class).a, Decl(classExpression3.ts, 0, 43))
16+
17+
c.b;
18+
>c.b : Symbol((Anonymous class).b, Decl(classExpression3.ts, 0, 53))
19+
>c : Symbol(c, Decl(classExpression3.ts, 1, 3))
20+
>b : Symbol((Anonymous class).b, Decl(classExpression3.ts, 0, 53))
21+
22+
c.c;
23+
>c.c : Symbol((Anonymous class).c, Decl(classExpression3.ts, 0, 63))
24+
>c : Symbol(c, Decl(classExpression3.ts, 1, 3))
25+
>c : Symbol((Anonymous class).c, Decl(classExpression3.ts, 0, 63))
26+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
=== tests/cases/conformance/classes/classExpressions/classExpression3.ts ===
2+
let C = class extends class extends class { a = 1 } { b = 2 } { c = 3 };
3+
>C : typeof (Anonymous class)
4+
>class extends class extends class { a = 1 } { b = 2 } { c = 3 } : typeof (Anonymous class)
5+
>class extends class { a = 1 } { b = 2 } : (Anonymous class)
6+
>class { a = 1 } : (Anonymous class)
7+
>a : number
8+
>1 : number
9+
>b : number
10+
>2 : number
11+
>c : number
12+
>3 : number
13+
14+
let c = new C();
15+
>c : (Anonymous class)
16+
>new C() : (Anonymous class)
17+
>C : typeof (Anonymous class)
18+
19+
c.a;
20+
>c.a : number
21+
>c : (Anonymous class)
22+
>a : number
23+
24+
c.b;
25+
>c.b : number
26+
>c : (Anonymous class)
27+
>b : number
28+
29+
c.c;
30+
>c.c : number
31+
>c : (Anonymous class)
32+
>c : number
33+
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
//// [classExpression4.ts]
2+
let C = class {
3+
foo() {
4+
return new C();
5+
}
6+
};
7+
let x = (new C).foo();
8+
9+
10+
//// [classExpression4.js]
11+
var C = (function () {
12+
function class_1() {
13+
}
14+
class_1.prototype.foo = function () {
15+
return new C();
16+
};
17+
return class_1;
18+
})();
19+
var x = (new C).foo();
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
=== tests/cases/conformance/classes/classExpressions/classExpression4.ts ===
2+
let C = class {
3+
>C : Symbol(C, Decl(classExpression4.ts, 0, 3))
4+
5+
foo() {
6+
>foo : Symbol((Anonymous class).foo, Decl(classExpression4.ts, 0, 15))
7+
8+
return new C();
9+
>C : Symbol(C, Decl(classExpression4.ts, 0, 3))
10+
}
11+
};
12+
let x = (new C).foo();
13+
>x : Symbol(x, Decl(classExpression4.ts, 5, 3))
14+
>(new C).foo : Symbol((Anonymous class).foo, Decl(classExpression4.ts, 0, 15))
15+
>C : Symbol(C, Decl(classExpression4.ts, 0, 3))
16+
>foo : Symbol((Anonymous class).foo, Decl(classExpression4.ts, 0, 15))
17+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/classes/classExpressions/classExpression4.ts ===
2+
let C = class {
3+
>C : typeof (Anonymous class)
4+
>class { foo() { return new C(); }} : typeof (Anonymous class)
5+
6+
foo() {
7+
>foo : () => (Anonymous class)
8+
9+
return new C();
10+
>new C() : (Anonymous class)
11+
>C : typeof (Anonymous class)
12+
}
13+
};
14+
let x = (new C).foo();
15+
>x : (Anonymous class)
16+
>(new C).foo() : (Anonymous class)
17+
>(new C).foo : () => (Anonymous class)
18+
>(new C) : (Anonymous class)
19+
>new C : (Anonymous class)
20+
>C : typeof (Anonymous class)
21+
>foo : () => (Anonymous class)
22+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
let C = class extends class extends class { a = 1 } { b = 2 } { c = 3 };
2+
let c = new C();
3+
c.a;
4+
c.b;
5+
c.c;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
let C = class {
2+
foo() {
3+
return new C();
4+
}
5+
};
6+
let x = (new C).foo();

0 commit comments

Comments
 (0)