Skip to content

Commit 8537232

Browse files
Add decorator test for a decorator on a class expression.
1 parent be26d41 commit 8537232

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
tests/cases/compiler/classExpressionWithDecorator1.ts(1,9): error TS1109: Expression expected.
2+
tests/cases/compiler/classExpressionWithDecorator1.ts(1,10): error TS2304: Cannot find name 'decorate'.
3+
4+
5+
==== tests/cases/compiler/classExpressionWithDecorator1.ts (2 errors) ====
6+
var v = @decorate class C { static p = 1 };
7+
~
8+
!!! error TS1109: Expression expected.
9+
~~~~~~~~
10+
!!! error TS2304: Cannot find name 'decorate'.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//// [classExpressionWithDecorator1.ts]
2+
var v = @decorate class C { static p = 1 };
3+
4+
//// [classExpressionWithDecorator1.js]
5+
var __decorate = this.__decorate || function (decorators, target, key, value) {
6+
var kind = typeof (arguments.length == 2 ? value = target : value);
7+
for (var i = decorators.length - 1; i >= 0; --i) {
8+
var decorator = decorators[i];
9+
switch (kind) {
10+
case "function": value = decorator(value) || value; break;
11+
case "number": decorator(target, key, value); break;
12+
case "undefined": decorator(target, key); break;
13+
case "object": value = decorator(target, key, value) || value; break;
14+
}
15+
}
16+
return value;
17+
};
18+
var v = ;
19+
var C = (function () {
20+
function C() {
21+
}
22+
C.p = 1;
23+
C = __decorate([decorate], C);
24+
return C;
25+
})();
26+
;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
var v = @decorate class C { static p = 1 };

0 commit comments

Comments
 (0)