@@ -285,12 +285,10 @@ var __extends = (this && this.__extends) || function (d, b) {
285
285
// emit output for the __decorate helper function
286
286
const decorateHelper = `
287
287
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
288
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc);
289
- switch (arguments.length) {
290
- case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);
291
- case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);
292
- case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);
293
- }
288
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
289
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
290
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
291
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
294
292
};` ;
295
293
296
294
// emit output for the __metadata helper function
@@ -1652,7 +1650,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
1652
1650
//
1653
1651
// The emit for the decorated computed property decorator is:
1654
1652
//
1655
- // Object.defineProperty(C.prototype, _a, __decorate([dec], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a) ));
1653
+ // __decorate([dec], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a));
1656
1654
//
1657
1655
if ( nodeIsDecorated ( node . parent ) ) {
1658
1656
if ( ! computedPropertyNamesToGeneratedNames ) {
@@ -4707,7 +4705,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
4707
4705
//
4708
4706
// let C = class {
4709
4707
// };
4710
- // Object.defineProperty(C, "name", { value: "C", configurable: true });
4711
4708
// C = __decorate([dec], C);
4712
4709
//
4713
4710
// * For an exported class declaration:
@@ -4719,7 +4716,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
4719
4716
//
4720
4717
// export let C = class {
4721
4718
// };
4722
- // Object.defineProperty(C, "name", { value: "C", configurable: true });
4723
4719
// C = __decorate([dec], C);
4724
4720
//
4725
4721
// * For a default export of a class declaration with a name:
@@ -4731,7 +4727,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
4731
4727
//
4732
4728
// let C = class {
4733
4729
// }
4734
- // Object.defineProperty(C, "name", { value: "C", configurable: true });
4735
4730
// C = __decorate([dec], C);
4736
4731
// export default C;
4737
4732
//
@@ -5059,21 +5054,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
5059
5054
//
5060
5055
// The emit for a method is:
5061
5056
//
5062
- // Object.defineProperty(C.prototype, "method",
5063
- // __decorate([
5064
- // dec,
5065
- // __param(0, dec2),
5066
- // __metadata("design:type", Function),
5067
- // __metadata("design:paramtypes", [Object]),
5068
- // __metadata("design:returntype", void 0)
5069
- // ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method")));
5057
+ // __decorate([
5058
+ // dec,
5059
+ // __param(0, dec2),
5060
+ // __metadata("design:type", Function),
5061
+ // __metadata("design:paramtypes", [Object]),
5062
+ // __metadata("design:returntype", void 0)
5063
+ // ], C.prototype, "method", undefined);
5070
5064
//
5071
5065
// The emit for an accessor is:
5072
5066
//
5073
- // Object.defineProperty(C.prototype, "accessor",
5074
- // __decorate([
5075
- // dec
5076
- // ], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor")));
5067
+ // __decorate([
5068
+ // dec
5069
+ // ], C.prototype, "accessor", undefined);
5077
5070
//
5078
5071
// The emit for a property is:
5079
5072
//
@@ -5084,18 +5077,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
5084
5077
5085
5078
writeLine ( ) ;
5086
5079
emitStart ( member ) ;
5087
- if ( member . kind !== SyntaxKind . PropertyDeclaration ) {
5088
- write ( "Object.defineProperty(" ) ;
5089
- emitStart ( member . name ) ;
5090
- emitClassMemberPrefix ( node , member ) ;
5091
- write ( ", " ) ;
5092
- emitExpressionForPropertyName ( member . name ) ;
5093
- emitEnd ( member . name ) ;
5094
- write ( "," ) ;
5095
- increaseIndent ( ) ;
5096
- writeLine ( ) ;
5097
- }
5098
-
5099
5080
write ( "__decorate([" ) ;
5100
5081
increaseIndent ( ) ;
5101
5082
writeLine ( ) ;
@@ -5119,15 +5100,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
5119
5100
emitExpressionForPropertyName ( member . name ) ;
5120
5101
emitEnd ( member . name ) ;
5121
5102
5122
- if ( member . kind !== SyntaxKind . PropertyDeclaration ) {
5123
- write ( ", Object.getOwnPropertyDescriptor(" ) ;
5124
- emitStart ( member . name ) ;
5125
- emitClassMemberPrefix ( node , member ) ;
5126
- write ( ", " ) ;
5127
- emitExpressionForPropertyName ( member . name ) ;
5128
- emitEnd ( member . name ) ;
5129
- write ( "))" ) ;
5130
- decreaseIndent ( ) ;
5103
+ if ( languageVersion > ScriptTarget . ES3 ) {
5104
+ if ( member . kind !== SyntaxKind . PropertyDeclaration ) {
5105
+ // We emit `null` here to indicate to `__decorate` that it can invoke `Object.getOwnPropertyDescriptor` directly.
5106
+ // We have this extra argument here so that we can inject an explicit property descriptor at a later date.
5107
+ write ( ", null" ) ;
5108
+ }
5109
+ else {
5110
+ // We emit `void 0` here to indicate to `__decorate` that it can invoke `Object.defineProperty` directly, but that it
5111
+ // should not invoke `Object.getOwnPropertyDescriptor`.
5112
+ write ( ", void 0" ) ;
5113
+ }
5131
5114
}
5132
5115
5133
5116
write ( ");" ) ;
0 commit comments