From 5c440384ba3438dee399ca7ddbb61af27f7f64d4 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Wed, 1 Apr 2015 17:58:28 -0700 Subject: [PATCH] Added __param helper for parameter decorators and cleaned up __decorate and __metadata --- src/compiler/checker.ts | 9 + src/compiler/commandLineParser.ts | 5 + src/compiler/emitter.ts | 457 +++---- src/compiler/types.ts | 2 + src/compiler/utilities.ts | 12 + .../baselines/reference/APISample_compile.js | 2 + .../reference/APISample_compile.types | 6 + tests/baselines/reference/APISample_linter.js | 2 + .../reference/APISample_linter.types | 6 + .../reference/APISample_transform.js | 2 + .../reference/APISample_transform.types | 6 + .../baselines/reference/APISample_watcher.js | 2 + .../reference/APISample_watcher.types | 6 + .../baselines/reference/decoratorOnClass1.js | 21 +- .../baselines/reference/decoratorOnClass2.js | 21 +- .../baselines/reference/decoratorOnClass3.js | 21 +- .../baselines/reference/decoratorOnClass4.js | 21 +- .../baselines/reference/decoratorOnClass5.js | 21 +- .../baselines/reference/decoratorOnClass8.js | 21 +- .../reference/decoratorOnClassAccessor1.js | 22 +- .../reference/decoratorOnClassAccessor2.js | 22 +- .../reference/decoratorOnClassAccessor4.js | 22 +- .../reference/decoratorOnClassAccessor5.js | 22 +- .../decoratorOnClassConstructorParameter1.js | 22 +- .../decoratorOnClassConstructorParameter4.js | 22 +- .../reference/decoratorOnClassMethod1.js | 22 +- .../reference/decoratorOnClassMethod10.js | 22 +- .../reference/decoratorOnClassMethod2.js | 22 +- .../reference/decoratorOnClassMethod4.js | 22 +- .../reference/decoratorOnClassMethod5.js | 22 +- .../reference/decoratorOnClassMethod6.js | 22 +- .../reference/decoratorOnClassMethod7.js | 22 +- .../reference/decoratorOnClassMethod8.js | 22 +- .../decoratorOnClassMethodParameter1.js | 23 +- .../reference/decoratorOnClassProperty1.js | 21 +- .../reference/decoratorOnClassProperty10.js | 21 +- .../reference/decoratorOnClassProperty11.js | 21 +- .../reference/decoratorOnClassProperty2.js | 21 +- .../reference/decoratorOnClassProperty6.js | 21 +- .../reference/decoratorOnClassProperty7.js | 21 +- .../sourceMapValidationDecorators.js | 60 +- .../sourceMapValidationDecorators.js.map | 2 +- ...ourceMapValidationDecorators.sourcemap.txt | 1070 +++++++++-------- 43 files changed, 1150 insertions(+), 1082 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 154eee2ef3e..35d50c213b0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -126,6 +126,7 @@ module ts { let stringLiteralTypes: Map = {}; let emitExtends = false; let emitDecorate = false; + let emitParam = false; let mergedSymbols: Symbol[] = []; let symbolLinks: SymbolLinks[] = []; @@ -8810,6 +8811,10 @@ module ts { } emitDecorate = true; + if (node.kind === SyntaxKind.Parameter) { + emitParam = true; + } + forEach(node.decorators, checkDecorator); } @@ -10823,6 +10828,10 @@ module ts { links.flags |= NodeCheckFlags.EmitDecorate; } + if (emitParam) { + links.flags |= NodeCheckFlags.EmitParam; + } + links.flags |= NodeCheckFlags.TypeChecked; } } diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 2f3b15f3777..48817798d81 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -156,6 +156,11 @@ module ts { shortName: "w", type: "boolean", description: Diagnostics.Watch_input_files, + }, + { + name: "emitDecoratorMetadata", + type: "boolean", + experimental: true } ]; diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 1e234123e62..c50d7459493 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -23,6 +23,33 @@ module ts { // @internal // targetSourceFile is when users only want one file in entire project to be emitted. This is used in compileOnSave feature export function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFile: SourceFile): EmitResult { + // emit output for the __extends helper function + const extendsHelper = ` +var __extends = this.__extends || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +};`; + + // emit output for the __decorate helper function + const decorateHelper = ` +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); + } +};`; + + // emit output for the __metadata helper function + const metadataHelper = ` +var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { };`; + + // emit output for the __param helper function + const paramHelper = ` +var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } };`; + let compilerOptions = host.getCompilerOptions(); let languageVersion = compilerOptions.target || ScriptTarget.ES3; let sourceMapDataList: SourceMapData[] = compilerOptions.sourceMap ? [] : undefined; @@ -98,6 +125,7 @@ module ts { let extendsEmitted = false; let decorateEmitted = false; + let paramEmitted = false; let tempFlags = 0; let tempVariables: Identifier[]; let tempParameters: Identifier[]; @@ -3697,12 +3725,12 @@ module ts { } function emitDecoratorsOfConstructor(node: ClassLikeDeclaration) { + let decorators = node.decorators; let constructor = getFirstConstructorWithBody(node); - if (constructor) { - emitDecoratorsOfParameters(node, constructor); - } + let hasDecoratedParameters = constructor && forEach(constructor.parameters, nodeIsDecorated); - if (!nodeIsDecorated(node)) { + // skip decoration of the constructor if neither it nor its parameters are decorated + if (!decorators && !hasDecoratedParameters) { return; } @@ -3720,8 +3748,18 @@ module ts { writeLine(); emitStart(node); emitDeclarationName(node); - write(" = "); - emitDecorateStart(node); + write(" = __decorate(["); + increaseIndent(); + writeLine(); + + let writeComma = false; + writeComma = emitDecoratorArray(decorators, writeComma); + writeComma = emitDecoratorsOfParameters(constructor, writeComma); + emitSerializedTypeMetadata(node, writeComma); + + decreaseIndent(); + writeLine(); + write("], "); emitDeclarationName(node); write(");"); emitEnd(node); @@ -3729,72 +3767,80 @@ module ts { } function emitDecoratorsOfMembers(node: ClassLikeDeclaration, staticFlag: NodeFlags) { - forEach(node.members, member => { + for (let member of node.members) { + // only emit members in the correct group if ((member.flags & NodeFlags.Static) !== staticFlag) { - return; + continue; } + // skip members that cannot be decorated (such as the constructor) + if (!nodeCanBeDecorated(member)) { + continue; + } + + // skip a member if it or any of its parameters are not decorated + if (!nodeOrChildIsDecorated(member)) { + continue; + } + + // skip an accessor declaration if it is not the first accessor let decorators: NodeArray; - switch (member.kind) { - case SyntaxKind.MethodDeclaration: - // emit decorators of the method's parameters - emitDecoratorsOfParameters(node, member); - decorators = member.decorators; - break; + let functionLikeMember: FunctionLikeDeclaration; + if (isAccessor(member)) { + let accessors = getAllAccessorDeclarations(node.members, member); + if (member !== accessors.firstAccessor) { + continue; + } - case SyntaxKind.GetAccessor: - case SyntaxKind.SetAccessor: - let accessors = getAllAccessorDeclarations(node.members, member); - if (member !== accessors.firstAccessor) { - // skip the second accessor as we processed it with the first. - return; - } + // get the decorators from the first accessor with decorators + decorators = accessors.firstAccessor.decorators; + if (!decorators && accessors.secondAccessor) { + decorators = accessors.secondAccessor.decorators; + } - if (accessors.setAccessor) { - // emit decorators of the set accessor parameter - emitDecoratorsOfParameters(node, accessors.setAccessor); - } - - // get the decorators from the first decorated accessor. - decorators = accessors.firstAccessor.decorators; - if (!decorators && accessors.secondAccessor) { - decorators = accessors.secondAccessor.decorators; - } - break; - - case SyntaxKind.PropertyDeclaration: - decorators = member.decorators; - break; - - default: - // Constructor cannot be decorated, and its parameters are handled in emitDecoratorsOfConstructor - // Other members (i.e. IndexSignature) cannot be decorated. - return; + // we only decorate parameters of the set accessor + functionLikeMember = accessors.setAccessor; } + else { + decorators = member.decorators; - if (!decorators) { - return; + // we only decorate the parameters here if this is a method + if (member.kind === SyntaxKind.MethodDeclaration) { + functionLikeMember = member; + } } // Emit the call to __decorate. Given the following: // // class C { - // @dec method() {} + // @dec method(@dec2 x) {} // @dec get accessor() {} // @dec prop; // } // // The emit for a method is: // - // Object.defineProperty(C.prototype, "method", __decorate([dec], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); + // Object.defineProperty(C.prototype, "method", + // __decorate([ + // dec, + // __param(0, dec2), + // __metadata("design:type", Function), + // __metadata("design:paramtypes", [Object]), + // __metadata("design:returntype", void 0) + // ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); // // The emit for an accessor is: // - // Object.defineProperty(C.prototype, "accessor", __decorate([dec], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); + // Object.defineProperty(C.prototype, "accessor", + // __decorate([ + // dec + // ], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); // // The emit for a property is: // - // __decorate([dec], C.prototype, "prop"); + // __decorate([ + // dec + // ], C.prototype, "prop"); // writeLine(); @@ -3806,10 +3852,23 @@ module ts { write(", "); emitExpressionForPropertyName(member.name); emitEnd(member.name); - write(", "); + write(","); + increaseIndent(); + writeLine(); } - emitDecorateStart(member); + write("__decorate(["); + increaseIndent(); + writeLine(); + + let writeComma = false; + writeComma = emitDecoratorArray(decorators, writeComma); + writeComma = emitDecoratorsOfParameters(functionLikeMember, writeComma); + emitSerializedTypeMetadata(member, writeComma); + + decreaseIndent(); + writeLine(); + write("], "); emitStart(member.name); emitClassMemberPrefix(node, member); write(", "); @@ -3824,80 +3883,135 @@ module ts { emitExpressionForPropertyName(member.name); emitEnd(member.name); write("))"); + decreaseIndent(); } write(");"); emitEnd(member); writeLine(); - }); - } - - function emitDecoratorsOfParameters(node: ClassLikeDeclaration, member: FunctionLikeDeclaration) { - forEach(member.parameters, (parameter, parameterIndex) => { - if (!nodeIsDecorated(parameter)) { - return; - } - - // Emit the decorators for a parameter. Given the following: - // - // class C { - // constructor(@dec p) { } - // method(@dec p) { } - // set accessor(@dec value) { } - // } - // - // The emit for a constructor is: - // - // __decorate([dec], C, void 0, 0); - // - // The emit for a parameter is: - // - // __decorate([dec], C.prototype, "method", 0); - // - // The emit for an accessor is: - // - // __decorate([dec], C.prototype, "accessor", 0); - // - - writeLine(); - emitStart(parameter); - emitDecorateStart(parameter); - emitStart(parameter.name); - - if (member.kind === SyntaxKind.Constructor) { - emitDeclarationName(node); - write(", void 0"); - } - else { - emitClassMemberPrefix(node, member); - write(", "); - emitExpressionForPropertyName(member.name); - } - - write(", "); - write(String(parameterIndex)); - emitEnd(parameter.name); - write(");"); - emitEnd(parameter); - writeLine(); - }); - } - - function emitDecorateStart(node: Declaration): void { - write("__decorate(["); - let decorators = node.decorators; - let decoratorCount = decorators.length; - for (let i = 0; i < decoratorCount; i++) { - if (i > 0) { - write(", "); - } - let decorator = decorators[i]; - emitStart(decorator); - emit(decorator.expression); - emitEnd(decorator); } - emitSerializedTypeMetadata(node); - write("], "); + } + + function emitDecoratorsOfParameters(node: FunctionLikeDeclaration, writeComma: boolean): boolean { + if (node) { + let parameterIndex = 0; + for (let parameter of node.parameters) { + if (nodeIsDecorated(parameter)) { + writeComma = emitDecoratorArray(parameter.decorators, writeComma, `__param(${parameterIndex}, `, ")"); + } + ++parameterIndex; + } + } + return writeComma; + } + + function emitDecoratorArray(decorators: NodeArray, writeComma: boolean, prefix?: string, postfix?: string): boolean { + if (decorators) { + let decoratorCount = decorators ? decorators.length : 0; + for (let i = 0; i < decoratorCount; i++) { + if (writeComma) { + write(","); + } + writeLine(); + + let decorator = decorators[i]; + emitStart(decorator); + write(prefix); + emit(decorator.expression); + write(postfix); + emitEnd(decorator); + writeComma = true; + } + } + return writeComma; + } + + function shouldEmitTypeMetadata(node: Declaration): boolean { + if (!compilerOptions.emitDecoratorMetadata) { + return false; + } + + switch (node.kind) { + case SyntaxKind.MethodDeclaration: + case SyntaxKind.GetAccessor: + case SyntaxKind.SetAccessor: + case SyntaxKind.PropertyDeclaration: + return true; + } + + return false; + } + + function shouldEmitReturnTypeMetadata(node: Declaration): boolean { + if (!compilerOptions.emitDecoratorMetadata) { + return false; + } + + switch (node.kind) { + case SyntaxKind.MethodDeclaration: + return true; + } + return false; + } + + function shouldEmitParamTypesMetadata(node: Declaration): boolean { + if (!compilerOptions.emitDecoratorMetadata) { + return false; + } + + switch (node.kind) { + case SyntaxKind.ClassDeclaration: + case SyntaxKind.MethodDeclaration: + case SyntaxKind.SetAccessor: + return true; + } + return false; + } + + function emitSerializedTypeMetadata(node: Declaration, writeComma: boolean): void { + if (shouldEmitTypeMetadata(node)) { + var serializedType = resolver.serializeTypeOfNode(node, getGeneratedNameForNode); + if (serializedType) { + if (writeComma) { + write(", "); + } + writeLine(); + write("__metadata('design:type', "); + emitSerializedType(node, serializedType); + write(")"); + writeComma = true; + } + } + if (shouldEmitParamTypesMetadata(node)) { + var serializedTypes = resolver.serializeParameterTypesOfNode(node, getGeneratedNameForNode); + if (serializedTypes) { + if (writeComma) { + write(", "); + } + writeLine(); + write("__metadata('design:paramtypes', ["); + for (var i = 0; i < serializedTypes.length; ++i) { + if (i > 0) { + write(", "); + } + emitSerializedType(node, serializedTypes[i]); + } + write("])"); + writeComma = true; + } + } + if (shouldEmitReturnTypeMetadata(node)) { + var serializedType = resolver.serializeReturnTypeOfNode(node, getGeneratedNameForNode); + if (serializedType) { + if (writeComma) { + write(", "); + } + writeLine(); + write("__metadata('design:returntype', "); + emitSerializedType(node, serializedType); + write(")"); + } + } } function serializeTypeNameSegment(location: Node, path: string[], index: number): string { @@ -3912,77 +4026,17 @@ module ts { } } - function shouldEmitTypeMetadata(node: Declaration): boolean { - switch (node.kind) { - case SyntaxKind.MethodDeclaration: - case SyntaxKind.GetAccessor: - case SyntaxKind.SetAccessor: - case SyntaxKind.PropertyDeclaration: - return true; - } - return false; - } - - function shouldEmitReturnTypeMetadata(node: Declaration): boolean { - switch (node.kind) { - case SyntaxKind.MethodDeclaration: - return true; - } - return false; - } - - function shouldEmitParamTypesMetadata(node: Declaration): boolean { - switch (node.kind) { - case SyntaxKind.ClassDeclaration: - case SyntaxKind.MethodDeclaration: - case SyntaxKind.SetAccessor: - return true; - } - return false; - } - - function emitSerializedTypeMetadata(node: Declaration): void { - if (shouldEmitTypeMetadata(node)) { - var serializedType = resolver.serializeTypeOfNode(node, getGeneratedNameForNode); - if (serializedType) { - write(", __metadata('design:type', "); - emitSerializedType(node, serializedType); - write(")"); - } - } - if (shouldEmitParamTypesMetadata(node)) { - var serializedTypes = resolver.serializeParameterTypesOfNode(node, getGeneratedNameForNode); - if (serializedTypes) { - write(", __metadata('design:paramtypes', ["); - for (var i = 0; i < serializedTypes.length; ++i) { - if (i > 0) { - write(", "); - } - emitSerializedType(node, serializedTypes[i]); - } - write("])"); - } - } - if (shouldEmitReturnTypeMetadata(node)) { - var serializedType = resolver.serializeReturnTypeOfNode(node, getGeneratedNameForNode); - if (serializedType) { - write(", __metadata('design:returntype', "); - emitSerializedType(node, serializedType); - write(")"); - } - } - } - function emitSerializedType(location: Node, name: string | string[]): void { if (typeof name === "string") { write(name); return; } else { - Debug.assert(name.length > 0, "Invalid type name path for serialization"); + Debug.assert(name.length > 0, "Invalid serialized type name"); write(`(${serializeTypeNameSegment(location, name, name.length - 1) }) || Object`); } } + function emitInterfaceDeclaration(node: InterfaceDeclaration) { emitOnlyPinnedOrTripleSlashComments(node); } @@ -4613,7 +4667,7 @@ module ts { return statements.length; } - function writeHelper(text: string): void { + function writeLines(text: string): void { let lines = text.split(/\r\n|\r|\n/g); for (let i = 0; i < lines.length; ++i) { let line = lines[i]; @@ -4632,42 +4686,25 @@ module ts { // emit prologue directives prior to __extends var startIndex = emitDirectivePrologues(node.statements, /*startWithNewLine*/ false); // Only Emit __extends function when target ES5. - // For target ES6 and above, we can emit classDeclaration as if. + // For target ES6 and above, we can emit classDeclaration as is. if ((languageVersion < ScriptTarget.ES6) && (!extendsEmitted && resolver.getNodeCheckFlags(node) & NodeCheckFlags.EmitExtends)) { - writeLine(); - write("var __extends = this.__extends || function (d, b) {"); - increaseIndent(); - writeLine(); - write("for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];"); - writeLine(); - write("function __() { this.constructor = d; }"); - writeLine(); - write("__.prototype = b.prototype;"); - writeLine(); - write("d.prototype = new __();"); - decreaseIndent(); - writeLine(); - write("};"); + writeLines(extendsHelper); extendsEmitted = true; } + if (!decorateEmitted && resolver.getNodeCheckFlags(node) & NodeCheckFlags.EmitDecorate) { - writeHelper(` -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } - } - return value; -}; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } };`); + writeLines(decorateHelper); + if (compilerOptions.emitDecoratorMetadata) { + writeLines(metadataHelper); + } decorateEmitted = true; } + + if (!paramEmitted && resolver.getNodeCheckFlags(node) & NodeCheckFlags.EmitParam) { + writeLines(paramHelper); + paramEmitted = true; + } + if (isExternalModule(node)) { if (languageVersion >= ScriptTarget.ES6) { emitES6Module(node, startIndex); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 5e206a05e0b..3337ea45b8b 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1383,6 +1383,7 @@ module ts { EnumValuesComputed = 0x00000080, BlockScopedBindingInLoop = 0x00000100, EmitDecorate = 0x00000200, // Emit __decorate + EmitParam = 0x00000400, // Emit __param helper for decorators } export interface NodeLinks { @@ -1608,6 +1609,7 @@ module ts { version?: boolean; watch?: boolean; separateCompilation?: boolean; + emitDecoratorMetadata?: boolean; /* @internal */ stripInternal?: boolean; [option: string]: string | number | boolean; } diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 1deb9ce97e2..e3efd12de0a 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -449,6 +449,18 @@ module ts { return false; } + export function isAccessor(node: Node): boolean { + if (node) { + switch (node.kind) { + case SyntaxKind.GetAccessor: + case SyntaxKind.SetAccessor: + return true; + } + } + + return false; + } + export function isFunctionLike(node: Node): boolean { if (node) { switch (node.kind) { diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index 7fb5427c42d..3486dfc1298 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -1087,6 +1087,7 @@ declare module "typescript" { EnumValuesComputed = 128, BlockScopedBindingInLoop = 256, EmitDecorate = 512, + EmitParam = 1024, } interface NodeLinks { resolvedType?: Type; @@ -1259,6 +1260,7 @@ declare module "typescript" { version?: boolean; watch?: boolean; separateCompilation?: boolean; + emitDecoratorMetadata?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index 5ceacea4864..e58e358451d 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -3529,6 +3529,9 @@ declare module "typescript" { EmitDecorate = 512, >EmitDecorate : NodeCheckFlags + + EmitParam = 1024, +>EmitParam : NodeCheckFlags } interface NodeLinks { >NodeLinks : NodeLinks @@ -4044,6 +4047,9 @@ declare module "typescript" { separateCompilation?: boolean; >separateCompilation : boolean + emitDecoratorMetadata?: boolean; +>emitDecoratorMetadata : boolean + [option: string]: string | number | boolean; >option : string } diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index 86d526e79bd..5b6eb70e21e 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -1118,6 +1118,7 @@ declare module "typescript" { EnumValuesComputed = 128, BlockScopedBindingInLoop = 256, EmitDecorate = 512, + EmitParam = 1024, } interface NodeLinks { resolvedType?: Type; @@ -1290,6 +1291,7 @@ declare module "typescript" { version?: boolean; watch?: boolean; separateCompilation?: boolean; + emitDecoratorMetadata?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index 38ae459eacc..57955508c85 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -3675,6 +3675,9 @@ declare module "typescript" { EmitDecorate = 512, >EmitDecorate : NodeCheckFlags + + EmitParam = 1024, +>EmitParam : NodeCheckFlags } interface NodeLinks { >NodeLinks : NodeLinks @@ -4190,6 +4193,9 @@ declare module "typescript" { separateCompilation?: boolean; >separateCompilation : boolean + emitDecoratorMetadata?: boolean; +>emitDecoratorMetadata : boolean + [option: string]: string | number | boolean; >option : string } diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index 19ddebee0ba..7ee34063cdb 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -1119,6 +1119,7 @@ declare module "typescript" { EnumValuesComputed = 128, BlockScopedBindingInLoop = 256, EmitDecorate = 512, + EmitParam = 1024, } interface NodeLinks { resolvedType?: Type; @@ -1291,6 +1292,7 @@ declare module "typescript" { version?: boolean; watch?: boolean; separateCompilation?: boolean; + emitDecoratorMetadata?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index 3cc1f478140..9bc9f38a993 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -3625,6 +3625,9 @@ declare module "typescript" { EmitDecorate = 512, >EmitDecorate : NodeCheckFlags + + EmitParam = 1024, +>EmitParam : NodeCheckFlags } interface NodeLinks { >NodeLinks : NodeLinks @@ -4140,6 +4143,9 @@ declare module "typescript" { separateCompilation?: boolean; >separateCompilation : boolean + emitDecoratorMetadata?: boolean; +>emitDecoratorMetadata : boolean + [option: string]: string | number | boolean; >option : string } diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index c2c5b78f849..cd4cea97262 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -1156,6 +1156,7 @@ declare module "typescript" { EnumValuesComputed = 128, BlockScopedBindingInLoop = 256, EmitDecorate = 512, + EmitParam = 1024, } interface NodeLinks { resolvedType?: Type; @@ -1328,6 +1329,7 @@ declare module "typescript" { version?: boolean; watch?: boolean; separateCompilation?: boolean; + emitDecoratorMetadata?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 1072b719e56..2b2f8d83f5e 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -3798,6 +3798,9 @@ declare module "typescript" { EmitDecorate = 512, >EmitDecorate : NodeCheckFlags + + EmitParam = 1024, +>EmitParam : NodeCheckFlags } interface NodeLinks { >NodeLinks : NodeLinks @@ -4313,6 +4316,9 @@ declare module "typescript" { separateCompilation?: boolean; >separateCompilation : boolean + emitDecoratorMetadata?: boolean; +>emitDecoratorMetadata : boolean + [option: string]: string | number | boolean; >option : string } diff --git a/tests/baselines/reference/decoratorOnClass1.js b/tests/baselines/reference/decoratorOnClass1.js index eff31559ba4..cd5c51e7a93 100644 --- a/tests/baselines/reference/decoratorOnClass1.js +++ b/tests/baselines/reference/decoratorOnClass1.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClass1.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - C = __decorate([dec, __metadata('design:paramtypes', [])], C); + C = __decorate([ + dec + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClass2.js b/tests/baselines/reference/decoratorOnClass2.js index b90db23abf1..fbd9a106ddf 100644 --- a/tests/baselines/reference/decoratorOnClass2.js +++ b/tests/baselines/reference/decoratorOnClass2.js @@ -6,24 +6,19 @@ export class C { } //// [decoratorOnClass2.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - C = __decorate([dec, __metadata('design:paramtypes', [])], C); + C = __decorate([ + dec + ], C); return C; })(); exports.C = C; diff --git a/tests/baselines/reference/decoratorOnClass3.js b/tests/baselines/reference/decoratorOnClass3.js index 990adc775e2..21536028091 100644 --- a/tests/baselines/reference/decoratorOnClass3.js +++ b/tests/baselines/reference/decoratorOnClass3.js @@ -7,23 +7,18 @@ class C { } //// [decoratorOnClass3.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - C = __decorate([dec, __metadata('design:paramtypes', [])], C); + C = __decorate([ + dec + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClass4.js b/tests/baselines/reference/decoratorOnClass4.js index 89afb51bf75..5099d16b5b4 100644 --- a/tests/baselines/reference/decoratorOnClass4.js +++ b/tests/baselines/reference/decoratorOnClass4.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClass4.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - C = __decorate([dec(), __metadata('design:paramtypes', [])], C); + C = __decorate([ + dec() + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClass5.js b/tests/baselines/reference/decoratorOnClass5.js index 264397450a3..0555f618e7e 100644 --- a/tests/baselines/reference/decoratorOnClass5.js +++ b/tests/baselines/reference/decoratorOnClass5.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClass5.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - C = __decorate([dec(), __metadata('design:paramtypes', [])], C); + C = __decorate([ + dec() + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClass8.js b/tests/baselines/reference/decoratorOnClass8.js index 87334f216a5..fad73c0c8fc 100644 --- a/tests/baselines/reference/decoratorOnClass8.js +++ b/tests/baselines/reference/decoratorOnClass8.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClass8.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - C = __decorate([dec(), __metadata('design:paramtypes', [])], C); + C = __decorate([ + dec() + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.js b/tests/baselines/reference/decoratorOnClassAccessor1.js index 102dc2d1b22..68fa7ccec0a 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor1.js +++ b/tests/baselines/reference/decoratorOnClassAccessor1.js @@ -6,20 +6,13 @@ class C { } //// [decoratorOnClassAccessor1.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } @@ -28,6 +21,9 @@ var C = (function () { enumerable: true, configurable: true }); - Object.defineProperty(C.prototype, "accessor", __decorate([dec, __metadata('design:type', Object)], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); + Object.defineProperty(C.prototype, "accessor", + __decorate([ + dec + ], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.js b/tests/baselines/reference/decoratorOnClassAccessor2.js index 400fd67c9f3..17d3e2e422d 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor2.js +++ b/tests/baselines/reference/decoratorOnClassAccessor2.js @@ -6,20 +6,13 @@ class C { } //// [decoratorOnClassAccessor2.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } @@ -28,6 +21,9 @@ var C = (function () { enumerable: true, configurable: true }); - Object.defineProperty(C.prototype, "accessor", __decorate([dec, __metadata('design:type', Object)], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); + Object.defineProperty(C.prototype, "accessor", + __decorate([ + dec + ], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.js b/tests/baselines/reference/decoratorOnClassAccessor4.js index 7564913f9a5..77bcb568fe1 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor4.js +++ b/tests/baselines/reference/decoratorOnClassAccessor4.js @@ -6,20 +6,13 @@ class C { } //// [decoratorOnClassAccessor4.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } @@ -28,6 +21,9 @@ var C = (function () { enumerable: true, configurable: true }); - Object.defineProperty(C.prototype, "accessor", __decorate([dec, __metadata('design:type', Number), __metadata('design:paramtypes', [Number])], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); + Object.defineProperty(C.prototype, "accessor", + __decorate([ + dec + ], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.js b/tests/baselines/reference/decoratorOnClassAccessor5.js index ffb88034d93..37fc33abefd 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor5.js +++ b/tests/baselines/reference/decoratorOnClassAccessor5.js @@ -6,20 +6,13 @@ class C { } //// [decoratorOnClassAccessor5.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } @@ -28,6 +21,9 @@ var C = (function () { enumerable: true, configurable: true }); - Object.defineProperty(C.prototype, "accessor", __decorate([dec, __metadata('design:type', Number), __metadata('design:paramtypes', [Number])], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); + Object.defineProperty(C.prototype, "accessor", + __decorate([ + dec + ], C.prototype, "accessor", Object.getOwnPropertyDescriptor(C.prototype, "accessor"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter1.js b/tests/baselines/reference/decoratorOnClassConstructorParameter1.js index 4f32240a4f2..a1748a725ba 100644 --- a/tests/baselines/reference/decoratorOnClassConstructorParameter1.js +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter1.js @@ -6,23 +6,19 @@ class C { } //// [decoratorOnClassConstructorParameter1.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; +var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; var C = (function () { function C(p) { } - __decorate([dec, __metadata('design:type', Number)], C, void 0, 0); + C = __decorate([ + __param(0, dec) + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter4.js b/tests/baselines/reference/decoratorOnClassConstructorParameter4.js index a9e5f2b9d6e..9d2b4a690ab 100644 --- a/tests/baselines/reference/decoratorOnClassConstructorParameter4.js +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter4.js @@ -6,23 +6,19 @@ class C { } //// [decoratorOnClassConstructorParameter4.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; +var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; var C = (function () { function C(public, p) { } - __decorate([dec, __metadata('design:type', Number)], C, void 0, 1); + C = __decorate([ + __param(1, dec) + ], C); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassMethod1.js b/tests/baselines/reference/decoratorOnClassMethod1.js index a1e61fafeab..23be1094305 100644 --- a/tests/baselines/reference/decoratorOnClassMethod1.js +++ b/tests/baselines/reference/decoratorOnClassMethod1.js @@ -6,24 +6,20 @@ class C { } //// [decoratorOnClassMethod1.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } C.prototype.method = function () { }; - Object.defineProperty(C.prototype, "method", __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); + Object.defineProperty(C.prototype, "method", + __decorate([ + dec + ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassMethod10.js b/tests/baselines/reference/decoratorOnClassMethod10.js index 8fb57de0bf4..f87e3137777 100644 --- a/tests/baselines/reference/decoratorOnClassMethod10.js +++ b/tests/baselines/reference/decoratorOnClassMethod10.js @@ -6,24 +6,20 @@ class C { } //// [decoratorOnClassMethod10.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } C.prototype.method = function () { }; - Object.defineProperty(C.prototype, "method", __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); + Object.defineProperty(C.prototype, "method", + __decorate([ + dec + ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassMethod2.js b/tests/baselines/reference/decoratorOnClassMethod2.js index 469fb23ebfa..33a22f419d4 100644 --- a/tests/baselines/reference/decoratorOnClassMethod2.js +++ b/tests/baselines/reference/decoratorOnClassMethod2.js @@ -6,24 +6,20 @@ class C { } //// [decoratorOnClassMethod2.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } C.prototype.method = function () { }; - Object.defineProperty(C.prototype, "method", __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); + Object.defineProperty(C.prototype, "method", + __decorate([ + dec + ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassMethod4.js b/tests/baselines/reference/decoratorOnClassMethod4.js index 271a4c9dfe0..038432f2cf0 100644 --- a/tests/baselines/reference/decoratorOnClassMethod4.js +++ b/tests/baselines/reference/decoratorOnClassMethod4.js @@ -6,22 +6,18 @@ class C { } //// [decoratorOnClassMethod4.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; class C { [_a = "method"]() { } } -Object.defineProperty(C.prototype, _a, __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); +Object.defineProperty(C.prototype, _a, + __decorate([ + dec + ], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); var _a; diff --git a/tests/baselines/reference/decoratorOnClassMethod5.js b/tests/baselines/reference/decoratorOnClassMethod5.js index ff79324755b..460c11f145b 100644 --- a/tests/baselines/reference/decoratorOnClassMethod5.js +++ b/tests/baselines/reference/decoratorOnClassMethod5.js @@ -6,22 +6,18 @@ class C { } //// [decoratorOnClassMethod5.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; class C { [_a = "method"]() { } } -Object.defineProperty(C.prototype, _a, __decorate([dec(), __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); +Object.defineProperty(C.prototype, _a, + __decorate([ + dec() + ], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); var _a; diff --git a/tests/baselines/reference/decoratorOnClassMethod6.js b/tests/baselines/reference/decoratorOnClassMethod6.js index c55bfeef42c..9f120599183 100644 --- a/tests/baselines/reference/decoratorOnClassMethod6.js +++ b/tests/baselines/reference/decoratorOnClassMethod6.js @@ -6,22 +6,18 @@ class C { } //// [decoratorOnClassMethod6.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; class C { [_a = "method"]() { } } -Object.defineProperty(C.prototype, _a, __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); +Object.defineProperty(C.prototype, _a, + __decorate([ + dec + ], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); var _a; diff --git a/tests/baselines/reference/decoratorOnClassMethod7.js b/tests/baselines/reference/decoratorOnClassMethod7.js index 76df57ecb0c..6ab01e68bba 100644 --- a/tests/baselines/reference/decoratorOnClassMethod7.js +++ b/tests/baselines/reference/decoratorOnClassMethod7.js @@ -6,22 +6,18 @@ class C { } //// [decoratorOnClassMethod7.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; class C { [_a = "method"]() { } } -Object.defineProperty(C.prototype, _a, __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); +Object.defineProperty(C.prototype, _a, + __decorate([ + dec + ], C.prototype, _a, Object.getOwnPropertyDescriptor(C.prototype, _a))); var _a; diff --git a/tests/baselines/reference/decoratorOnClassMethod8.js b/tests/baselines/reference/decoratorOnClassMethod8.js index c9bd395fcbb..3e88f8c2793 100644 --- a/tests/baselines/reference/decoratorOnClassMethod8.js +++ b/tests/baselines/reference/decoratorOnClassMethod8.js @@ -6,24 +6,20 @@ class C { } //// [decoratorOnClassMethod8.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } C.prototype.method = function () { }; - Object.defineProperty(C.prototype, "method", __decorate([dec, __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); + Object.defineProperty(C.prototype, "method", + __decorate([ + dec + ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassMethodParameter1.js b/tests/baselines/reference/decoratorOnClassMethodParameter1.js index c8907ce8837..d228ed9302b 100644 --- a/tests/baselines/reference/decoratorOnClassMethodParameter1.js +++ b/tests/baselines/reference/decoratorOnClassMethodParameter1.js @@ -6,24 +6,21 @@ class C { } //// [decoratorOnClassMethodParameter1.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; +var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; var C = (function () { function C() { } C.prototype.method = function (p) { }; - __decorate([dec, __metadata('design:type', Number)], C.prototype, "method", 0); + Object.defineProperty(C.prototype, "method", + __decorate([ + __param(0, dec) + ], C.prototype, "method", Object.getOwnPropertyDescriptor(C.prototype, "method"))); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassProperty1.js b/tests/baselines/reference/decoratorOnClassProperty1.js index c8c8132f7ab..aa38252b995 100644 --- a/tests/baselines/reference/decoratorOnClassProperty1.js +++ b/tests/baselines/reference/decoratorOnClassProperty1.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClassProperty1.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - __decorate([dec, __metadata('design:type', Object)], C.prototype, "prop"); + __decorate([ + dec + ], C.prototype, "prop"); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassProperty10.js b/tests/baselines/reference/decoratorOnClassProperty10.js index d53f0a2d5d5..bccbc0bb737 100644 --- a/tests/baselines/reference/decoratorOnClassProperty10.js +++ b/tests/baselines/reference/decoratorOnClassProperty10.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClassProperty10.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - __decorate([dec(), __metadata('design:type', Object)], C.prototype, "prop"); + __decorate([ + dec() + ], C.prototype, "prop"); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassProperty11.js b/tests/baselines/reference/decoratorOnClassProperty11.js index 8d31376b008..f31e40d3c40 100644 --- a/tests/baselines/reference/decoratorOnClassProperty11.js +++ b/tests/baselines/reference/decoratorOnClassProperty11.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClassProperty11.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - __decorate([dec, __metadata('design:type', Object)], C.prototype, "prop"); + __decorate([ + dec + ], C.prototype, "prop"); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassProperty2.js b/tests/baselines/reference/decoratorOnClassProperty2.js index 78c53b3eb3b..477320b40fa 100644 --- a/tests/baselines/reference/decoratorOnClassProperty2.js +++ b/tests/baselines/reference/decoratorOnClassProperty2.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClassProperty2.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - __decorate([dec, __metadata('design:type', Object)], C.prototype, "prop"); + __decorate([ + dec + ], C.prototype, "prop"); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassProperty6.js b/tests/baselines/reference/decoratorOnClassProperty6.js index d1751ca3150..46e2d5fc069 100644 --- a/tests/baselines/reference/decoratorOnClassProperty6.js +++ b/tests/baselines/reference/decoratorOnClassProperty6.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClassProperty6.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - __decorate([dec, __metadata('design:type', Object)], C.prototype, "prop"); + __decorate([ + dec + ], C.prototype, "prop"); return C; })(); diff --git a/tests/baselines/reference/decoratorOnClassProperty7.js b/tests/baselines/reference/decoratorOnClassProperty7.js index bc381ec5cf4..14ca0612cb1 100644 --- a/tests/baselines/reference/decoratorOnClassProperty7.js +++ b/tests/baselines/reference/decoratorOnClassProperty7.js @@ -6,23 +6,18 @@ class C { } //// [decoratorOnClassProperty7.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; var C = (function () { function C() { } - __decorate([dec, __metadata('design:type', Object)], C.prototype, "prop"); + __decorate([ + dec + ], C.prototype, "prop"); return C; })(); diff --git a/tests/baselines/reference/sourceMapValidationDecorators.js b/tests/baselines/reference/sourceMapValidationDecorators.js index eae494a4407..5577a6967cd 100644 --- a/tests/baselines/reference/sourceMapValidationDecorators.js +++ b/tests/baselines/reference/sourceMapValidationDecorators.js @@ -55,20 +55,14 @@ class Greeter { } //// [sourceMapValidationDecorators.js] -var __decorate = this.__decorate || function (decorators, target, key, value) { - var kind = typeof (arguments.length == 2 ? value = target : value); - for (var i = decorators.length - 1; i >= 0; --i) { - var decorator = decorators[i]; - switch (kind) { - case "function": value = decorator(value) || value; break; - case "number": decorator(target, key, value); break; - case "undefined": decorator(target, key); break; - case "object": value = decorator(target, key, value) || value; break; - } +var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { + switch (arguments.length) { + case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); + case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); + case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } - return value; }; -var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; +var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; var Greeter = (function () { function Greeter(greeting) { var b = []; @@ -94,15 +88,39 @@ var Greeter = (function () { configurable: true }); Greeter.x1 = 10; - Object.defineProperty(Greeter.prototype, "greet", __decorate([PropertyDecorator1, PropertyDecorator2(40), __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], Greeter.prototype, "greet", Object.getOwnPropertyDescriptor(Greeter.prototype, "greet"))); - __decorate([PropertyDecorator1, PropertyDecorator2(50), __metadata('design:type', String)], Greeter.prototype, "x"); - __decorate([ParameterDecorator1, ParameterDecorator2(70), __metadata('design:type', Number)], Greeter.prototype, "fn", 0); - __decorate([ParameterDecorator1, ParameterDecorator2(90), __metadata('design:type', String)], Greeter.prototype, "greetings", 0); - Object.defineProperty(Greeter.prototype, "greetings", __decorate([PropertyDecorator1, PropertyDecorator2(80), __metadata('design:type', Object)], Greeter.prototype, "greetings", Object.getOwnPropertyDescriptor(Greeter.prototype, "greetings"))); - __decorate([PropertyDecorator1, PropertyDecorator2(60), __metadata('design:type', Number)], Greeter, "x1"); - __decorate([ParameterDecorator1, ParameterDecorator2(20), __metadata('design:type', String)], Greeter, void 0, 0); - __decorate([ParameterDecorator1, ParameterDecorator2(30), __metadata('design:type', Array)], Greeter, void 0, 1); - Greeter = __decorate([ClassDecorator1, ClassDecorator2(10), __metadata('design:paramtypes', [String, String])], Greeter); + Object.defineProperty(Greeter.prototype, "greet", + __decorate([ + PropertyDecorator1, + PropertyDecorator2(40) + ], Greeter.prototype, "greet", Object.getOwnPropertyDescriptor(Greeter.prototype, "greet"))); + __decorate([ + PropertyDecorator1, + PropertyDecorator2(50) + ], Greeter.prototype, "x"); + Object.defineProperty(Greeter.prototype, "fn", + __decorate([ + __param(0, ParameterDecorator1), + __param(0, ParameterDecorator2(70)) + ], Greeter.prototype, "fn", Object.getOwnPropertyDescriptor(Greeter.prototype, "fn"))); + Object.defineProperty(Greeter.prototype, "greetings", + __decorate([ + PropertyDecorator1, + PropertyDecorator2(80), + __param(0, ParameterDecorator1), + __param(0, ParameterDecorator2(90)) + ], Greeter.prototype, "greetings", Object.getOwnPropertyDescriptor(Greeter.prototype, "greetings"))); + __decorate([ + PropertyDecorator1, + PropertyDecorator2(60) + ], Greeter, "x1"); + Greeter = __decorate([ + ClassDecorator1, + ClassDecorator2(10), + __param(0, ParameterDecorator1), + __param(0, ParameterDecorator2(20)), + __param(1, ParameterDecorator1), + __param(1, ParameterDecorator2(30)) + ], Greeter); return Greeter; })(); //# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationDecorators.js.map b/tests/baselines/reference/sourceMapValidationDecorators.js.map index f90ca15a236..84ebad316fa 100644 --- a/tests/baselines/reference/sourceMapValidationDecorators.js.map +++ b/tests/baselines/reference/sourceMapValidationDecorators.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationDecorators.js.map] -{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":["Greeter","Greeter.constructor","Greeter.greet","Greeter.fn","Greeter.greetings"],"mappings":";;;;;;;;;;;;;;AAOA;IAGIA,iBAGSA,QAAgBA;QAEvBC,WAEcA;aAFdA,WAEcA,CAFdA,sBAEcA,CAFdA,IAEcA;YAFdA,0BAEcA;;QAJPA,aAAQA,GAARA,QAAQA,CAAQA;IAKzBA,CAACA;IAIDD,uBAAKA,GAFLA;QAGIE,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA,QAAQA,GAAGA,OAAOA,CAACA;IAC5CA,CAACA;IAUOF,oBAAEA,GAAVA,UAGEA,CAASA;QACPG,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA;IACzBA,CAACA;IAEDH,sBAEIA,8BAASA;aAFbA;YAGII,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA;QACzBA,CAACA;aAEDJ,UAGEA,SAAiBA;YACfI,IAAIA,CAACA,QAAQA,GAAGA,SAASA,CAACA;QAC9BA,CAACA;;;OAPAJ;IAbcA,UAAEA,GAAWA,EAAEA,CAACA;IAZ/BA,sBAEAA,0BAAKA,cAFJA,kBAAkBA,EAClBA,kBAAkBA,CAACA,EAAEA,CAACA,sHACvBA,0BAAKA,kCAALA,0BAAKA,IAEJA;IAEDA,YAACA,kBAAkBA,EAClBA,kBAAkBA,CAACA,EAAEA,CAACA,sCACfA,sBAACA,EAASA;IAOhBA,YAACA,mBAAmBA,EACnBA,mBAAmBA,CAACA,EAAEA,CAACA,sCACxBA,0BAACA,EAAQA;IAWTA,YAACA,mBAAmBA,EACnBA,mBAAmBA,CAACA,EAAEA,CAACA,sCACxBA,iCAASA,EAAQA;IATnBA,sBAEIA,8BAASA,cAFZA,kBAAkBA,EAClBA,kBAAkBA,CAACA,EAAEA,CAACA,sCACnBA,8BAASA,kCAATA,8BAASA,IAEZA;IAfDA,YAACA,kBAAkBA,EAClBA,kBAAkBA,CAACA,EAAEA,CAACA,sCACRA,aAAEA,EAAcA;IArB7BA,YAACA,mBAAmBA,EACnBA,mBAAmBA,CAACA,EAAEA,CAACA,sCACjBA,kBAAQA,EAAQA;IAEvBA,YAACA,mBAAmBA,EACnBA,mBAAmBA,CAACA,EAAEA,CAACA,qCACrBA,kBAACA,EAAUA;IAVpBA,sBAACA,eAAeA,EACfA,eAAeA,CAACA,EAAEA,CAACA,+DA6CnBA;IAADA,cAACA;AAADA,CAACA,AA9CD,IA8CC"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationDecorators.js","sourceRoot":"","sources":["sourceMapValidationDecorators.ts"],"names":["Greeter","Greeter.constructor","Greeter.greet","Greeter.fn","Greeter.greetings"],"mappings":";;;;;;;;AAOA;IAGIA,iBAGSA,QAAgBA;QAEvBC,WAEcA;aAFdA,WAEcA,CAFdA,sBAEcA,CAFdA,IAEcA;YAFdA,0BAEcA;;QAJPA,aAAQA,GAARA,QAAQA,CAAQA;IAKzBA,CAACA;IAIDD,uBAAKA,GAFLA;QAGIE,MAAMA,CAACA,MAAMA,GAAGA,IAAIA,CAACA,QAAQA,GAAGA,OAAOA,CAACA;IAC5CA,CAACA;IAUOF,oBAAEA,GAAVA,UAGEA,CAASA;QACPG,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA;IACzBA,CAACA;IAEDH,sBAEIA,8BAASA;aAFbA;YAGII,MAAMA,CAACA,IAAIA,CAACA,QAAQA,CAACA;QACzBA,CAACA;aAEDJ,UAGEA,SAAiBA;YACfI,IAAIA,CAACA,QAAQA,GAAGA,SAASA,CAACA;QAC9BA,CAACA;;;OAPAJ;IAbcA,UAAEA,GAAWA,EAAEA,CAACA;IAZ/BA,sBAEAA,0BAAKA;;YAFJA,kBAAkBA;YAClBA,kBAAkBA,CAACA,EAAEA,CAACA;WACvBA,0BAAKA,kCAALA,0BAAKA,IAEJA;IAEDA;QAACA,kBAAkBA;QAClBA,kBAAkBA,CAACA,EAAEA,CAACA;OACfA,sBAACA,EAASA;IAMlBA,sBAAQA,uBAAEA;;YACRA,WAACA,mBAAmBA,CAAAA;YACpBA,WAACA,mBAAmBA,CAACA,EAAEA,CAACA,CAAAA;WAFlBA,uBAAEA,kCAAFA,uBAAEA,IAKTA;IAEDA,sBAEIA,8BAASA;;YAFZA,kBAAkBA;YAClBA,kBAAkBA,CAACA,EAAEA,CAACA;YAMrBA,WAACA,mBAAmBA,CAAAA;YACpBA,WAACA,mBAAmBA,CAACA,EAAEA,CAACA,CAAAA;WANtBA,8BAASA,kCAATA,8BAASA,IAEZA;IAfDA;QAACA,kBAAkBA;QAClBA,kBAAkBA,CAACA,EAAEA,CAACA;OACRA,aAAEA,EAAcA;IAzBnCA;QAACA,eAAeA;QACfA,eAAeA,CAACA,EAAEA,CAACA;QAGdA,WAACA,mBAAmBA,CAAAA;QACpBA,WAACA,mBAAmBA,CAACA,EAAEA,CAACA,CAAAA;QAGxBA,WAACA,mBAAmBA,CAAAA;QACpBA,WAACA,mBAAmBA,CAACA,EAAEA,CAACA,CAAAA;gBAqC7BA;IAADA,cAACA;AAADA,CAACA,AA9CD,IA8CC"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationDecorators.sourcemap.txt b/tests/baselines/reference/sourceMapValidationDecorators.sourcemap.txt index bd570779598..f4c64c49579 100644 --- a/tests/baselines/reference/sourceMapValidationDecorators.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationDecorators.sourcemap.txt @@ -8,20 +8,14 @@ sources: sourceMapValidationDecorators.ts emittedFile:tests/cases/compiler/sourceMapValidationDecorators.js sourceFile:sourceMapValidationDecorators.ts ------------------------------------------------------------------- ->>>var __decorate = this.__decorate || function (decorators, target, key, value) { ->>> var kind = typeof (arguments.length == 2 ? value = target : value); ->>> for (var i = decorators.length - 1; i >= 0; --i) { ->>> var decorator = decorators[i]; ->>> switch (kind) { ->>> case "function": value = decorator(value) || value; break; ->>> case "number": decorator(target, key, value); break; ->>> case "undefined": decorator(target, key); break; ->>> case "object": value = decorator(target, key, value) || value; break; ->>> } +>>>var __decorate = this.__decorate || (typeof Reflect === "object" && Reflect.decorate) || function (decorators, target, key, desc) { +>>> switch (arguments.length) { +>>> case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); +>>> case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); +>>> case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); >>> } ->>> return value; >>>}; ->>>var __metadata = this.__metadata || (typeof Reflect === "object" && Reflect.metadata) || function () { return function() { } }; +>>>var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; >>>var Greeter = (function () { 1 > 2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> @@ -33,7 +27,7 @@ sourceFile:sourceMapValidationDecorators.ts >declare function ParameterDecorator2(x: number): (target: Function, key: string | symbol, paramIndex: number) => void; > > -1 >Emitted(15, 1) Source(8, 1) + SourceIndex(0) +1 >Emitted(9, 1) Source(8, 1) + SourceIndex(0) --- >>> function Greeter(greeting) { 1->^^^^ @@ -48,9 +42,9 @@ sourceFile:sourceMapValidationDecorators.ts > @ParameterDecorator2(20) > public 3 > greeting: string -1->Emitted(16, 5) Source(11, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(16, 22) Source(14, 14) + SourceIndex(0) name (Greeter) -3 >Emitted(16, 30) Source(14, 30) + SourceIndex(0) name (Greeter) +1->Emitted(10, 5) Source(11, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(10, 22) Source(14, 14) + SourceIndex(0) name (Greeter) +3 >Emitted(10, 30) Source(14, 30) + SourceIndex(0) name (Greeter) --- >>> var b = []; 1 >^^^^^^^^ @@ -62,8 +56,8 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ParameterDecorator1 > @ParameterDecorator2(30) > ...b: string[] -1 >Emitted(17, 9) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(17, 20) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(11, 9) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(11, 20) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) --- >>> for (var _i = 1; _i < arguments.length; _i++) { 1->^^^^^^^^^^^^^ @@ -84,12 +78,12 @@ sourceFile:sourceMapValidationDecorators.ts 6 > @ParameterDecorator1 > @ParameterDecorator2(30) > ...b: string[] -1->Emitted(18, 14) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(18, 25) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) -3 >Emitted(18, 26) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -4 >Emitted(18, 48) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) -5 >Emitted(18, 49) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -6 >Emitted(18, 53) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +1->Emitted(12, 14) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(12, 25) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +3 >Emitted(12, 26) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +4 >Emitted(12, 48) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +5 >Emitted(12, 49) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +6 >Emitted(12, 53) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) --- >>> b[_i - 1] = arguments[_i]; 1 >^^^^^^^^^^^^ @@ -98,8 +92,8 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ParameterDecorator1 > @ParameterDecorator2(30) > ...b: string[] -1 >Emitted(19, 13) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(19, 39) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(13, 13) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(13, 39) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) --- >>> } >>> this.greeting = greeting; @@ -113,11 +107,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > 4 > greeting 5 > : string -1 >Emitted(21, 9) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(21, 22) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) -3 >Emitted(21, 25) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) -4 >Emitted(21, 33) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) -5 >Emitted(21, 34) Source(14, 30) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(15, 9) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(15, 22) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) +3 >Emitted(15, 25) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) +4 >Emitted(15, 33) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) +5 >Emitted(15, 34) Source(14, 30) + SourceIndex(0) name (Greeter.constructor) --- >>> } 1 >^^^^ @@ -130,8 +124,8 @@ sourceFile:sourceMapValidationDecorators.ts > ...b: string[]) { > 2 > } -1 >Emitted(22, 5) Source(19, 5) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(22, 6) Source(19, 6) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(16, 5) Source(19, 5) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(16, 6) Source(19, 6) + SourceIndex(0) name (Greeter.constructor) --- >>> Greeter.prototype.greet = function () { 1->^^^^ @@ -145,9 +139,9 @@ sourceFile:sourceMapValidationDecorators.ts > 2 > greet 3 > -1->Emitted(23, 5) Source(23, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(23, 28) Source(23, 10) + SourceIndex(0) name (Greeter) -3 >Emitted(23, 31) Source(21, 5) + SourceIndex(0) name (Greeter) +1->Emitted(17, 5) Source(23, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(17, 28) Source(23, 10) + SourceIndex(0) name (Greeter) +3 >Emitted(17, 31) Source(21, 5) + SourceIndex(0) name (Greeter) --- >>> return "

" + this.greeting + "

"; 1->^^^^^^^^ @@ -175,17 +169,17 @@ sourceFile:sourceMapValidationDecorators.ts 9 > + 10> "" 11> ; -1->Emitted(24, 9) Source(24, 9) + SourceIndex(0) name (Greeter.greet) -2 >Emitted(24, 15) Source(24, 15) + SourceIndex(0) name (Greeter.greet) -3 >Emitted(24, 16) Source(24, 16) + SourceIndex(0) name (Greeter.greet) -4 >Emitted(24, 22) Source(24, 22) + SourceIndex(0) name (Greeter.greet) -5 >Emitted(24, 25) Source(24, 25) + SourceIndex(0) name (Greeter.greet) -6 >Emitted(24, 29) Source(24, 29) + SourceIndex(0) name (Greeter.greet) -7 >Emitted(24, 30) Source(24, 30) + SourceIndex(0) name (Greeter.greet) -8 >Emitted(24, 38) Source(24, 38) + SourceIndex(0) name (Greeter.greet) -9 >Emitted(24, 41) Source(24, 41) + SourceIndex(0) name (Greeter.greet) -10>Emitted(24, 48) Source(24, 48) + SourceIndex(0) name (Greeter.greet) -11>Emitted(24, 49) Source(24, 49) + SourceIndex(0) name (Greeter.greet) +1->Emitted(18, 9) Source(24, 9) + SourceIndex(0) name (Greeter.greet) +2 >Emitted(18, 15) Source(24, 15) + SourceIndex(0) name (Greeter.greet) +3 >Emitted(18, 16) Source(24, 16) + SourceIndex(0) name (Greeter.greet) +4 >Emitted(18, 22) Source(24, 22) + SourceIndex(0) name (Greeter.greet) +5 >Emitted(18, 25) Source(24, 25) + SourceIndex(0) name (Greeter.greet) +6 >Emitted(18, 29) Source(24, 29) + SourceIndex(0) name (Greeter.greet) +7 >Emitted(18, 30) Source(24, 30) + SourceIndex(0) name (Greeter.greet) +8 >Emitted(18, 38) Source(24, 38) + SourceIndex(0) name (Greeter.greet) +9 >Emitted(18, 41) Source(24, 41) + SourceIndex(0) name (Greeter.greet) +10>Emitted(18, 48) Source(24, 48) + SourceIndex(0) name (Greeter.greet) +11>Emitted(18, 49) Source(24, 49) + SourceIndex(0) name (Greeter.greet) --- >>> }; 1 >^^^^ @@ -194,8 +188,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(25, 5) Source(25, 5) + SourceIndex(0) name (Greeter.greet) -2 >Emitted(25, 6) Source(25, 6) + SourceIndex(0) name (Greeter.greet) +1 >Emitted(19, 5) Source(25, 5) + SourceIndex(0) name (Greeter.greet) +2 >Emitted(19, 6) Source(25, 6) + SourceIndex(0) name (Greeter.greet) --- >>> Greeter.prototype.fn = function (x) { 1->^^^^ @@ -221,11 +215,11 @@ sourceFile:sourceMapValidationDecorators.ts > @ParameterDecorator2(70) > 5 > x: number -1->Emitted(26, 5) Source(35, 13) + SourceIndex(0) name (Greeter) -2 >Emitted(26, 25) Source(35, 15) + SourceIndex(0) name (Greeter) -3 >Emitted(26, 28) Source(35, 5) + SourceIndex(0) name (Greeter) -4 >Emitted(26, 38) Source(38, 7) + SourceIndex(0) name (Greeter) -5 >Emitted(26, 39) Source(38, 16) + SourceIndex(0) name (Greeter) +1->Emitted(20, 5) Source(35, 13) + SourceIndex(0) name (Greeter) +2 >Emitted(20, 25) Source(35, 15) + SourceIndex(0) name (Greeter) +3 >Emitted(20, 28) Source(35, 5) + SourceIndex(0) name (Greeter) +4 >Emitted(20, 38) Source(38, 7) + SourceIndex(0) name (Greeter) +5 >Emitted(20, 39) Source(38, 16) + SourceIndex(0) name (Greeter) --- >>> return this.greeting; 1 >^^^^^^^^ @@ -243,13 +237,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > . 6 > greeting 7 > ; -1 >Emitted(27, 9) Source(39, 9) + SourceIndex(0) name (Greeter.fn) -2 >Emitted(27, 15) Source(39, 15) + SourceIndex(0) name (Greeter.fn) -3 >Emitted(27, 16) Source(39, 16) + SourceIndex(0) name (Greeter.fn) -4 >Emitted(27, 20) Source(39, 20) + SourceIndex(0) name (Greeter.fn) -5 >Emitted(27, 21) Source(39, 21) + SourceIndex(0) name (Greeter.fn) -6 >Emitted(27, 29) Source(39, 29) + SourceIndex(0) name (Greeter.fn) -7 >Emitted(27, 30) Source(39, 30) + SourceIndex(0) name (Greeter.fn) +1 >Emitted(21, 9) Source(39, 9) + SourceIndex(0) name (Greeter.fn) +2 >Emitted(21, 15) Source(39, 15) + SourceIndex(0) name (Greeter.fn) +3 >Emitted(21, 16) Source(39, 16) + SourceIndex(0) name (Greeter.fn) +4 >Emitted(21, 20) Source(39, 20) + SourceIndex(0) name (Greeter.fn) +5 >Emitted(21, 21) Source(39, 21) + SourceIndex(0) name (Greeter.fn) +6 >Emitted(21, 29) Source(39, 29) + SourceIndex(0) name (Greeter.fn) +7 >Emitted(21, 30) Source(39, 30) + SourceIndex(0) name (Greeter.fn) --- >>> }; 1 >^^^^ @@ -258,8 +252,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(28, 5) Source(40, 5) + SourceIndex(0) name (Greeter.fn) -2 >Emitted(28, 6) Source(40, 6) + SourceIndex(0) name (Greeter.fn) +1 >Emitted(22, 5) Source(40, 5) + SourceIndex(0) name (Greeter.fn) +2 >Emitted(22, 6) Source(40, 6) + SourceIndex(0) name (Greeter.fn) --- >>> Object.defineProperty(Greeter.prototype, "greetings", { 1->^^^^ @@ -272,15 +266,15 @@ sourceFile:sourceMapValidationDecorators.ts > @PropertyDecorator2(80) > get 3 > greetings -1->Emitted(29, 5) Source(42, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(29, 27) Source(44, 9) + SourceIndex(0) name (Greeter) -3 >Emitted(29, 57) Source(44, 18) + SourceIndex(0) name (Greeter) +1->Emitted(23, 5) Source(42, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(23, 27) Source(44, 9) + SourceIndex(0) name (Greeter) +3 >Emitted(23, 57) Source(44, 18) + SourceIndex(0) name (Greeter) --- >>> get: function () { 1 >^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^-> 1 > -1 >Emitted(30, 14) Source(42, 5) + SourceIndex(0) name (Greeter) +1 >Emitted(24, 14) Source(42, 5) + SourceIndex(0) name (Greeter) --- >>> return this.greeting; 1->^^^^^^^^^^^^ @@ -300,13 +294,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > . 6 > greeting 7 > ; -1->Emitted(31, 13) Source(45, 9) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(31, 19) Source(45, 15) + SourceIndex(0) name (Greeter.greetings) -3 >Emitted(31, 20) Source(45, 16) + SourceIndex(0) name (Greeter.greetings) -4 >Emitted(31, 24) Source(45, 20) + SourceIndex(0) name (Greeter.greetings) -5 >Emitted(31, 25) Source(45, 21) + SourceIndex(0) name (Greeter.greetings) -6 >Emitted(31, 33) Source(45, 29) + SourceIndex(0) name (Greeter.greetings) -7 >Emitted(31, 34) Source(45, 30) + SourceIndex(0) name (Greeter.greetings) +1->Emitted(25, 13) Source(45, 9) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(25, 19) Source(45, 15) + SourceIndex(0) name (Greeter.greetings) +3 >Emitted(25, 20) Source(45, 16) + SourceIndex(0) name (Greeter.greetings) +4 >Emitted(25, 24) Source(45, 20) + SourceIndex(0) name (Greeter.greetings) +5 >Emitted(25, 25) Source(45, 21) + SourceIndex(0) name (Greeter.greetings) +6 >Emitted(25, 33) Source(45, 29) + SourceIndex(0) name (Greeter.greetings) +7 >Emitted(25, 34) Source(45, 30) + SourceIndex(0) name (Greeter.greetings) --- >>> }, 1 >^^^^^^^^ @@ -315,8 +309,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(32, 9) Source(46, 5) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(32, 10) Source(46, 6) + SourceIndex(0) name (Greeter.greetings) +1 >Emitted(26, 9) Source(46, 5) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(26, 10) Source(46, 6) + SourceIndex(0) name (Greeter.greetings) --- >>> set: function (greetings) { 1->^^^^^^^^^^^^^ @@ -331,9 +325,9 @@ sourceFile:sourceMapValidationDecorators.ts > @ParameterDecorator2(90) > 3 > greetings: string -1->Emitted(33, 14) Source(48, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(33, 24) Source(51, 7) + SourceIndex(0) name (Greeter) -3 >Emitted(33, 33) Source(51, 24) + SourceIndex(0) name (Greeter) +1->Emitted(27, 14) Source(48, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(27, 24) Source(51, 7) + SourceIndex(0) name (Greeter) +3 >Emitted(27, 33) Source(51, 24) + SourceIndex(0) name (Greeter) --- >>> this.greeting = greetings; 1->^^^^^^^^^^^^ @@ -351,13 +345,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > = 6 > greetings 7 > ; -1->Emitted(34, 13) Source(52, 9) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(34, 17) Source(52, 13) + SourceIndex(0) name (Greeter.greetings) -3 >Emitted(34, 18) Source(52, 14) + SourceIndex(0) name (Greeter.greetings) -4 >Emitted(34, 26) Source(52, 22) + SourceIndex(0) name (Greeter.greetings) -5 >Emitted(34, 29) Source(52, 25) + SourceIndex(0) name (Greeter.greetings) -6 >Emitted(34, 38) Source(52, 34) + SourceIndex(0) name (Greeter.greetings) -7 >Emitted(34, 39) Source(52, 35) + SourceIndex(0) name (Greeter.greetings) +1->Emitted(28, 13) Source(52, 9) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(28, 17) Source(52, 13) + SourceIndex(0) name (Greeter.greetings) +3 >Emitted(28, 18) Source(52, 14) + SourceIndex(0) name (Greeter.greetings) +4 >Emitted(28, 26) Source(52, 22) + SourceIndex(0) name (Greeter.greetings) +5 >Emitted(28, 29) Source(52, 25) + SourceIndex(0) name (Greeter.greetings) +6 >Emitted(28, 38) Source(52, 34) + SourceIndex(0) name (Greeter.greetings) +7 >Emitted(28, 39) Source(52, 35) + SourceIndex(0) name (Greeter.greetings) --- >>> }, 1 >^^^^^^^^ @@ -366,8 +360,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(35, 9) Source(53, 5) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(35, 10) Source(53, 6) + SourceIndex(0) name (Greeter.greetings) +1 >Emitted(29, 9) Source(53, 5) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(29, 10) Source(53, 6) + SourceIndex(0) name (Greeter.greetings) --- >>> enumerable: true, >>> configurable: true @@ -375,7 +369,7 @@ sourceFile:sourceMapValidationDecorators.ts 1->^^^^^^^ 2 > ^^^^^^^^^^^^^^-> 1-> -1->Emitted(38, 8) Source(46, 6) + SourceIndex(0) name (Greeter) +1->Emitted(32, 8) Source(46, 6) + SourceIndex(0) name (Greeter) --- >>> Greeter.x1 = 10; 1->^^^^ @@ -383,170 +377,508 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ^^^ 4 > ^^ 5 > ^ -6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1-> 2 > x1 3 > : number = 4 > 10 5 > ; -1->Emitted(39, 5) Source(33, 20) + SourceIndex(0) name (Greeter) -2 >Emitted(39, 15) Source(33, 22) + SourceIndex(0) name (Greeter) -3 >Emitted(39, 18) Source(33, 33) + SourceIndex(0) name (Greeter) -4 >Emitted(39, 20) Source(33, 35) + SourceIndex(0) name (Greeter) -5 >Emitted(39, 21) Source(33, 36) + SourceIndex(0) name (Greeter) +1->Emitted(33, 5) Source(33, 20) + SourceIndex(0) name (Greeter) +2 >Emitted(33, 15) Source(33, 22) + SourceIndex(0) name (Greeter) +3 >Emitted(33, 18) Source(33, 33) + SourceIndex(0) name (Greeter) +4 >Emitted(33, 20) Source(33, 35) + SourceIndex(0) name (Greeter) +5 >Emitted(33, 21) Source(33, 36) + SourceIndex(0) name (Greeter) --- ->>> Object.defineProperty(Greeter.prototype, "greet", __decorate([PropertyDecorator1, PropertyDecorator2(40), __metadata('design:type', Function), __metadata('design:paramtypes', []), __metadata('design:returntype', Object)], Greeter.prototype, "greet", Object.getOwnPropertyDescriptor(Greeter.prototype, "greet"))); +>>> Object.defineProperty(Greeter.prototype, "greet", 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^ 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^ -5 > ^^^^^^^^^^^^^^^^^^ -6 > ^^ -7 > ^^^^^^^^^^^^^^^^^^ -8 > ^ -9 > ^^ -10> ^ -11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -12> ^^^^^^^^^^^^^^^^^^^^^^^^^^ -13> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -14> ^^^^^^^^^^^^^^^^^^^^^^^^^^ -15> ^^^^ 1-> 2 > @PropertyDecorator1 > @PropertyDecorator2(40) > 3 > greet -4 > -5 > PropertyDecorator1 -6 > - > @ -7 > PropertyDecorator2 -8 > ( -9 > 40 -10> ) -11> - > -12> greet -13> -14> greet -15> () { - > return "

" + this.greeting + "

"; - > } -1->Emitted(40, 5) Source(21, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(40, 27) Source(23, 5) + SourceIndex(0) name (Greeter) -3 >Emitted(40, 53) Source(23, 10) + SourceIndex(0) name (Greeter) -4 >Emitted(40, 67) Source(21, 6) + SourceIndex(0) name (Greeter) -5 >Emitted(40, 85) Source(21, 24) + SourceIndex(0) name (Greeter) -6 >Emitted(40, 87) Source(22, 6) + SourceIndex(0) name (Greeter) -7 >Emitted(40, 105) Source(22, 24) + SourceIndex(0) name (Greeter) -8 >Emitted(40, 106) Source(22, 25) + SourceIndex(0) name (Greeter) -9 >Emitted(40, 108) Source(22, 27) + SourceIndex(0) name (Greeter) -10>Emitted(40, 109) Source(22, 28) + SourceIndex(0) name (Greeter) -11>Emitted(40, 227) Source(23, 5) + SourceIndex(0) name (Greeter) -12>Emitted(40, 253) Source(23, 10) + SourceIndex(0) name (Greeter) -13>Emitted(40, 287) Source(23, 5) + SourceIndex(0) name (Greeter) -14>Emitted(40, 313) Source(23, 10) + SourceIndex(0) name (Greeter) -15>Emitted(40, 317) Source(25, 6) + SourceIndex(0) name (Greeter) +1->Emitted(34, 5) Source(21, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(34, 27) Source(23, 5) + SourceIndex(0) name (Greeter) +3 >Emitted(34, 53) Source(23, 10) + SourceIndex(0) name (Greeter) --- ->>> __decorate([PropertyDecorator1, PropertyDecorator2(50), __metadata('design:type', String)], Greeter.prototype, "x"); +>>> __decorate([ +>>> PropertyDecorator1, +1 >^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^-> +1 > +2 > PropertyDecorator1 +1 >Emitted(36, 13) Source(21, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(36, 31) Source(21, 24) + SourceIndex(0) name (Greeter) +--- +>>> PropertyDecorator2(40) +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 40 +5 > ) +1->Emitted(37, 13) Source(22, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(37, 31) Source(22, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(37, 32) Source(22, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(37, 34) Source(22, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(37, 35) Source(22, 28) + SourceIndex(0) name (Greeter) +--- +>>> ], Greeter.prototype, "greet", Object.getOwnPropertyDescriptor(Greeter.prototype, "greet"))); +1->^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^ +5 > ^^^^ +1-> + > +2 > greet +3 > +4 > greet +5 > () { + > return "

" + this.greeting + "

"; + > } +1->Emitted(38, 12) Source(23, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(38, 38) Source(23, 10) + SourceIndex(0) name (Greeter) +3 >Emitted(38, 72) Source(23, 5) + SourceIndex(0) name (Greeter) +4 >Emitted(38, 98) Source(23, 10) + SourceIndex(0) name (Greeter) +5 >Emitted(38, 102) Source(25, 6) + SourceIndex(0) name (Greeter) +--- +>>> __decorate([ 1 >^^^^ -2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10> ^^^^^^^^^^^^^^^^^^^^^^ -11> ^^ -12> ^^^^^^^-> +2 > ^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > > > -2 > @ -3 > PropertyDecorator1 -4 > - > @ -5 > PropertyDecorator2 -6 > ( -7 > 50 -8 > ) -9 > - > private -10> x -11> : string; -1 >Emitted(41, 5) Source(27, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(41, 17) Source(27, 6) + SourceIndex(0) name (Greeter) -3 >Emitted(41, 35) Source(27, 24) + SourceIndex(0) name (Greeter) -4 >Emitted(41, 37) Source(28, 6) + SourceIndex(0) name (Greeter) -5 >Emitted(41, 55) Source(28, 24) + SourceIndex(0) name (Greeter) -6 >Emitted(41, 56) Source(28, 25) + SourceIndex(0) name (Greeter) -7 >Emitted(41, 58) Source(28, 27) + SourceIndex(0) name (Greeter) -8 >Emitted(41, 59) Source(28, 28) + SourceIndex(0) name (Greeter) -9 >Emitted(41, 97) Source(29, 13) + SourceIndex(0) name (Greeter) -10>Emitted(41, 119) Source(29, 14) + SourceIndex(0) name (Greeter) -11>Emitted(41, 121) Source(29, 23) + SourceIndex(0) name (Greeter) +1 >Emitted(39, 5) Source(27, 5) + SourceIndex(0) name (Greeter) --- ->>> __decorate([ParameterDecorator1, ParameterDecorator2(70), __metadata('design:type', Number)], Greeter.prototype, "fn", 0); +>>> PropertyDecorator1, +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^-> +1->@ +2 > PropertyDecorator1 +1->Emitted(40, 9) Source(27, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(40, 27) Source(27, 24) + SourceIndex(0) name (Greeter) +--- +>>> PropertyDecorator2(50) +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 50 +5 > ) +1->Emitted(41, 9) Source(28, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(41, 27) Source(28, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(41, 28) Source(28, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(41, 30) Source(28, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(41, 31) Source(28, 28) + SourceIndex(0) name (Greeter) +--- +>>> ], Greeter.prototype, "x"); +1->^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^ +4 > ^^^^^^^^^^^^^^^^^^^^-> +1-> + > private +2 > x +3 > : string; +1->Emitted(42, 8) Source(29, 13) + SourceIndex(0) name (Greeter) +2 >Emitted(42, 30) Source(29, 14) + SourceIndex(0) name (Greeter) +3 >Emitted(42, 32) Source(29, 23) + SourceIndex(0) name (Greeter) +--- +>>> Object.defineProperty(Greeter.prototype, "fn", 1->^^^^ -2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^ -11> ^^ -12> ^^^^^^^^-> +2 > ^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^ 1-> > > @PropertyDecorator1 > @PropertyDecorator2(60) > private static x1: number = 10; > - > private fn( - > -2 > @ -3 > ParameterDecorator1 -4 > - > @ -5 > ParameterDecorator2 -6 > ( -7 > 70 -8 > ) -9 > - > -10> x -11> : number -1->Emitted(42, 5) Source(36, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(42, 17) Source(36, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(42, 36) Source(36, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(42, 38) Source(37, 8) + SourceIndex(0) name (Greeter) -5 >Emitted(42, 57) Source(37, 27) + SourceIndex(0) name (Greeter) -6 >Emitted(42, 58) Source(37, 28) + SourceIndex(0) name (Greeter) -7 >Emitted(42, 60) Source(37, 30) + SourceIndex(0) name (Greeter) -8 >Emitted(42, 61) Source(37, 31) + SourceIndex(0) name (Greeter) -9 >Emitted(42, 99) Source(38, 7) + SourceIndex(0) name (Greeter) -10>Emitted(42, 125) Source(38, 8) + SourceIndex(0) name (Greeter) -11>Emitted(42, 127) Source(38, 16) + SourceIndex(0) name (Greeter) + > +2 > private +3 > fn +1->Emitted(43, 5) Source(35, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(43, 27) Source(35, 13) + SourceIndex(0) name (Greeter) +3 >Emitted(43, 50) Source(35, 15) + SourceIndex(0) name (Greeter) --- ->>> __decorate([ParameterDecorator1, ParameterDecorator2(90), __metadata('design:type', String)], Greeter.prototype, "greetings", 0); +>>> __decorate([ +>>> __param(0, ParameterDecorator1), +1 >^^^^^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^-> +1 >( + > +2 > @ +3 > ParameterDecorator1 +4 > +1 >Emitted(45, 13) Source(36, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(45, 24) Source(36, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(45, 43) Source(36, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(45, 44) Source(36, 27) + SourceIndex(0) name (Greeter) +--- +>>> __param(0, ParameterDecorator2(70)) +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> + > +2 > @ +3 > ParameterDecorator2 +4 > ( +5 > 70 +6 > ) +7 > +1->Emitted(46, 13) Source(37, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(46, 24) Source(37, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(46, 43) Source(37, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(46, 44) Source(37, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(46, 46) Source(37, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(46, 47) Source(37, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(46, 48) Source(37, 31) + SourceIndex(0) name (Greeter) +--- +>>> ], Greeter.prototype, "fn", Object.getOwnPropertyDescriptor(Greeter.prototype, "fn"))); +1->^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^ +5 > ^^^^ +1-> +2 > fn +3 > +4 > fn +5 > ( + > @ParameterDecorator1 + > @ParameterDecorator2(70) + > x: number) { + > return this.greeting; + > } +1->Emitted(47, 12) Source(35, 13) + SourceIndex(0) name (Greeter) +2 >Emitted(47, 35) Source(35, 15) + SourceIndex(0) name (Greeter) +3 >Emitted(47, 69) Source(35, 13) + SourceIndex(0) name (Greeter) +4 >Emitted(47, 92) Source(35, 15) + SourceIndex(0) name (Greeter) +5 >Emitted(47, 96) Source(40, 6) + SourceIndex(0) name (Greeter) +--- +>>> Object.defineProperty(Greeter.prototype, "greetings", +1 >^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +1 > + > + > +2 > @PropertyDecorator1 + > @PropertyDecorator2(80) + > get +3 > greetings +1 >Emitted(48, 5) Source(42, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(48, 27) Source(44, 9) + SourceIndex(0) name (Greeter) +3 >Emitted(48, 57) Source(44, 18) + SourceIndex(0) name (Greeter) +--- +>>> __decorate([ +>>> PropertyDecorator1, +1 >^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^-> +1 > +2 > PropertyDecorator1 +1 >Emitted(50, 13) Source(42, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(50, 31) Source(42, 24) + SourceIndex(0) name (Greeter) +--- +>>> PropertyDecorator2(80), +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^^-> +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 80 +5 > ) +1->Emitted(51, 13) Source(43, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(51, 31) Source(43, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(51, 32) Source(43, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(51, 34) Source(43, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(51, 35) Source(43, 28) + SourceIndex(0) name (Greeter) +--- +>>> __param(0, ParameterDecorator1), +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^-> +1-> + > get greetings() { + > return this.greeting; + > } + > + > set greetings( + > +2 > @ +3 > ParameterDecorator1 +4 > +1->Emitted(52, 13) Source(49, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(52, 24) Source(49, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(52, 43) Source(49, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(52, 44) Source(49, 27) + SourceIndex(0) name (Greeter) +--- +>>> __param(0, ParameterDecorator2(90)) +1->^^^^^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +8 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +1-> + > +2 > @ +3 > ParameterDecorator2 +4 > ( +5 > 90 +6 > ) +7 > +1->Emitted(53, 13) Source(50, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(53, 24) Source(50, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(53, 43) Source(50, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(53, 44) Source(50, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(53, 46) Source(50, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(53, 47) Source(50, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(53, 48) Source(50, 31) + SourceIndex(0) name (Greeter) +--- +>>> ], Greeter.prototype, "greetings", Object.getOwnPropertyDescriptor(Greeter.prototype, "greetings"))); +1->^^^^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +4 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5 > ^^^^ +1-> +2 > greetings +3 > +4 > greetings +5 > () { + > return this.greeting; + > } +1->Emitted(54, 12) Source(44, 9) + SourceIndex(0) name (Greeter) +2 >Emitted(54, 42) Source(44, 18) + SourceIndex(0) name (Greeter) +3 >Emitted(54, 76) Source(44, 9) + SourceIndex(0) name (Greeter) +4 >Emitted(54, 106) Source(44, 18) + SourceIndex(0) name (Greeter) +5 >Emitted(54, 110) Source(46, 6) + SourceIndex(0) name (Greeter) +--- +>>> __decorate([ +1 >^^^^ +2 > ^^^^^^^^^^^^^^^^^^^^^^^^-> +1 > +1 >Emitted(55, 5) Source(31, 5) + SourceIndex(0) name (Greeter) +--- +>>> PropertyDecorator1, +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^^^^^-> +1->@ +2 > PropertyDecorator1 +1->Emitted(56, 9) Source(31, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(56, 27) Source(31, 24) + SourceIndex(0) name (Greeter) +--- +>>> PropertyDecorator2(60) +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +1-> + > @ +2 > PropertyDecorator2 +3 > ( +4 > 60 +5 > ) +1->Emitted(57, 9) Source(32, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(57, 27) Source(32, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(57, 28) Source(32, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(57, 30) Source(32, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(57, 31) Source(32, 28) + SourceIndex(0) name (Greeter) +--- +>>> ], Greeter, "x1"); +1 >^^^^^^^ +2 > ^^^^^^^^^^^^^ +3 > ^^ +4 > ^^^^^-> +1 > + > private static +2 > x1 +3 > : number = 10; +1 >Emitted(58, 8) Source(33, 20) + SourceIndex(0) name (Greeter) +2 >Emitted(58, 21) Source(33, 22) + SourceIndex(0) name (Greeter) +3 >Emitted(58, 23) Source(33, 36) + SourceIndex(0) name (Greeter) +--- +>>> Greeter = __decorate([ 1->^^^^ -2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -11> ^^ -12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1->) { +2 > ^^^^^^^^^^^^^^^^^^^^^-> +1-> +1->Emitted(59, 5) Source(8, 1) + SourceIndex(0) name (Greeter) +--- +>>> ClassDecorator1, +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^ +3 > ^^^^^^-> +1->@ +2 > ClassDecorator1 +1->Emitted(60, 9) Source(8, 2) + SourceIndex(0) name (Greeter) +2 >Emitted(60, 24) Source(8, 17) + SourceIndex(0) name (Greeter) +--- +>>> ClassDecorator2(10), +1->^^^^^^^^ +2 > ^^^^^^^^^^^^^^^ +3 > ^ +4 > ^^ +5 > ^ +6 > ^^^^^^^^^^^^^^-> +1-> + >@ +2 > ClassDecorator2 +3 > ( +4 > 10 +5 > ) +1->Emitted(61, 9) Source(9, 2) + SourceIndex(0) name (Greeter) +2 >Emitted(61, 24) Source(9, 17) + SourceIndex(0) name (Greeter) +3 >Emitted(61, 25) Source(9, 18) + SourceIndex(0) name (Greeter) +4 >Emitted(61, 27) Source(9, 20) + SourceIndex(0) name (Greeter) +5 >Emitted(61, 28) Source(9, 21) + SourceIndex(0) name (Greeter) +--- +>>> __param(0, ParameterDecorator1), +1->^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^^-> +1-> + >class Greeter { + > constructor( + > +2 > @ +3 > ParameterDecorator1 +4 > +1->Emitted(62, 9) Source(12, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(62, 20) Source(12, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(62, 39) Source(12, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(62, 40) Source(12, 27) + SourceIndex(0) name (Greeter) +--- +>>> __param(0, ParameterDecorator2(20)), +1->^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +1-> + > +2 > @ +3 > ParameterDecorator2 +4 > ( +5 > 20 +6 > ) +7 > +1->Emitted(63, 9) Source(13, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(63, 20) Source(13, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(63, 39) Source(13, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(63, 40) Source(13, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(63, 42) Source(13, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(63, 43) Source(13, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(63, 44) Source(13, 31) + SourceIndex(0) name (Greeter) +--- +>>> __param(1, ParameterDecorator1), +1 >^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^^^^-> +1 > + > public greeting: string, + > + > +2 > @ +3 > ParameterDecorator1 +4 > +1 >Emitted(64, 9) Source(16, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(64, 20) Source(16, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(64, 39) Source(16, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(64, 40) Source(16, 27) + SourceIndex(0) name (Greeter) +--- +>>> __param(1, ParameterDecorator2(30)) +1->^^^^^^^^ +2 > ^^^^^^^^^^^ +3 > ^^^^^^^^^^^^^^^^^^^ +4 > ^ +5 > ^^ +6 > ^ +7 > ^ +1-> + > +2 > @ +3 > ParameterDecorator2 +4 > ( +5 > 30 +6 > ) +7 > +1->Emitted(65, 9) Source(17, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(65, 20) Source(17, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(65, 39) Source(17, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(65, 40) Source(17, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(65, 42) Source(17, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(65, 43) Source(17, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(65, 44) Source(17, 31) + SourceIndex(0) name (Greeter) +--- +>>> ], Greeter); +1 >^^^^^^^^^^^^^^^^ +2 > ^^^^-> +1 > + > ...b: string[]) { + > } + > + > @PropertyDecorator1 + > @PropertyDecorator2(40) + > greet() { + > return "

" + this.greeting + "

"; + > } + > + > @PropertyDecorator1 + > @PropertyDecorator2(50) + > private x: string; + > + > @PropertyDecorator1 + > @PropertyDecorator2(60) + > private static x1: number = 10; + > + > private fn( + > @ParameterDecorator1 + > @ParameterDecorator2(70) + > x: number) { > return this.greeting; > } > @@ -557,281 +889,21 @@ sourceFile:sourceMapValidationDecorators.ts > } > > set greetings( - > -2 > @ -3 > ParameterDecorator1 -4 > - > @ -5 > ParameterDecorator2 -6 > ( -7 > 90 -8 > ) -9 > - > -10> greetings -11> : string -1->Emitted(43, 5) Source(49, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(43, 17) Source(49, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(43, 36) Source(49, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(43, 38) Source(50, 8) + SourceIndex(0) name (Greeter) -5 >Emitted(43, 57) Source(50, 27) + SourceIndex(0) name (Greeter) -6 >Emitted(43, 58) Source(50, 28) + SourceIndex(0) name (Greeter) -7 >Emitted(43, 60) Source(50, 30) + SourceIndex(0) name (Greeter) -8 >Emitted(43, 61) Source(50, 31) + SourceIndex(0) name (Greeter) -9 >Emitted(43, 99) Source(51, 7) + SourceIndex(0) name (Greeter) -10>Emitted(43, 132) Source(51, 16) + SourceIndex(0) name (Greeter) -11>Emitted(43, 134) Source(51, 24) + SourceIndex(0) name (Greeter) ---- ->>> Object.defineProperty(Greeter.prototype, "greetings", __decorate([PropertyDecorator1, PropertyDecorator2(80), __metadata('design:type', Object)], Greeter.prototype, "greetings", Object.getOwnPropertyDescriptor(Greeter.prototype, "greetings"))); -1->^^^^ -2 > ^^^^^^^^^^^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -4 > ^^^^^^^^^^^^^^ -5 > ^^^^^^^^^^^^^^^^^^ -6 > ^^ -7 > ^^^^^^^^^^^^^^^^^^ -8 > ^ -9 > ^^ -10> ^ -11> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -12> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -13> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -14> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -15> ^^^^ -1-> -2 > @PropertyDecorator1 - > @PropertyDecorator2(80) - > get -3 > greetings -4 > -5 > PropertyDecorator1 -6 > - > @ -7 > PropertyDecorator2 -8 > ( -9 > 80 -10> ) -11> - > get -12> greetings -13> -14> greetings -15> () { - > return this.greeting; - > } -1->Emitted(44, 5) Source(42, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(44, 27) Source(44, 9) + SourceIndex(0) name (Greeter) -3 >Emitted(44, 57) Source(44, 18) + SourceIndex(0) name (Greeter) -4 >Emitted(44, 71) Source(42, 6) + SourceIndex(0) name (Greeter) -5 >Emitted(44, 89) Source(42, 24) + SourceIndex(0) name (Greeter) -6 >Emitted(44, 91) Source(43, 6) + SourceIndex(0) name (Greeter) -7 >Emitted(44, 109) Source(43, 24) + SourceIndex(0) name (Greeter) -8 >Emitted(44, 110) Source(43, 25) + SourceIndex(0) name (Greeter) -9 >Emitted(44, 112) Source(43, 27) + SourceIndex(0) name (Greeter) -10>Emitted(44, 113) Source(43, 28) + SourceIndex(0) name (Greeter) -11>Emitted(44, 151) Source(44, 9) + SourceIndex(0) name (Greeter) -12>Emitted(44, 181) Source(44, 18) + SourceIndex(0) name (Greeter) -13>Emitted(44, 215) Source(44, 9) + SourceIndex(0) name (Greeter) -14>Emitted(44, 245) Source(44, 18) + SourceIndex(0) name (Greeter) -15>Emitted(44, 249) Source(46, 6) + SourceIndex(0) name (Greeter) ---- ->>> __decorate([PropertyDecorator1, PropertyDecorator2(60), __metadata('design:type', Number)], Greeter, "x1"); -1 >^^^^ -2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10> ^^^^^^^^^^^^^ -11> ^^ -12> ^^^^^^^^-> -1 > -2 > @ -3 > PropertyDecorator1 -4 > - > @ -5 > PropertyDecorator2 -6 > ( -7 > 60 -8 > ) -9 > - > private static -10> x1 -11> : number = 10; -1 >Emitted(45, 5) Source(31, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(45, 17) Source(31, 6) + SourceIndex(0) name (Greeter) -3 >Emitted(45, 35) Source(31, 24) + SourceIndex(0) name (Greeter) -4 >Emitted(45, 37) Source(32, 6) + SourceIndex(0) name (Greeter) -5 >Emitted(45, 55) Source(32, 24) + SourceIndex(0) name (Greeter) -6 >Emitted(45, 56) Source(32, 25) + SourceIndex(0) name (Greeter) -7 >Emitted(45, 58) Source(32, 27) + SourceIndex(0) name (Greeter) -8 >Emitted(45, 59) Source(32, 28) + SourceIndex(0) name (Greeter) -9 >Emitted(45, 97) Source(33, 20) + SourceIndex(0) name (Greeter) -10>Emitted(45, 110) Source(33, 22) + SourceIndex(0) name (Greeter) -11>Emitted(45, 112) Source(33, 36) + SourceIndex(0) name (Greeter) ---- ->>> __decorate([ParameterDecorator1, ParameterDecorator2(20), __metadata('design:type', String)], Greeter, void 0, 0); -1->^^^^ -2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10> ^^^^^^^^^^^^^^^^^^ -11> ^^ -1-> -2 > @ -3 > ParameterDecorator1 -4 > - > @ -5 > ParameterDecorator2 -6 > ( -7 > 20 -8 > ) -9 > - > public -10> greeting -11> : string -1->Emitted(46, 5) Source(12, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(46, 17) Source(12, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(46, 36) Source(12, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(46, 38) Source(13, 8) + SourceIndex(0) name (Greeter) -5 >Emitted(46, 57) Source(13, 27) + SourceIndex(0) name (Greeter) -6 >Emitted(46, 58) Source(13, 28) + SourceIndex(0) name (Greeter) -7 >Emitted(46, 60) Source(13, 30) + SourceIndex(0) name (Greeter) -8 >Emitted(46, 61) Source(13, 31) + SourceIndex(0) name (Greeter) -9 >Emitted(46, 99) Source(14, 14) + SourceIndex(0) name (Greeter) -10>Emitted(46, 117) Source(14, 22) + SourceIndex(0) name (Greeter) -11>Emitted(46, 119) Source(14, 30) + SourceIndex(0) name (Greeter) ---- ->>> __decorate([ParameterDecorator1, ParameterDecorator2(30), __metadata('design:type', Array)], Greeter, void 0, 1); -1 >^^^^ -2 > ^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -10> ^^^^^^^^^^^^^^^^^^ -11> ^^ -12> ^^^^^^^^^-> -1 >, - > - > -2 > @ -3 > ParameterDecorator1 -4 > - > @ -5 > ParameterDecorator2 -6 > ( -7 > 30 -8 > ) -9 > - > ... -10> b -11> : string[] -1 >Emitted(47, 5) Source(16, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(47, 17) Source(16, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(47, 36) Source(16, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(47, 38) Source(17, 8) + SourceIndex(0) name (Greeter) -5 >Emitted(47, 57) Source(17, 27) + SourceIndex(0) name (Greeter) -6 >Emitted(47, 58) Source(17, 28) + SourceIndex(0) name (Greeter) -7 >Emitted(47, 60) Source(17, 30) + SourceIndex(0) name (Greeter) -8 >Emitted(47, 61) Source(17, 31) + SourceIndex(0) name (Greeter) -9 >Emitted(47, 98) Source(18, 10) + SourceIndex(0) name (Greeter) -10>Emitted(47, 116) Source(18, 11) + SourceIndex(0) name (Greeter) -11>Emitted(47, 118) Source(18, 21) + SourceIndex(0) name (Greeter) ---- ->>> Greeter = __decorate([ClassDecorator1, ClassDecorator2(10), __metadata('design:paramtypes', [String, String])], Greeter); -1->^^^^ -2 > ^^^^^^^^^^^^^^^^^^^^^^ -3 > ^^^^^^^^^^^^^^^ -4 > ^^ -5 > ^^^^^^^^^^^^^^^ -6 > ^ -7 > ^^ -8 > ^ -9 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1-> -2 > @ -3 > ClassDecorator1 -4 > - > @ -5 > ClassDecorator2 -6 > ( -7 > 10 -8 > ) -9 > - > class Greeter { - > constructor( - > @ParameterDecorator1 - > @ParameterDecorator2(20) - > public greeting: string, - > - > @ParameterDecorator1 - > @ParameterDecorator2(30) - > ...b: string[]) { - > } - > - > @PropertyDecorator1 - > @PropertyDecorator2(40) - > greet() { - > return "

" + this.greeting + "

"; - > } - > - > @PropertyDecorator1 - > @PropertyDecorator2(50) - > private x: string; - > - > @PropertyDecorator1 - > @PropertyDecorator2(60) - > private static x1: number = 10; - > - > private fn( - > @ParameterDecorator1 - > @ParameterDecorator2(70) - > x: number) { - > return this.greeting; - > } - > - > @PropertyDecorator1 - > @PropertyDecorator2(80) - > get greetings() { - > return this.greeting; - > } - > - > set greetings( - > @ParameterDecorator1 - > @ParameterDecorator2(90) - > greetings: string) { - > this.greeting = greetings; - > } - > } -1->Emitted(48, 5) Source(8, 1) + SourceIndex(0) name (Greeter) -2 >Emitted(48, 27) Source(8, 2) + SourceIndex(0) name (Greeter) -3 >Emitted(48, 42) Source(8, 17) + SourceIndex(0) name (Greeter) -4 >Emitted(48, 44) Source(9, 2) + SourceIndex(0) name (Greeter) -5 >Emitted(48, 59) Source(9, 17) + SourceIndex(0) name (Greeter) -6 >Emitted(48, 60) Source(9, 18) + SourceIndex(0) name (Greeter) -7 >Emitted(48, 62) Source(9, 20) + SourceIndex(0) name (Greeter) -8 >Emitted(48, 63) Source(9, 21) + SourceIndex(0) name (Greeter) -9 >Emitted(48, 126) Source(54, 2) + SourceIndex(0) name (Greeter) + > @ParameterDecorator1 + > @ParameterDecorator2(90) + > greetings: string) { + > this.greeting = greetings; + > } + >} +1 >Emitted(66, 17) Source(54, 2) + SourceIndex(0) name (Greeter) --- >>> return Greeter; -1 >^^^^ +1->^^^^ 2 > ^^^^^^^^^^^^^^ -1 > +1-> 2 > } -1 >Emitted(49, 5) Source(54, 1) + SourceIndex(0) name (Greeter) -2 >Emitted(49, 19) Source(54, 2) + SourceIndex(0) name (Greeter) +1->Emitted(67, 5) Source(54, 1) + SourceIndex(0) name (Greeter) +2 >Emitted(67, 19) Source(54, 2) + SourceIndex(0) name (Greeter) --- >>>})(); 1 > @@ -889,9 +961,9 @@ sourceFile:sourceMapValidationDecorators.ts > this.greeting = greetings; > } > } -1 >Emitted(50, 1) Source(54, 1) + SourceIndex(0) name (Greeter) -2 >Emitted(50, 2) Source(54, 2) + SourceIndex(0) name (Greeter) -3 >Emitted(50, 2) Source(8, 1) + SourceIndex(0) -4 >Emitted(50, 6) Source(54, 2) + SourceIndex(0) +1 >Emitted(68, 1) Source(54, 1) + SourceIndex(0) name (Greeter) +2 >Emitted(68, 2) Source(54, 2) + SourceIndex(0) name (Greeter) +3 >Emitted(68, 2) Source(8, 1) + SourceIndex(0) +4 >Emitted(68, 6) Source(54, 2) + SourceIndex(0) --- >>>//# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file