From a906076b4198ee9f14390a653f2c7d46546061e8 Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Thu, 23 Apr 2015 15:04:56 -0700 Subject: [PATCH 1/3] Updated LKG --- bin/lib.core.d.ts | 2 +- bin/lib.core.es6.d.ts | 4 +- bin/lib.d.ts | 2 +- bin/lib.es6.d.ts | 4 +- bin/tsc.js | 204 +++++++++++++++++++-------------- bin/tsserver.js | 212 +++++++++++++++++++--------------- bin/typescript.d.ts | 11 +- bin/typescript.js | 219 ++++++++++++++++++++---------------- bin/typescriptServices.d.ts | 11 +- bin/typescriptServices.js | 219 ++++++++++++++++++++---------------- 10 files changed, 500 insertions(+), 388 deletions(-) diff --git a/bin/lib.core.d.ts b/bin/lib.core.d.ts index 8a2561af13a11..fd048630ca17c 100644 --- a/bin/lib.core.d.ts +++ b/bin/lib.core.d.ts @@ -561,7 +561,7 @@ interface Math { */ atan(x: number): number; /** - * Returns the angle (in radians) from the X axis to a point (y,x). + * Returns the angle (in radians) from the X axis to a point. * @param y A numeric expression representing the cartesian y-coordinate. * @param x A numeric expression representing the cartesian x-coordinate. */ diff --git a/bin/lib.core.es6.d.ts b/bin/lib.core.es6.d.ts index 0b963774071ac..3344cf3197d0f 100644 --- a/bin/lib.core.es6.d.ts +++ b/bin/lib.core.es6.d.ts @@ -561,7 +561,7 @@ interface Math { */ atan(x: number): number; /** - * Returns the angle (in radians) from the X axis to a point (y,x). + * Returns the angle (in radians) from the X axis to a point. * @param y A numeric expression representing the cartesian y-coordinate. * @param x A numeric expression representing the cartesian x-coordinate. */ @@ -1628,7 +1628,7 @@ interface IteratorResult { } interface Iterator { - next(): IteratorResult; + next(value?: any): IteratorResult; return?(value?: any): IteratorResult; throw?(e?: any): IteratorResult; } diff --git a/bin/lib.d.ts b/bin/lib.d.ts index 5eaa933d164aa..17e8759758387 100644 --- a/bin/lib.d.ts +++ b/bin/lib.d.ts @@ -561,7 +561,7 @@ interface Math { */ atan(x: number): number; /** - * Returns the angle (in radians) from the X axis to a point (y,x). + * Returns the angle (in radians) from the X axis to a point. * @param y A numeric expression representing the cartesian y-coordinate. * @param x A numeric expression representing the cartesian x-coordinate. */ diff --git a/bin/lib.es6.d.ts b/bin/lib.es6.d.ts index 297cac973e3fb..c2361d833d156 100644 --- a/bin/lib.es6.d.ts +++ b/bin/lib.es6.d.ts @@ -561,7 +561,7 @@ interface Math { */ atan(x: number): number; /** - * Returns the angle (in radians) from the X axis to a point (y,x). + * Returns the angle (in radians) from the X axis to a point. * @param y A numeric expression representing the cartesian y-coordinate. * @param x A numeric expression representing the cartesian x-coordinate. */ @@ -1628,7 +1628,7 @@ interface IteratorResult { } interface Iterator { - next(): IteratorResult; + next(value?: any): IteratorResult; return?(value?: any): IteratorResult; throw?(e?: any): IteratorResult; } diff --git a/bin/tsc.js b/bin/tsc.js index 49960ff3e50b0..84a97ce61c832 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -275,6 +275,17 @@ var ts; return result; } ts.arrayToMap = arrayToMap; + function memoize(callback) { + var value; + return function () { + if (callback) { + value = callback(); + callback = undefined; + } + return value; + }; + } + ts.memoize = memoize; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); @@ -1064,7 +1075,7 @@ var ts; Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." }, Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." }, Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." }, - Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into amd or commonjs when targeting es6 or higher." }, + Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into 'amd', 'commonjs' or 'umd' when targeting 'ES6' or higher." }, Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." }, Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." }, Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." }, @@ -1366,7 +1377,7 @@ var ts; Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." }, Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." }, Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Specify_module_code_generation_Colon_commonjs_amd_or_umd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs', 'amd', or 'umd'." }, Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." }, Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." }, Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." }, @@ -1387,8 +1398,8 @@ var ts; Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." }, Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." }, Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Argument_for_module_option_must_be_commonjs_amd_or_umd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs', 'amd', or 'umd'." }, + Argument_for_target_option_must_be_ES3_ES5_or_ES6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'ES3', 'ES5', or 'ES6'." }, Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." }, Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." }, @@ -1688,7 +1699,7 @@ var ts; function isLineBreak(ch) { // ES5 7.3: // The ECMAScript line terminator characters are listed in Table 3. - // Table 3 � Line Terminator Characters + // Table 3: Line Terminator Characters // Code Unit Value Name Formal Name // \u000A Line Feed // \u000D Carriage Return @@ -2875,10 +2886,7 @@ var ts; parent = node; if (symbolKind & 262128) { container = node; - if (lastContainer) { - lastContainer.nextContainer = container; - } - lastContainer = container; + addToContainerChain(container); } if (isBlockScopeContainer) { setBlockScopeContainer(node, (symbolKind & 255504) === 0 && node.kind !== 227); @@ -2888,6 +2896,12 @@ var ts; parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } + function addToContainerChain(node) { + if (lastContainer) { + lastContainer.nextContainer = node; + } + lastContainer = node; + } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { case 205: @@ -3016,6 +3030,7 @@ var ts; default: if (!blockScopeContainer.locals) { blockScopeContainer.locals = {}; + addToContainerChain(blockScopeContainer); } declareSymbol(blockScopeContainer.locals, undefined, node, symbolKind, symbolExcludes); } @@ -3808,7 +3823,7 @@ var ts; var forStatement = parent_1; return (forStatement.initializer === node && forStatement.initializer.kind !== 199) || forStatement.condition === node || - forStatement.iterator === node; + forStatement.incrementor === node; case 187: case 188: var forInStatement = parent_1; @@ -4905,7 +4920,7 @@ var ts; case 186: return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || - visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.incrementor) || visitNode(cbNode, node.statement); case 187: return visitNode(cbNode, node.initializer) || @@ -7114,7 +7129,7 @@ var ts; } parseExpected(22); if (token !== 17) { - forStatement.iterator = allowInAnd(parseExpression); + forStatement.incrementor = allowInAnd(parseExpression); } parseExpected(17); forOrForInOrForOfStatement = forStatement; @@ -8516,11 +8531,10 @@ var ts; var globalESSymbolType; var globalIterableType; var anyArrayType; - var globalTypedPropertyDescriptorType; - var globalClassDecoratorType; - var globalParameterDecoratorType; - var globalPropertyDecoratorType; - var globalMethodDecoratorType; + var getGlobalClassDecoratorType; + var getGlobalParameterDecoratorType; + var getGlobalPropertyDecoratorType; + var getGlobalMethodDecoratorType; var tupleTypes = {}; var unionTypes = {}; var stringLiteralTypes = {}; @@ -10442,10 +10456,11 @@ var ts; } } } - function getDeclaredTypeOfClass(symbol) { + function getDeclaredTypeOfClassOrInterface(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(1024, symbol); + var kind = symbol.flags & 32 ? 1024 : 2048; + var type = links.declaredType = createObjectType(kind, symbol); var typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { type.flags |= 4096; @@ -10455,32 +10470,6 @@ var ts; type.target = type; type.typeArguments = type.typeParameters; } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); - } - return links.declaredType; - } - function getDeclaredTypeOfInterface(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); - type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); } return links.declaredType; } @@ -10531,11 +10520,8 @@ var ts; } function getDeclaredTypeOfSymbol(symbol) { ts.Debug.assert((symbol.flags & 16777216) === 0); - if (symbol.flags & 32) { - return getDeclaredTypeOfClass(symbol); - } - if (symbol.flags & 64) { - return getDeclaredTypeOfInterface(symbol); + if (symbol.flags & (32 | 64)) { + return getDeclaredTypeOfClassOrInterface(symbol); } if (symbol.flags & 524288) { return getDeclaredTypeOfTypeAlias(symbol); @@ -10583,15 +10569,27 @@ var ts; } } } + function resolveDeclaredMembers(type) { + if (!type.declaredProperties) { + var symbol = type.symbol; + type.declaredProperties = getNamedMembers(symbol.members); + type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); + type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); + } + return type; + } function resolveClassOrInterfaceMembers(type) { - var members = type.symbol.members; - var callSignatures = type.declaredCallSignatures; - var constructSignatures = type.declaredConstructSignatures; - var stringIndexType = type.declaredStringIndexType; - var numberIndexType = type.declaredNumberIndexType; - var baseTypes = getBaseTypes(type); + var target = resolveDeclaredMembers(type); + var members = target.symbol.members; + var callSignatures = target.declaredCallSignatures; + var constructSignatures = target.declaredConstructSignatures; + var stringIndexType = target.declaredStringIndexType; + var numberIndexType = target.declaredNumberIndexType; + var baseTypes = getBaseTypes(target); if (baseTypes.length) { - members = createSymbolTable(type.declaredProperties); + members = createSymbolTable(target.declaredProperties); for (var _i = 0; _i < baseTypes.length; _i++) { var baseType = baseTypes[_i]; addInheritedMembers(members, getPropertiesOfObjectType(baseType)); @@ -10604,7 +10602,7 @@ var ts; setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveTypeReferenceMembers(type) { - var target = type.target; + var target = resolveDeclaredMembers(type.target); var mapper = createTypeMapper(target.typeParameters, type.typeArguments); var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); @@ -10742,7 +10740,7 @@ var ts; callSignatures = getSignaturesOfSymbol(symbol); } if (symbol.flags & 32) { - var classType = getDeclaredTypeOfClass(symbol); + var classType = getDeclaredTypeOfClassOrInterface(symbol); constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); if (!constructSignatures.length) { constructSignatures = getDefaultConstructSignatures(classType); @@ -10843,7 +10841,7 @@ var ts; var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); - if (!prop) { + if (!prop || getDeclarationFlagsFromSymbol(prop) & (32 | 64)) { return undefined; } if (!props) { @@ -10953,7 +10951,7 @@ var ts; function getSignatureFromDeclaration(declaration) { var links = getNodeLinks(declaration); if (!links.resolvedSignature) { - var classType = declaration.kind === 135 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; + var classType = declaration.kind === 135 ? getDeclaredTypeOfClassOrInterface(declaration.parent.symbol) : undefined; var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; @@ -15409,21 +15407,21 @@ var ts; case 201: var classSymbol = getSymbolOfNode(node.parent); var classConstructorType = getTypeOfSymbol(classSymbol); - var classDecoratorType = instantiateSingleCallFunctionType(globalClassDecoratorType, [classConstructorType]); + var classDecoratorType = instantiateSingleCallFunctionType(getGlobalClassDecoratorType(), [classConstructorType]); checkTypeAssignableTo(exprType, classDecoratorType, node); break; case 132: - checkTypeAssignableTo(exprType, globalPropertyDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalPropertyDecoratorType(), node); break; case 134: case 136: case 137: var methodType = getTypeOfNode(node.parent); - var methodDecoratorType = instantiateSingleCallFunctionType(globalMethodDecoratorType, [methodType]); + var methodDecoratorType = instantiateSingleCallFunctionType(getGlobalMethodDecoratorType(), [methodType]); checkTypeAssignableTo(exprType, methodDecoratorType, node); break; case 129: - checkTypeAssignableTo(exprType, globalParameterDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalParameterDecoratorType(), node); break; } } @@ -15806,8 +15804,8 @@ var ts; } if (node.condition) checkExpression(node.condition); - if (node.iterator) - checkExpression(node.iterator); + if (node.incrementor) + checkExpression(node.incrementor); checkSourceElement(node.statement); } function checkForOfStatement(node) { @@ -16387,7 +16385,7 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); + ts.forEach(resolveDeclaredMembers(type).declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; for (var _i = 0; _i < baseTypes.length; _i++) { var base = baseTypes[_i]; @@ -17882,11 +17880,10 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTypedPropertyDescriptorType = getTypeOfGlobalSymbol(getGlobalTypeSymbol("TypedPropertyDescriptor"), 1); - globalClassDecoratorType = getGlobalType("ClassDecorator"); - globalPropertyDecoratorType = getGlobalType("PropertyDecorator"); - globalMethodDecoratorType = getGlobalType("MethodDecorator"); - globalParameterDecoratorType = getGlobalType("ParameterDecorator"); + getGlobalClassDecoratorType = ts.memoize(function () { return getGlobalType("ClassDecorator"); }); + getGlobalPropertyDecoratorType = ts.memoize(function () { return getGlobalType("PropertyDecorator"); }); + getGlobalMethodDecoratorType = ts.memoize(function () { return getGlobalType("MethodDecorator"); }); + getGlobalParameterDecoratorType = ts.memoize(function () { return getGlobalType("ParameterDecorator"); }); if (languageVersion >= 2) { globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); globalESSymbolType = getGlobalType("Symbol"); @@ -21775,7 +21772,7 @@ var ts; write(";"); emitOptional(" ", node.condition); write(";"); - emitOptional(" ", node.iterator); + emitOptional(" ", node.incrementor); write(")"); emitEmbeddedStatement(node.statement); } @@ -23813,8 +23810,18 @@ var ts; write("}"); } } - function emitAMDModule(node, startIndex) { - collectExternalModuleInfo(node); + function emitAMDDependencies(node, includeNonAmdDependencies) { + // An AMD define function has the following shape: + // define(id?, dependencies?, factory); + // + // This has the shape of + // define(name, ["module1", "module2"], function (module1Alias) { + // The location of the alias in the parameter list in the factory function needs to + // match the position of the module name in the dependency list. + // + // To ensure this is true in cases of modules with no aliases, e.g.: + // `import "module"` or `` + // we need to add modules without alias names to the end of the dependencies list var aliasedModuleNames = []; var unaliasedModuleNames = []; var importAliasNames = []; @@ -23843,7 +23850,7 @@ var ts; else { importAliasName = getGeneratedNameForNode(importNode); } - if (importAliasName) { + if (includeNonAmdDependencies && importAliasName) { aliasedModuleNames.push(externalModuleName); importAliasNames.push(importAliasName); } @@ -23851,11 +23858,6 @@ var ts; unaliasedModuleNames.push(externalModuleName); } } - writeLine(); - write("define("); - if (node.amdModuleName) { - write("\"" + node.amdModuleName + "\", "); - } write("[\"require\", \"exports\""); if (aliasedModuleNames.length) { write(", "); @@ -23870,6 +23872,15 @@ var ts; write(", "); write(importAliasNames.join(", ")); } + } + function emitAMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLine(); + write("define("); + if (node.amdModuleName) { + write("\"" + node.amdModuleName + "\", "); + } + emitAMDDependencies(node, true); write(") {"); increaseIndent(); emitExportStarHelper(); @@ -23889,6 +23900,21 @@ var ts; emitTempDeclarations(true); emitExportEquals(false); } + function emitUMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLines("(function (deps, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define(deps, factory);\n }\n})("); + emitAMDDependencies(node, false); + write(") {"); + increaseIndent(); + emitExportStarHelper(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + emitExportEquals(true); + decreaseIndent(); + writeLine(); + write("});"); + } function emitES6Module(node, startIndex) { externalImports = undefined; exportSpecifiers = undefined; @@ -23958,6 +23984,9 @@ var ts; else if (compilerOptions.module === 2) { emitAMDModule(node, startIndex); } + else if (compilerOptions.module === 3) { + emitUMDModule(node, startIndex); + } else { emitCommonJSModule(node, startIndex); } @@ -24753,7 +24782,7 @@ var ts; diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } if (options.module && languageVersion >= 2) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher)); } if (options.outDir || options.sourceRoot || @@ -24832,11 +24861,12 @@ var ts; shortName: "m", type: { "commonjs": 1, - "amd": 2 + "amd": 2, + "umd": 3 }, - description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, + description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_amd_or_umd, paramType: ts.Diagnostics.KIND, - error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd + error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_amd_or_umd }, { name: "noEmit", @@ -24932,7 +24962,7 @@ var ts; type: { "es3": 0, "es5": 1, "es6": 2 }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, - error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 + error: ts.Diagnostics.Argument_for_target_option_must_be_ES3_ES5_or_ES6 }, { name: "version", diff --git a/bin/tsserver.js b/bin/tsserver.js index 782f44717997c..52fb9a6ab9404 100644 --- a/bin/tsserver.js +++ b/bin/tsserver.js @@ -275,6 +275,17 @@ var ts; return result; } ts.arrayToMap = arrayToMap; + function memoize(callback) { + var value; + return function () { + if (callback) { + value = callback(); + callback = undefined; + } + return value; + }; + } + ts.memoize = memoize; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); @@ -1064,7 +1075,7 @@ var ts; Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." }, Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." }, Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." }, - Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into amd or commonjs when targeting es6 or higher." }, + Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into 'amd', 'commonjs' or 'umd' when targeting 'ES6' or higher." }, Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." }, Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." }, Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." }, @@ -1366,7 +1377,7 @@ var ts; Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." }, Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." }, Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Specify_module_code_generation_Colon_commonjs_amd_or_umd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs', 'amd', or 'umd'." }, Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." }, Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." }, Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." }, @@ -1387,8 +1398,8 @@ var ts; Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." }, Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." }, Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Argument_for_module_option_must_be_commonjs_amd_or_umd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs', 'amd', or 'umd'." }, + Argument_for_target_option_must_be_ES3_ES5_or_ES6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'ES3', 'ES5', or 'ES6'." }, Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." }, Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." }, @@ -1688,7 +1699,7 @@ var ts; function isLineBreak(ch) { // ES5 7.3: // The ECMAScript line terminator characters are listed in Table 3. - // Table 3 � Line Terminator Characters + // Table 3: Line Terminator Characters // Code Unit Value Name Formal Name // \u000A Line Feed // \u000D Carriage Return @@ -2738,11 +2749,12 @@ var ts; shortName: "m", type: { "commonjs": 1, - "amd": 2 + "amd": 2, + "umd": 3 }, - description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, + description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_amd_or_umd, paramType: ts.Diagnostics.KIND, - error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd + error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_amd_or_umd }, { name: "noEmit", @@ -2838,7 +2850,7 @@ var ts; type: { "es3": 0, "es5": 1, "es6": 2 }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, - error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 + error: ts.Diagnostics.Argument_for_target_option_must_be_ES3_ES5_or_ES6 }, { name: "version", @@ -3649,7 +3661,7 @@ var ts; var forStatement = parent_1; return (forStatement.initializer === node && forStatement.initializer.kind !== 199) || forStatement.condition === node || - forStatement.iterator === node; + forStatement.incrementor === node; case 187: case 188: var forInStatement = parent_1; @@ -4746,7 +4758,7 @@ var ts; case 186: return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || - visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.incrementor) || visitNode(cbNode, node.statement); case 187: return visitNode(cbNode, node.initializer) || @@ -6955,7 +6967,7 @@ var ts; } parseExpected(22); if (token !== 17) { - forStatement.iterator = allowInAnd(parseExpression); + forStatement.incrementor = allowInAnd(parseExpression); } parseExpected(17); forOrForInOrForOfStatement = forStatement; @@ -8446,10 +8458,7 @@ var ts; parent = node; if (symbolKind & 262128) { container = node; - if (lastContainer) { - lastContainer.nextContainer = container; - } - lastContainer = container; + addToContainerChain(container); } if (isBlockScopeContainer) { setBlockScopeContainer(node, (symbolKind & 255504) === 0 && node.kind !== 227); @@ -8459,6 +8468,12 @@ var ts; parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } + function addToContainerChain(node) { + if (lastContainer) { + lastContainer.nextContainer = node; + } + lastContainer = node; + } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { case 205: @@ -8587,6 +8602,7 @@ var ts; default: if (!blockScopeContainer.locals) { blockScopeContainer.locals = {}; + addToContainerChain(blockScopeContainer); } declareSymbol(blockScopeContainer.locals, undefined, node, symbolKind, symbolExcludes); } @@ -8866,11 +8882,10 @@ var ts; var globalESSymbolType; var globalIterableType; var anyArrayType; - var globalTypedPropertyDescriptorType; - var globalClassDecoratorType; - var globalParameterDecoratorType; - var globalPropertyDecoratorType; - var globalMethodDecoratorType; + var getGlobalClassDecoratorType; + var getGlobalParameterDecoratorType; + var getGlobalPropertyDecoratorType; + var getGlobalMethodDecoratorType; var tupleTypes = {}; var unionTypes = {}; var stringLiteralTypes = {}; @@ -10792,10 +10807,11 @@ var ts; } } } - function getDeclaredTypeOfClass(symbol) { + function getDeclaredTypeOfClassOrInterface(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(1024, symbol); + var kind = symbol.flags & 32 ? 1024 : 2048; + var type = links.declaredType = createObjectType(kind, symbol); var typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { type.flags |= 4096; @@ -10805,32 +10821,6 @@ var ts; type.target = type; type.typeArguments = type.typeParameters; } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); - } - return links.declaredType; - } - function getDeclaredTypeOfInterface(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); - type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); } return links.declaredType; } @@ -10881,11 +10871,8 @@ var ts; } function getDeclaredTypeOfSymbol(symbol) { ts.Debug.assert((symbol.flags & 16777216) === 0); - if (symbol.flags & 32) { - return getDeclaredTypeOfClass(symbol); - } - if (symbol.flags & 64) { - return getDeclaredTypeOfInterface(symbol); + if (symbol.flags & (32 | 64)) { + return getDeclaredTypeOfClassOrInterface(symbol); } if (symbol.flags & 524288) { return getDeclaredTypeOfTypeAlias(symbol); @@ -10933,15 +10920,27 @@ var ts; } } } + function resolveDeclaredMembers(type) { + if (!type.declaredProperties) { + var symbol = type.symbol; + type.declaredProperties = getNamedMembers(symbol.members); + type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); + type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); + } + return type; + } function resolveClassOrInterfaceMembers(type) { - var members = type.symbol.members; - var callSignatures = type.declaredCallSignatures; - var constructSignatures = type.declaredConstructSignatures; - var stringIndexType = type.declaredStringIndexType; - var numberIndexType = type.declaredNumberIndexType; - var baseTypes = getBaseTypes(type); + var target = resolveDeclaredMembers(type); + var members = target.symbol.members; + var callSignatures = target.declaredCallSignatures; + var constructSignatures = target.declaredConstructSignatures; + var stringIndexType = target.declaredStringIndexType; + var numberIndexType = target.declaredNumberIndexType; + var baseTypes = getBaseTypes(target); if (baseTypes.length) { - members = createSymbolTable(type.declaredProperties); + members = createSymbolTable(target.declaredProperties); for (var _i = 0; _i < baseTypes.length; _i++) { var baseType = baseTypes[_i]; addInheritedMembers(members, getPropertiesOfObjectType(baseType)); @@ -10954,7 +10953,7 @@ var ts; setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveTypeReferenceMembers(type) { - var target = type.target; + var target = resolveDeclaredMembers(type.target); var mapper = createTypeMapper(target.typeParameters, type.typeArguments); var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); @@ -11092,7 +11091,7 @@ var ts; callSignatures = getSignaturesOfSymbol(symbol); } if (symbol.flags & 32) { - var classType = getDeclaredTypeOfClass(symbol); + var classType = getDeclaredTypeOfClassOrInterface(symbol); constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); if (!constructSignatures.length) { constructSignatures = getDefaultConstructSignatures(classType); @@ -11193,7 +11192,7 @@ var ts; var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); - if (!prop) { + if (!prop || getDeclarationFlagsFromSymbol(prop) & (32 | 64)) { return undefined; } if (!props) { @@ -11303,7 +11302,7 @@ var ts; function getSignatureFromDeclaration(declaration) { var links = getNodeLinks(declaration); if (!links.resolvedSignature) { - var classType = declaration.kind === 135 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; + var classType = declaration.kind === 135 ? getDeclaredTypeOfClassOrInterface(declaration.parent.symbol) : undefined; var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; @@ -15759,21 +15758,21 @@ var ts; case 201: var classSymbol = getSymbolOfNode(node.parent); var classConstructorType = getTypeOfSymbol(classSymbol); - var classDecoratorType = instantiateSingleCallFunctionType(globalClassDecoratorType, [classConstructorType]); + var classDecoratorType = instantiateSingleCallFunctionType(getGlobalClassDecoratorType(), [classConstructorType]); checkTypeAssignableTo(exprType, classDecoratorType, node); break; case 132: - checkTypeAssignableTo(exprType, globalPropertyDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalPropertyDecoratorType(), node); break; case 134: case 136: case 137: var methodType = getTypeOfNode(node.parent); - var methodDecoratorType = instantiateSingleCallFunctionType(globalMethodDecoratorType, [methodType]); + var methodDecoratorType = instantiateSingleCallFunctionType(getGlobalMethodDecoratorType(), [methodType]); checkTypeAssignableTo(exprType, methodDecoratorType, node); break; case 129: - checkTypeAssignableTo(exprType, globalParameterDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalParameterDecoratorType(), node); break; } } @@ -16156,8 +16155,8 @@ var ts; } if (node.condition) checkExpression(node.condition); - if (node.iterator) - checkExpression(node.iterator); + if (node.incrementor) + checkExpression(node.incrementor); checkSourceElement(node.statement); } function checkForOfStatement(node) { @@ -16737,7 +16736,7 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); + ts.forEach(resolveDeclaredMembers(type).declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; for (var _i = 0; _i < baseTypes.length; _i++) { var base = baseTypes[_i]; @@ -18232,11 +18231,10 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTypedPropertyDescriptorType = getTypeOfGlobalSymbol(getGlobalTypeSymbol("TypedPropertyDescriptor"), 1); - globalClassDecoratorType = getGlobalType("ClassDecorator"); - globalPropertyDecoratorType = getGlobalType("PropertyDecorator"); - globalMethodDecoratorType = getGlobalType("MethodDecorator"); - globalParameterDecoratorType = getGlobalType("ParameterDecorator"); + getGlobalClassDecoratorType = ts.memoize(function () { return getGlobalType("ClassDecorator"); }); + getGlobalPropertyDecoratorType = ts.memoize(function () { return getGlobalType("PropertyDecorator"); }); + getGlobalMethodDecoratorType = ts.memoize(function () { return getGlobalType("MethodDecorator"); }); + getGlobalParameterDecoratorType = ts.memoize(function () { return getGlobalType("ParameterDecorator"); }); if (languageVersion >= 2) { globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); globalESSymbolType = getGlobalType("Symbol"); @@ -22125,7 +22123,7 @@ var ts; write(";"); emitOptional(" ", node.condition); write(";"); - emitOptional(" ", node.iterator); + emitOptional(" ", node.incrementor); write(")"); emitEmbeddedStatement(node.statement); } @@ -24163,8 +24161,18 @@ var ts; write("}"); } } - function emitAMDModule(node, startIndex) { - collectExternalModuleInfo(node); + function emitAMDDependencies(node, includeNonAmdDependencies) { + // An AMD define function has the following shape: + // define(id?, dependencies?, factory); + // + // This has the shape of + // define(name, ["module1", "module2"], function (module1Alias) { + // The location of the alias in the parameter list in the factory function needs to + // match the position of the module name in the dependency list. + // + // To ensure this is true in cases of modules with no aliases, e.g.: + // `import "module"` or `` + // we need to add modules without alias names to the end of the dependencies list var aliasedModuleNames = []; var unaliasedModuleNames = []; var importAliasNames = []; @@ -24193,7 +24201,7 @@ var ts; else { importAliasName = getGeneratedNameForNode(importNode); } - if (importAliasName) { + if (includeNonAmdDependencies && importAliasName) { aliasedModuleNames.push(externalModuleName); importAliasNames.push(importAliasName); } @@ -24201,11 +24209,6 @@ var ts; unaliasedModuleNames.push(externalModuleName); } } - writeLine(); - write("define("); - if (node.amdModuleName) { - write("\"" + node.amdModuleName + "\", "); - } write("[\"require\", \"exports\""); if (aliasedModuleNames.length) { write(", "); @@ -24220,6 +24223,15 @@ var ts; write(", "); write(importAliasNames.join(", ")); } + } + function emitAMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLine(); + write("define("); + if (node.amdModuleName) { + write("\"" + node.amdModuleName + "\", "); + } + emitAMDDependencies(node, true); write(") {"); increaseIndent(); emitExportStarHelper(); @@ -24239,6 +24251,21 @@ var ts; emitTempDeclarations(true); emitExportEquals(false); } + function emitUMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLines("(function (deps, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define(deps, factory);\n }\n})("); + emitAMDDependencies(node, false); + write(") {"); + increaseIndent(); + emitExportStarHelper(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + emitExportEquals(true); + decreaseIndent(); + writeLine(); + write("});"); + } function emitES6Module(node, startIndex) { externalImports = undefined; exportSpecifiers = undefined; @@ -24308,6 +24335,9 @@ var ts; else if (compilerOptions.module === 2) { emitAMDModule(node, startIndex); } + else if (compilerOptions.module === 3) { + emitUMDModule(node, startIndex); + } else { emitCommonJSModule(node, startIndex); } @@ -25103,7 +25133,7 @@ var ts; diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } if (options.module && languageVersion >= 2) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher)); } if (options.outDir || options.sourceRoot || @@ -25403,8 +25433,8 @@ var ts; if (forStatement.condition) { return textSpan(forStatement.condition); } - if (forStatement.iterator) { - return textSpan(forStatement.iterator); + if (forStatement.incrementor) { + return textSpan(forStatement.incrementor); } } function spanInOpenBraceToken(node) { @@ -28038,6 +28068,8 @@ var ts; case 169: case 170: return true; + case 152: + case 203: case 208: case 198: case 129: @@ -28049,8 +28081,6 @@ var ts; return context.currentTokenSpan.kind === 86 || context.nextTokenSpan.kind === 86; case 188: return context.currentTokenSpan.kind === 125 || context.nextTokenSpan.kind === 125; - case 152: - return context.currentTokenSpan.kind === 53 || context.nextTokenSpan.kind === 53; } return false; }; diff --git a/bin/typescript.d.ts b/bin/typescript.d.ts index f86da199763ee..00ddd43317910 100644 --- a/bin/typescript.d.ts +++ b/bin/typescript.d.ts @@ -597,7 +597,7 @@ declare module "typescript" { interface ForStatement extends IterationStatement { initializer?: VariableDeclarationList | Expression; condition?: Expression; - iterator?: Expression; + incrementor?: Expression; } interface ForInStatement extends IterationStatement { initializer: VariableDeclarationList | Expression; @@ -1005,15 +1005,17 @@ declare module "typescript" { } interface InterfaceType extends ObjectType { typeParameters: TypeParameter[]; + } + interface InterfaceTypeWithBaseTypes extends InterfaceType { + baseTypes: ObjectType[]; + } + interface InterfaceTypeWithDeclaredMembers extends InterfaceType { declaredProperties: Symbol[]; declaredCallSignatures: Signature[]; declaredConstructSignatures: Signature[]; declaredStringIndexType: Type; declaredNumberIndexType: Type; } - interface InterfaceTypeWithBaseTypes extends InterfaceType { - baseTypes: ObjectType[]; - } interface TypeReference extends ObjectType { target: GenericType; typeArguments: Type[]; @@ -1110,6 +1112,7 @@ declare module "typescript" { None = 0, CommonJS = 1, AMD = 2, + UMD = 3, } interface LineAndCharacter { line: number; diff --git a/bin/typescript.js b/bin/typescript.js index e012dbafb5bd3..cae226bcaf96e 100644 --- a/bin/typescript.js +++ b/bin/typescript.js @@ -541,6 +541,7 @@ var ts; ModuleKind[ModuleKind["None"] = 0] = "None"; ModuleKind[ModuleKind["CommonJS"] = 1] = "CommonJS"; ModuleKind[ModuleKind["AMD"] = 2] = "AMD"; + ModuleKind[ModuleKind["UMD"] = 3] = "UMD"; })(ts.ModuleKind || (ts.ModuleKind = {})); var ModuleKind = ts.ModuleKind; (function (ScriptTarget) { @@ -960,6 +961,17 @@ var ts; return result; } ts.arrayToMap = arrayToMap; + function memoize(callback) { + var value; + return function () { + if (callback) { + value = callback(); + callback = undefined; + } + return value; + }; + } + ts.memoize = memoize; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); @@ -1798,7 +1810,7 @@ var ts; Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." }, Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." }, Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." }, - Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into amd or commonjs when targeting es6 or higher." }, + Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into 'amd', 'commonjs' or 'umd' when targeting 'ES6' or higher." }, Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." }, Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." }, Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." }, @@ -2100,7 +2112,7 @@ var ts; Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." }, Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." }, Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Specify_module_code_generation_Colon_commonjs_amd_or_umd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs', 'amd', or 'umd'." }, Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." }, Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." }, Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." }, @@ -2121,8 +2133,8 @@ var ts; Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." }, Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." }, Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Argument_for_module_option_must_be_commonjs_amd_or_umd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs', 'amd', or 'umd'." }, + Argument_for_target_option_must_be_ES3_ES5_or_ES6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'ES3', 'ES5', or 'ES6'." }, Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." }, Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." }, @@ -2478,7 +2490,7 @@ var ts; function isLineBreak(ch) { // ES5 7.3: // The ECMAScript line terminator characters are listed in Table 3. - // Table 3 � Line Terminator Characters + // Table 3: Line Terminator Characters // Code Unit Value Name Formal Name // \u000A Line Feed // \u000D Carriage Return @@ -3766,10 +3778,7 @@ var ts; parent = node; if (symbolKind & 262128 /* IsContainer */) { container = node; - if (lastContainer) { - lastContainer.nextContainer = container; - } - lastContainer = container; + addToContainerChain(container); } if (isBlockScopeContainer) { // in incremental scenarios we might reuse nodes that already have locals being allocated @@ -3785,6 +3794,12 @@ var ts; parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } + function addToContainerChain(node) { + if (lastContainer) { + lastContainer.nextContainer = node; + } + lastContainer = node; + } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { case 205 /* ModuleDeclaration */: @@ -3918,6 +3933,7 @@ var ts; default: if (!blockScopeContainer.locals) { blockScopeContainer.locals = {}; + addToContainerChain(blockScopeContainer); } declareSymbol(blockScopeContainer.locals, undefined, node, symbolKind, symbolExcludes); } @@ -4820,7 +4836,7 @@ var ts; var forStatement = parent_1; return (forStatement.initializer === node && forStatement.initializer.kind !== 199 /* VariableDeclarationList */) || forStatement.condition === node || - forStatement.iterator === node; + forStatement.incrementor === node; case 187 /* ForInStatement */: case 188 /* ForOfStatement */: var forInStatement = parent_1; @@ -6079,7 +6095,7 @@ var ts; case 186 /* ForStatement */: return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || - visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.incrementor) || visitNode(cbNode, node.statement); case 187 /* ForInStatement */: return visitNode(cbNode, node.initializer) || @@ -8953,7 +8969,7 @@ var ts; } parseExpected(22 /* SemicolonToken */); if (token !== 17 /* CloseParenToken */) { - forStatement.iterator = allowInAnd(parseExpression); + forStatement.incrementor = allowInAnd(parseExpression); } parseExpected(17 /* CloseParenToken */); forOrForInOrForOfStatement = forStatement; @@ -10714,11 +10730,10 @@ var ts; var globalESSymbolType; var globalIterableType; var anyArrayType; - var globalTypedPropertyDescriptorType; - var globalClassDecoratorType; - var globalParameterDecoratorType; - var globalPropertyDecoratorType; - var globalMethodDecoratorType; + var getGlobalClassDecoratorType; + var getGlobalParameterDecoratorType; + var getGlobalPropertyDecoratorType; + var getGlobalMethodDecoratorType; var tupleTypes = {}; var unionTypes = {}; var stringLiteralTypes = {}; @@ -12929,31 +12944,11 @@ var ts; } } } - function getDeclaredTypeOfClass(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(1024 /* Class */, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096 /* Reference */; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); - } - return links.declaredType; - } - function getDeclaredTypeOfInterface(symbol) { + function getDeclaredTypeOfClassOrInterface(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048 /* Interface */, symbol); + var kind = symbol.flags & 32 /* Class */ ? 1024 /* Class */ : 2048 /* Interface */; + var type = links.declaredType = createObjectType(kind, symbol); var typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { type.flags |= 4096 /* Reference */; @@ -12963,11 +12958,6 @@ var ts; type.target = type; type.typeArguments = type.typeParameters; } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); - type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); } return links.declaredType; } @@ -13018,11 +13008,8 @@ var ts; } function getDeclaredTypeOfSymbol(symbol) { ts.Debug.assert((symbol.flags & 16777216 /* Instantiated */) === 0); - if (symbol.flags & 32 /* Class */) { - return getDeclaredTypeOfClass(symbol); - } - if (symbol.flags & 64 /* Interface */) { - return getDeclaredTypeOfInterface(symbol); + if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) { + return getDeclaredTypeOfClassOrInterface(symbol); } if (symbol.flags & 524288 /* TypeAlias */) { return getDeclaredTypeOfTypeAlias(symbol); @@ -13070,15 +13057,27 @@ var ts; } } } + function resolveDeclaredMembers(type) { + if (!type.declaredProperties) { + var symbol = type.symbol; + type.declaredProperties = getNamedMembers(symbol.members); + type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); + type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + } + return type; + } function resolveClassOrInterfaceMembers(type) { - var members = type.symbol.members; - var callSignatures = type.declaredCallSignatures; - var constructSignatures = type.declaredConstructSignatures; - var stringIndexType = type.declaredStringIndexType; - var numberIndexType = type.declaredNumberIndexType; - var baseTypes = getBaseTypes(type); + var target = resolveDeclaredMembers(type); + var members = target.symbol.members; + var callSignatures = target.declaredCallSignatures; + var constructSignatures = target.declaredConstructSignatures; + var stringIndexType = target.declaredStringIndexType; + var numberIndexType = target.declaredNumberIndexType; + var baseTypes = getBaseTypes(target); if (baseTypes.length) { - members = createSymbolTable(type.declaredProperties); + members = createSymbolTable(target.declaredProperties); for (var _i = 0; _i < baseTypes.length; _i++) { var baseType = baseTypes[_i]; addInheritedMembers(members, getPropertiesOfObjectType(baseType)); @@ -13091,7 +13090,7 @@ var ts; setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveTypeReferenceMembers(type) { - var target = type.target; + var target = resolveDeclaredMembers(type.target); var mapper = createTypeMapper(target.typeParameters, type.typeArguments); var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); @@ -13236,7 +13235,7 @@ var ts; callSignatures = getSignaturesOfSymbol(symbol); } if (symbol.flags & 32 /* Class */) { - var classType = getDeclaredTypeOfClass(symbol); + var classType = getDeclaredTypeOfClassOrInterface(symbol); constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); if (!constructSignatures.length) { constructSignatures = getDefaultConstructSignatures(classType); @@ -13343,7 +13342,7 @@ var ts; var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); - if (!prop) { + if (!prop || getDeclarationFlagsFromSymbol(prop) & (32 /* Private */ | 64 /* Protected */)) { return undefined; } if (!props) { @@ -13462,7 +13461,7 @@ var ts; function getSignatureFromDeclaration(declaration) { var links = getNodeLinks(declaration); if (!links.resolvedSignature) { - var classType = declaration.kind === 135 /* Constructor */ ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; + var classType = declaration.kind === 135 /* Constructor */ ? getDeclaredTypeOfClassOrInterface(declaration.parent.symbol) : undefined; var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; @@ -18691,21 +18690,21 @@ var ts; case 201 /* ClassDeclaration */: var classSymbol = getSymbolOfNode(node.parent); var classConstructorType = getTypeOfSymbol(classSymbol); - var classDecoratorType = instantiateSingleCallFunctionType(globalClassDecoratorType, [classConstructorType]); + var classDecoratorType = instantiateSingleCallFunctionType(getGlobalClassDecoratorType(), [classConstructorType]); checkTypeAssignableTo(exprType, classDecoratorType, node); break; case 132 /* PropertyDeclaration */: - checkTypeAssignableTo(exprType, globalPropertyDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalPropertyDecoratorType(), node); break; case 134 /* MethodDeclaration */: case 136 /* GetAccessor */: case 137 /* SetAccessor */: var methodType = getTypeOfNode(node.parent); - var methodDecoratorType = instantiateSingleCallFunctionType(globalMethodDecoratorType, [methodType]); + var methodDecoratorType = instantiateSingleCallFunctionType(getGlobalMethodDecoratorType(), [methodType]); checkTypeAssignableTo(exprType, methodDecoratorType, node); break; case 129 /* Parameter */: - checkTypeAssignableTo(exprType, globalParameterDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalParameterDecoratorType(), node); break; } } @@ -19178,8 +19177,8 @@ var ts; } if (node.condition) checkExpression(node.condition); - if (node.iterator) - checkExpression(node.iterator); + if (node.incrementor) + checkExpression(node.incrementor); checkSourceElement(node.statement); } function checkForOfStatement(node) { @@ -19860,7 +19859,7 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); + ts.forEach(resolveDeclaredMembers(type).declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; for (var _i = 0; _i < baseTypes.length; _i++) { var base = baseTypes[_i]; @@ -21520,11 +21519,10 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTypedPropertyDescriptorType = getTypeOfGlobalSymbol(getGlobalTypeSymbol("TypedPropertyDescriptor"), 1); - globalClassDecoratorType = getGlobalType("ClassDecorator"); - globalPropertyDecoratorType = getGlobalType("PropertyDecorator"); - globalMethodDecoratorType = getGlobalType("MethodDecorator"); - globalParameterDecoratorType = getGlobalType("ParameterDecorator"); + getGlobalClassDecoratorType = ts.memoize(function () { return getGlobalType("ClassDecorator"); }); + getGlobalPropertyDecoratorType = ts.memoize(function () { return getGlobalType("PropertyDecorator"); }); + getGlobalMethodDecoratorType = ts.memoize(function () { return getGlobalType("MethodDecorator"); }); + getGlobalParameterDecoratorType = ts.memoize(function () { return getGlobalType("ParameterDecorator"); }); // If we're in ES6 mode, load the TemplateStringsArray. // Otherwise, default to 'unknown' for the purposes of type checking in LS scenarios. if (languageVersion >= 2 /* ES6 */) { @@ -25863,7 +25861,7 @@ var ts; write(";"); emitOptional(" ", node.condition); write(";"); - emitOptional(" ", node.iterator); + emitOptional(" ", node.incrementor); write(")"); emitEmbeddedStatement(node.statement); } @@ -28164,25 +28162,24 @@ var ts; write("}"); } } - function emitAMDModule(node, startIndex) { - collectExternalModuleInfo(node); + function emitAMDDependencies(node, includeNonAmdDependencies) { // An AMD define function has the following shape: // define(id?, dependencies?, factory); // // This has the shape of // define(name, ["module1", "module2"], function (module1Alias) { - // The location of the alias in the parameter list in the factory function needs to + // The location of the alias in the parameter list in the factory function needs to // match the position of the module name in the dependency list. // - // To ensure this is true in cases of modules with no aliases, e.g.: - // `import "module"` or `` + // To ensure this is true in cases of modules with no aliases, e.g.: + // `import "module"` or `` // we need to add modules without alias names to the end of the dependencies list - var aliasedModuleNames = []; // names of modules with corresponding parameter in the + var aliasedModuleNames = []; // names of modules with corresponding parameter in the // factory function. var unaliasedModuleNames = []; // names of modules with no corresponding parameters in // factory function. - var importAliasNames = []; // names of the parameters in the factory function; these - // paramters need to match the indexes of the corresponding + var importAliasNames = []; // names of the parameters in the factory function; these + // parameters need to match the indexes of the corresponding // module names in aliasedModuleNames. // Fill in amd-dependency tags for (var _a = 0, _b = node.amdDependencies; _a < _b.length; _a++) { @@ -28203,7 +28200,7 @@ var ts; if (moduleName.kind === 8 /* StringLiteral */) { externalModuleName = getLiteralText(moduleName); } - // Find the name of the module alais, if there is one + // Find the name of the module alias, if there is one var importAliasName = void 0; var namespaceDeclaration = getNamespaceDeclarationNode(importNode); if (namespaceDeclaration && !isDefaultImport(importNode)) { @@ -28212,7 +28209,7 @@ var ts; else { importAliasName = getGeneratedNameForNode(importNode); } - if (importAliasName) { + if (includeNonAmdDependencies && importAliasName) { aliasedModuleNames.push(externalModuleName); importAliasNames.push(importAliasName); } @@ -28220,11 +28217,6 @@ var ts; unaliasedModuleNames.push(externalModuleName); } } - writeLine(); - write("define("); - if (node.amdModuleName) { - write("\"" + node.amdModuleName + "\", "); - } write("[\"require\", \"exports\""); if (aliasedModuleNames.length) { write(", "); @@ -28239,6 +28231,15 @@ var ts; write(", "); write(importAliasNames.join(", ")); } + } + function emitAMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLine(); + write("define("); + if (node.amdModuleName) { + write("\"" + node.amdModuleName + "\", "); + } + emitAMDDependencies(node, true); write(") {"); increaseIndent(); emitExportStarHelper(); @@ -28258,6 +28259,22 @@ var ts; emitTempDeclarations(true); emitExportEquals(false); } + function emitUMDModule(node, startIndex) { + collectExternalModuleInfo(node); + // Module is detected first to support Browserify users that load into a browser with an AMD loader + writeLines("(function (deps, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define(deps, factory);\n }\n})("); + emitAMDDependencies(node, false); + write(") {"); + increaseIndent(); + emitExportStarHelper(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + emitExportEquals(true); + decreaseIndent(); + writeLine(); + write("});"); + } function emitES6Module(node, startIndex) { externalImports = undefined; exportSpecifiers = undefined; @@ -28334,6 +28351,9 @@ var ts; else if (compilerOptions.module === 2 /* AMD */) { emitAMDModule(node, startIndex); } + else if (compilerOptions.module === 3 /* UMD */) { + emitUMDModule(node, startIndex); + } else { emitCommonJSModule(node, startIndex); } @@ -29192,7 +29212,7 @@ var ts; } // Cannot specify module gen target when in es6 or above if (options.module && languageVersion >= 2 /* ES6 */) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher)); } // there has to be common source directory if user specified --outdir || --sourceRoot // if user specified --mapRoot, there needs to be common source directory if there would be multiple files being emitted @@ -29279,11 +29299,12 @@ var ts; shortName: "m", type: { "commonjs": 1 /* CommonJS */, - "amd": 2 /* AMD */ + "amd": 2 /* AMD */, + "umd": 3 /* UMD */ }, - description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, + description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_amd_or_umd, paramType: ts.Diagnostics.KIND, - error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd + error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_amd_or_umd }, { name: "noEmit", @@ -29379,7 +29400,7 @@ var ts; type: { "es3": 0 /* ES3 */, "es5": 1 /* ES5 */, "es6": 2 /* ES6 */ }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, - error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 + error: ts.Diagnostics.Argument_for_target_option_must_be_ES3_ES5_or_ES6 }, { name: "version", @@ -32804,6 +32825,10 @@ var ts; case 169 /* BinaryExpression */: case 170 /* ConditionalExpression */: return true; + // equals in binding elements: function foo([[x, y] = [1, 2]]) + case 152 /* BindingElement */: + // equals in type X = ... + case 203 /* TypeAliasDeclaration */: // equal in import a = module('a'); case 208 /* ImportEqualsDeclaration */: // equal in let a = 0; @@ -32820,8 +32845,6 @@ var ts; // Technically, "of" is not a binary operator, but format it the same way as "in" case 188 /* ForOfStatement */: return context.currentTokenSpan.kind === 125 /* OfKeyword */ || context.nextTokenSpan.kind === 125 /* OfKeyword */; - case 152 /* BindingElement */: - return context.currentTokenSpan.kind === 53 /* EqualsToken */ || context.nextTokenSpan.kind === 53 /* EqualsToken */; } return false; }; @@ -40481,8 +40504,8 @@ var ts; if (forStatement.condition) { return textSpan(forStatement.condition); } - if (forStatement.iterator) { - return textSpan(forStatement.iterator); + if (forStatement.incrementor) { + return textSpan(forStatement.incrementor); } } // Tokens: diff --git a/bin/typescriptServices.d.ts b/bin/typescriptServices.d.ts index cd8ee05add4d6..d946fdcfe3036 100644 --- a/bin/typescriptServices.d.ts +++ b/bin/typescriptServices.d.ts @@ -597,7 +597,7 @@ declare module ts { interface ForStatement extends IterationStatement { initializer?: VariableDeclarationList | Expression; condition?: Expression; - iterator?: Expression; + incrementor?: Expression; } interface ForInStatement extends IterationStatement { initializer: VariableDeclarationList | Expression; @@ -1005,15 +1005,17 @@ declare module ts { } interface InterfaceType extends ObjectType { typeParameters: TypeParameter[]; + } + interface InterfaceTypeWithBaseTypes extends InterfaceType { + baseTypes: ObjectType[]; + } + interface InterfaceTypeWithDeclaredMembers extends InterfaceType { declaredProperties: Symbol[]; declaredCallSignatures: Signature[]; declaredConstructSignatures: Signature[]; declaredStringIndexType: Type; declaredNumberIndexType: Type; } - interface InterfaceTypeWithBaseTypes extends InterfaceType { - baseTypes: ObjectType[]; - } interface TypeReference extends ObjectType { target: GenericType; typeArguments: Type[]; @@ -1110,6 +1112,7 @@ declare module ts { None = 0, CommonJS = 1, AMD = 2, + UMD = 3, } interface LineAndCharacter { line: number; diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index e012dbafb5bd3..cae226bcaf96e 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -541,6 +541,7 @@ var ts; ModuleKind[ModuleKind["None"] = 0] = "None"; ModuleKind[ModuleKind["CommonJS"] = 1] = "CommonJS"; ModuleKind[ModuleKind["AMD"] = 2] = "AMD"; + ModuleKind[ModuleKind["UMD"] = 3] = "UMD"; })(ts.ModuleKind || (ts.ModuleKind = {})); var ModuleKind = ts.ModuleKind; (function (ScriptTarget) { @@ -960,6 +961,17 @@ var ts; return result; } ts.arrayToMap = arrayToMap; + function memoize(callback) { + var value; + return function () { + if (callback) { + value = callback(); + callback = undefined; + } + return value; + }; + } + ts.memoize = memoize; function formatStringFromArgs(text, args, baseIndex) { baseIndex = baseIndex || 0; return text.replace(/{(\d+)}/g, function (match, index) { return args[+index + baseIndex]; }); @@ -1798,7 +1810,7 @@ var ts; Line_terminator_not_permitted_before_arrow: { code: 1200, category: ts.DiagnosticCategory.Error, key: "Line terminator not permitted before arrow." }, Import_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_or_import_d_from_mod_instead: { code: 1202, category: ts.DiagnosticCategory.Error, key: "Import assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"' or 'import d from \"mod\"' instead." }, Export_assignment_cannot_be_used_when_targeting_ECMAScript_6_or_higher_Consider_using_export_default_instead: { code: 1203, category: ts.DiagnosticCategory.Error, key: "Export assignment cannot be used when targeting ECMAScript 6 or higher. Consider using 'export default' instead." }, - Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into amd or commonjs when targeting es6 or higher." }, + Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher: { code: 1204, category: ts.DiagnosticCategory.Error, key: "Cannot compile external modules into 'amd', 'commonjs' or 'umd' when targeting 'ES6' or higher." }, Decorators_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1205, category: ts.DiagnosticCategory.Error, key: "Decorators are only available when targeting ECMAScript 5 and higher." }, Decorators_are_not_valid_here: { code: 1206, category: ts.DiagnosticCategory.Error, key: "Decorators are not valid here." }, Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: { code: 1207, category: ts.DiagnosticCategory.Error, key: "Decorators cannot be applied to multiple get/set accessors of the same name." }, @@ -2100,7 +2112,7 @@ var ts; Do_not_emit_comments_to_output: { code: 6009, category: ts.DiagnosticCategory.Message, key: "Do not emit comments to output." }, Do_not_emit_outputs: { code: 6010, category: ts.DiagnosticCategory.Message, key: "Do not emit outputs." }, Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: ts.DiagnosticCategory.Message, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Specify_module_code_generation_Colon_commonjs_amd_or_umd: { code: 6016, category: ts.DiagnosticCategory.Message, key: "Specify module code generation: 'commonjs', 'amd', or 'umd'." }, Print_this_message: { code: 6017, category: ts.DiagnosticCategory.Message, key: "Print this message." }, Print_the_compiler_s_version: { code: 6019, category: ts.DiagnosticCategory.Message, key: "Print the compiler's version." }, Compile_the_project_in_the_given_directory: { code: 6020, category: ts.DiagnosticCategory.Message, key: "Compile the project in the given directory." }, @@ -2121,8 +2133,8 @@ var ts; Generates_corresponding_map_file: { code: 6043, category: ts.DiagnosticCategory.Message, key: "Generates corresponding '.map' file." }, Compiler_option_0_expects_an_argument: { code: 6044, category: ts.DiagnosticCategory.Error, key: "Compiler option '{0}' expects an argument." }, Unterminated_quoted_string_in_response_file_0: { code: 6045, category: ts.DiagnosticCategory.Error, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Argument_for_module_option_must_be_commonjs_amd_or_umd: { code: 6046, category: ts.DiagnosticCategory.Error, key: "Argument for '--module' option must be 'commonjs', 'amd', or 'umd'." }, + Argument_for_target_option_must_be_ES3_ES5_or_ES6: { code: 6047, category: ts.DiagnosticCategory.Error, key: "Argument for '--target' option must be 'ES3', 'ES5', or 'ES6'." }, Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: ts.DiagnosticCategory.Error, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, Unsupported_locale_0: { code: 6049, category: ts.DiagnosticCategory.Error, key: "Unsupported locale '{0}'." }, Unable_to_open_file_0: { code: 6050, category: ts.DiagnosticCategory.Error, key: "Unable to open file '{0}'." }, @@ -2478,7 +2490,7 @@ var ts; function isLineBreak(ch) { // ES5 7.3: // The ECMAScript line terminator characters are listed in Table 3. - // Table 3 � Line Terminator Characters + // Table 3: Line Terminator Characters // Code Unit Value Name Formal Name // \u000A Line Feed // \u000D Carriage Return @@ -3766,10 +3778,7 @@ var ts; parent = node; if (symbolKind & 262128 /* IsContainer */) { container = node; - if (lastContainer) { - lastContainer.nextContainer = container; - } - lastContainer = container; + addToContainerChain(container); } if (isBlockScopeContainer) { // in incremental scenarios we might reuse nodes that already have locals being allocated @@ -3785,6 +3794,12 @@ var ts; parent = saveParent; blockScopeContainer = savedBlockScopeContainer; } + function addToContainerChain(node) { + if (lastContainer) { + lastContainer.nextContainer = node; + } + lastContainer = node; + } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { case 205 /* ModuleDeclaration */: @@ -3918,6 +3933,7 @@ var ts; default: if (!blockScopeContainer.locals) { blockScopeContainer.locals = {}; + addToContainerChain(blockScopeContainer); } declareSymbol(blockScopeContainer.locals, undefined, node, symbolKind, symbolExcludes); } @@ -4820,7 +4836,7 @@ var ts; var forStatement = parent_1; return (forStatement.initializer === node && forStatement.initializer.kind !== 199 /* VariableDeclarationList */) || forStatement.condition === node || - forStatement.iterator === node; + forStatement.incrementor === node; case 187 /* ForInStatement */: case 188 /* ForOfStatement */: var forInStatement = parent_1; @@ -6079,7 +6095,7 @@ var ts; case 186 /* ForStatement */: return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || - visitNode(cbNode, node.iterator) || + visitNode(cbNode, node.incrementor) || visitNode(cbNode, node.statement); case 187 /* ForInStatement */: return visitNode(cbNode, node.initializer) || @@ -8953,7 +8969,7 @@ var ts; } parseExpected(22 /* SemicolonToken */); if (token !== 17 /* CloseParenToken */) { - forStatement.iterator = allowInAnd(parseExpression); + forStatement.incrementor = allowInAnd(parseExpression); } parseExpected(17 /* CloseParenToken */); forOrForInOrForOfStatement = forStatement; @@ -10714,11 +10730,10 @@ var ts; var globalESSymbolType; var globalIterableType; var anyArrayType; - var globalTypedPropertyDescriptorType; - var globalClassDecoratorType; - var globalParameterDecoratorType; - var globalPropertyDecoratorType; - var globalMethodDecoratorType; + var getGlobalClassDecoratorType; + var getGlobalParameterDecoratorType; + var getGlobalPropertyDecoratorType; + var getGlobalMethodDecoratorType; var tupleTypes = {}; var unionTypes = {}; var stringLiteralTypes = {}; @@ -12929,31 +12944,11 @@ var ts; } } } - function getDeclaredTypeOfClass(symbol) { - var links = getSymbolLinks(symbol); - if (!links.declaredType) { - var type = links.declaredType = createObjectType(1024 /* Class */, symbol); - var typeParameters = getTypeParametersOfClassOrInterface(symbol); - if (typeParameters) { - type.flags |= 4096 /* Reference */; - type.typeParameters = typeParameters; - type.instantiations = {}; - type.instantiations[getTypeListId(type.typeParameters)] = type; - type.target = type; - type.typeArguments = type.typeParameters; - } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = emptyArray; - type.declaredConstructSignatures = emptyArray; - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); - } - return links.declaredType; - } - function getDeclaredTypeOfInterface(symbol) { + function getDeclaredTypeOfClassOrInterface(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048 /* Interface */, symbol); + var kind = symbol.flags & 32 /* Class */ ? 1024 /* Class */ : 2048 /* Interface */; + var type = links.declaredType = createObjectType(kind, symbol); var typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { type.flags |= 4096 /* Reference */; @@ -12963,11 +12958,6 @@ var ts; type.target = type; type.typeArguments = type.typeParameters; } - type.declaredProperties = getNamedMembers(symbol.members); - type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); - type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); } return links.declaredType; } @@ -13018,11 +13008,8 @@ var ts; } function getDeclaredTypeOfSymbol(symbol) { ts.Debug.assert((symbol.flags & 16777216 /* Instantiated */) === 0); - if (symbol.flags & 32 /* Class */) { - return getDeclaredTypeOfClass(symbol); - } - if (symbol.flags & 64 /* Interface */) { - return getDeclaredTypeOfInterface(symbol); + if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) { + return getDeclaredTypeOfClassOrInterface(symbol); } if (symbol.flags & 524288 /* TypeAlias */) { return getDeclaredTypeOfTypeAlias(symbol); @@ -13070,15 +13057,27 @@ var ts; } } } + function resolveDeclaredMembers(type) { + if (!type.declaredProperties) { + var symbol = type.symbol; + type.declaredProperties = getNamedMembers(symbol.members); + type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); + type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + } + return type; + } function resolveClassOrInterfaceMembers(type) { - var members = type.symbol.members; - var callSignatures = type.declaredCallSignatures; - var constructSignatures = type.declaredConstructSignatures; - var stringIndexType = type.declaredStringIndexType; - var numberIndexType = type.declaredNumberIndexType; - var baseTypes = getBaseTypes(type); + var target = resolveDeclaredMembers(type); + var members = target.symbol.members; + var callSignatures = target.declaredCallSignatures; + var constructSignatures = target.declaredConstructSignatures; + var stringIndexType = target.declaredStringIndexType; + var numberIndexType = target.declaredNumberIndexType; + var baseTypes = getBaseTypes(target); if (baseTypes.length) { - members = createSymbolTable(type.declaredProperties); + members = createSymbolTable(target.declaredProperties); for (var _i = 0; _i < baseTypes.length; _i++) { var baseType = baseTypes[_i]; addInheritedMembers(members, getPropertiesOfObjectType(baseType)); @@ -13091,7 +13090,7 @@ var ts; setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveTypeReferenceMembers(type) { - var target = type.target; + var target = resolveDeclaredMembers(type.target); var mapper = createTypeMapper(target.typeParameters, type.typeArguments); var members = createInstantiatedSymbolTable(target.declaredProperties, mapper); var callSignatures = instantiateList(target.declaredCallSignatures, mapper, instantiateSignature); @@ -13236,7 +13235,7 @@ var ts; callSignatures = getSignaturesOfSymbol(symbol); } if (symbol.flags & 32 /* Class */) { - var classType = getDeclaredTypeOfClass(symbol); + var classType = getDeclaredTypeOfClassOrInterface(symbol); constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); if (!constructSignatures.length) { constructSignatures = getDefaultConstructSignatures(classType); @@ -13343,7 +13342,7 @@ var ts; var type = getApparentType(current); if (type !== unknownType) { var prop = getPropertyOfType(type, name); - if (!prop) { + if (!prop || getDeclarationFlagsFromSymbol(prop) & (32 /* Private */ | 64 /* Protected */)) { return undefined; } if (!props) { @@ -13462,7 +13461,7 @@ var ts; function getSignatureFromDeclaration(declaration) { var links = getNodeLinks(declaration); if (!links.resolvedSignature) { - var classType = declaration.kind === 135 /* Constructor */ ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; + var classType = declaration.kind === 135 /* Constructor */ ? getDeclaredTypeOfClassOrInterface(declaration.parent.symbol) : undefined; var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; @@ -18691,21 +18690,21 @@ var ts; case 201 /* ClassDeclaration */: var classSymbol = getSymbolOfNode(node.parent); var classConstructorType = getTypeOfSymbol(classSymbol); - var classDecoratorType = instantiateSingleCallFunctionType(globalClassDecoratorType, [classConstructorType]); + var classDecoratorType = instantiateSingleCallFunctionType(getGlobalClassDecoratorType(), [classConstructorType]); checkTypeAssignableTo(exprType, classDecoratorType, node); break; case 132 /* PropertyDeclaration */: - checkTypeAssignableTo(exprType, globalPropertyDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalPropertyDecoratorType(), node); break; case 134 /* MethodDeclaration */: case 136 /* GetAccessor */: case 137 /* SetAccessor */: var methodType = getTypeOfNode(node.parent); - var methodDecoratorType = instantiateSingleCallFunctionType(globalMethodDecoratorType, [methodType]); + var methodDecoratorType = instantiateSingleCallFunctionType(getGlobalMethodDecoratorType(), [methodType]); checkTypeAssignableTo(exprType, methodDecoratorType, node); break; case 129 /* Parameter */: - checkTypeAssignableTo(exprType, globalParameterDecoratorType, node); + checkTypeAssignableTo(exprType, getGlobalParameterDecoratorType(), node); break; } } @@ -19178,8 +19177,8 @@ var ts; } if (node.condition) checkExpression(node.condition); - if (node.iterator) - checkExpression(node.iterator); + if (node.incrementor) + checkExpression(node.incrementor); checkSourceElement(node.statement); } function checkForOfStatement(node) { @@ -19860,7 +19859,7 @@ var ts; return true; } var seen = {}; - ts.forEach(type.declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); + ts.forEach(resolveDeclaredMembers(type).declaredProperties, function (p) { seen[p.name] = { prop: p, containingType: type }; }); var ok = true; for (var _i = 0; _i < baseTypes.length; _i++) { var base = baseTypes[_i]; @@ -21520,11 +21519,10 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTypedPropertyDescriptorType = getTypeOfGlobalSymbol(getGlobalTypeSymbol("TypedPropertyDescriptor"), 1); - globalClassDecoratorType = getGlobalType("ClassDecorator"); - globalPropertyDecoratorType = getGlobalType("PropertyDecorator"); - globalMethodDecoratorType = getGlobalType("MethodDecorator"); - globalParameterDecoratorType = getGlobalType("ParameterDecorator"); + getGlobalClassDecoratorType = ts.memoize(function () { return getGlobalType("ClassDecorator"); }); + getGlobalPropertyDecoratorType = ts.memoize(function () { return getGlobalType("PropertyDecorator"); }); + getGlobalMethodDecoratorType = ts.memoize(function () { return getGlobalType("MethodDecorator"); }); + getGlobalParameterDecoratorType = ts.memoize(function () { return getGlobalType("ParameterDecorator"); }); // If we're in ES6 mode, load the TemplateStringsArray. // Otherwise, default to 'unknown' for the purposes of type checking in LS scenarios. if (languageVersion >= 2 /* ES6 */) { @@ -25863,7 +25861,7 @@ var ts; write(";"); emitOptional(" ", node.condition); write(";"); - emitOptional(" ", node.iterator); + emitOptional(" ", node.incrementor); write(")"); emitEmbeddedStatement(node.statement); } @@ -28164,25 +28162,24 @@ var ts; write("}"); } } - function emitAMDModule(node, startIndex) { - collectExternalModuleInfo(node); + function emitAMDDependencies(node, includeNonAmdDependencies) { // An AMD define function has the following shape: // define(id?, dependencies?, factory); // // This has the shape of // define(name, ["module1", "module2"], function (module1Alias) { - // The location of the alias in the parameter list in the factory function needs to + // The location of the alias in the parameter list in the factory function needs to // match the position of the module name in the dependency list. // - // To ensure this is true in cases of modules with no aliases, e.g.: - // `import "module"` or `` + // To ensure this is true in cases of modules with no aliases, e.g.: + // `import "module"` or `` // we need to add modules without alias names to the end of the dependencies list - var aliasedModuleNames = []; // names of modules with corresponding parameter in the + var aliasedModuleNames = []; // names of modules with corresponding parameter in the // factory function. var unaliasedModuleNames = []; // names of modules with no corresponding parameters in // factory function. - var importAliasNames = []; // names of the parameters in the factory function; these - // paramters need to match the indexes of the corresponding + var importAliasNames = []; // names of the parameters in the factory function; these + // parameters need to match the indexes of the corresponding // module names in aliasedModuleNames. // Fill in amd-dependency tags for (var _a = 0, _b = node.amdDependencies; _a < _b.length; _a++) { @@ -28203,7 +28200,7 @@ var ts; if (moduleName.kind === 8 /* StringLiteral */) { externalModuleName = getLiteralText(moduleName); } - // Find the name of the module alais, if there is one + // Find the name of the module alias, if there is one var importAliasName = void 0; var namespaceDeclaration = getNamespaceDeclarationNode(importNode); if (namespaceDeclaration && !isDefaultImport(importNode)) { @@ -28212,7 +28209,7 @@ var ts; else { importAliasName = getGeneratedNameForNode(importNode); } - if (importAliasName) { + if (includeNonAmdDependencies && importAliasName) { aliasedModuleNames.push(externalModuleName); importAliasNames.push(importAliasName); } @@ -28220,11 +28217,6 @@ var ts; unaliasedModuleNames.push(externalModuleName); } } - writeLine(); - write("define("); - if (node.amdModuleName) { - write("\"" + node.amdModuleName + "\", "); - } write("[\"require\", \"exports\""); if (aliasedModuleNames.length) { write(", "); @@ -28239,6 +28231,15 @@ var ts; write(", "); write(importAliasNames.join(", ")); } + } + function emitAMDModule(node, startIndex) { + collectExternalModuleInfo(node); + writeLine(); + write("define("); + if (node.amdModuleName) { + write("\"" + node.amdModuleName + "\", "); + } + emitAMDDependencies(node, true); write(") {"); increaseIndent(); emitExportStarHelper(); @@ -28258,6 +28259,22 @@ var ts; emitTempDeclarations(true); emitExportEquals(false); } + function emitUMDModule(node, startIndex) { + collectExternalModuleInfo(node); + // Module is detected first to support Browserify users that load into a browser with an AMD loader + writeLines("(function (deps, factory) {\n if (typeof module === 'object' && typeof module.exports === 'object') {\n var v = factory(require, exports); if (v !== undefined) module.exports = v;\n }\n else if (typeof define === 'function' && define.amd) {\n define(deps, factory);\n }\n})("); + emitAMDDependencies(node, false); + write(") {"); + increaseIndent(); + emitExportStarHelper(); + emitCaptureThisForNodeIfNecessary(node); + emitLinesStartingAt(node.statements, startIndex); + emitTempDeclarations(true); + emitExportEquals(true); + decreaseIndent(); + writeLine(); + write("});"); + } function emitES6Module(node, startIndex) { externalImports = undefined; exportSpecifiers = undefined; @@ -28334,6 +28351,9 @@ var ts; else if (compilerOptions.module === 2 /* AMD */) { emitAMDModule(node, startIndex); } + else if (compilerOptions.module === 3 /* UMD */) { + emitUMDModule(node, startIndex); + } else { emitCommonJSModule(node, startIndex); } @@ -29192,7 +29212,7 @@ var ts; } // Cannot specify module gen target when in es6 or above if (options.module && languageVersion >= 2 /* ES6 */) { - diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_or_commonjs_when_targeting_es6_or_higher)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_external_modules_into_amd_commonjs_or_umd_when_targeting_ES6_or_higher)); } // there has to be common source directory if user specified --outdir || --sourceRoot // if user specified --mapRoot, there needs to be common source directory if there would be multiple files being emitted @@ -29279,11 +29299,12 @@ var ts; shortName: "m", type: { "commonjs": 1 /* CommonJS */, - "amd": 2 /* AMD */ + "amd": 2 /* AMD */, + "umd": 3 /* UMD */ }, - description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, + description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_amd_or_umd, paramType: ts.Diagnostics.KIND, - error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_or_amd + error: ts.Diagnostics.Argument_for_module_option_must_be_commonjs_amd_or_umd }, { name: "noEmit", @@ -29379,7 +29400,7 @@ var ts; type: { "es3": 0 /* ES3 */, "es5": 1 /* ES5 */, "es6": 2 /* ES6 */ }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, - error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 + error: ts.Diagnostics.Argument_for_target_option_must_be_ES3_ES5_or_ES6 }, { name: "version", @@ -32804,6 +32825,10 @@ var ts; case 169 /* BinaryExpression */: case 170 /* ConditionalExpression */: return true; + // equals in binding elements: function foo([[x, y] = [1, 2]]) + case 152 /* BindingElement */: + // equals in type X = ... + case 203 /* TypeAliasDeclaration */: // equal in import a = module('a'); case 208 /* ImportEqualsDeclaration */: // equal in let a = 0; @@ -32820,8 +32845,6 @@ var ts; // Technically, "of" is not a binary operator, but format it the same way as "in" case 188 /* ForOfStatement */: return context.currentTokenSpan.kind === 125 /* OfKeyword */ || context.nextTokenSpan.kind === 125 /* OfKeyword */; - case 152 /* BindingElement */: - return context.currentTokenSpan.kind === 53 /* EqualsToken */ || context.nextTokenSpan.kind === 53 /* EqualsToken */; } return false; }; @@ -40481,8 +40504,8 @@ var ts; if (forStatement.condition) { return textSpan(forStatement.condition); } - if (forStatement.iterator) { - return textSpan(forStatement.iterator); + if (forStatement.incrementor) { + return textSpan(forStatement.incrementor); } } // Tokens: From 1c40032579d4c1ddbf28259fd3a97fd52ba27bed Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Thu, 23 Apr 2015 15:36:07 -0700 Subject: [PATCH 2/3] Fixes his in decorator helpers --- src/compiler/emitter.ts | 8 +- .../classExpressionWithDecorator1.js | 2 +- .../decoratedClassFromExternalModule.js | 2 +- .../baselines/reference/decoratorOnClass1.js | 2 +- .../baselines/reference/decoratorOnClass2.js | 2 +- .../baselines/reference/decoratorOnClass3.js | 2 +- .../baselines/reference/decoratorOnClass4.js | 2 +- .../baselines/reference/decoratorOnClass5.js | 2 +- .../baselines/reference/decoratorOnClass8.js | 2 +- .../reference/decoratorOnClassAccessor1.js | 2 +- .../reference/decoratorOnClassAccessor2.js | 2 +- .../reference/decoratorOnClassAccessor3.js | 2 +- .../reference/decoratorOnClassAccessor4.js | 2 +- .../reference/decoratorOnClassAccessor5.js | 2 +- .../reference/decoratorOnClassAccessor6.js | 2 +- .../decoratorOnClassConstructorParameter1.js | 6 +- .../decoratorOnClassConstructorParameter4.js | 6 +- .../reference/decoratorOnClassMethod1.js | 2 +- .../reference/decoratorOnClassMethod10.js | 2 +- .../reference/decoratorOnClassMethod11.js | 2 +- .../reference/decoratorOnClassMethod12.js | 2 +- .../reference/decoratorOnClassMethod13.js | 2 +- .../reference/decoratorOnClassMethod2.js | 2 +- .../reference/decoratorOnClassMethod3.js | 2 +- .../reference/decoratorOnClassMethod4.js | 2 +- .../reference/decoratorOnClassMethod5.js | 2 +- .../reference/decoratorOnClassMethod6.js | 2 +- .../reference/decoratorOnClassMethod7.js | 2 +- .../reference/decoratorOnClassMethod8.js | 2 +- .../decoratorOnClassMethodParameter1.js | 6 +- .../reference/decoratorOnClassProperty1.js | 2 +- .../reference/decoratorOnClassProperty10.js | 2 +- .../reference/decoratorOnClassProperty11.js | 2 +- .../reference/decoratorOnClassProperty2.js | 2 +- .../reference/decoratorOnClassProperty3.js | 2 +- .../reference/decoratorOnClassProperty6.js | 2 +- .../reference/decoratorOnClassProperty7.js | 2 +- .../reference/missingDecoratorType.js | 2 +- .../sourceMapValidationDecorators.js | 6 +- .../sourceMapValidationDecorators.js.map | 2 +- ...ourceMapValidationDecorators.sourcemap.txt | 408 +++++++++--------- 41 files changed, 261 insertions(+), 249 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index eb116e924ddb8..4c958de557749 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -34,7 +34,7 @@ var __extends = this.__extends || function (d, b) { // emit output for the __decorate helper function const decorateHelper = ` -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); @@ -45,13 +45,15 @@ var __decorate = this.__decorate || function (decorators, target, key, desc) { // emit output for the __metadata helper function const metadataHelper = ` -var __metadata = this.__metadata || function (k, v) { +if (typeof __metadata !== "function") __metadata = function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); };`; // emit output for the __param helper function const paramHelper = ` -var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } };`; +if (typeof __param !== "function") __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +};`; let compilerOptions = host.getCompilerOptions(); let languageVersion = compilerOptions.target || ScriptTarget.ES3; diff --git a/tests/baselines/reference/classExpressionWithDecorator1.js b/tests/baselines/reference/classExpressionWithDecorator1.js index 964a92bb27717..754d6199115aa 100644 --- a/tests/baselines/reference/classExpressionWithDecorator1.js +++ b/tests/baselines/reference/classExpressionWithDecorator1.js @@ -2,7 +2,7 @@ var v = @decorate class C { static p = 1 }; //// [classExpressionWithDecorator1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratedClassFromExternalModule.js b/tests/baselines/reference/decoratedClassFromExternalModule.js index 62c03937a50e0..da31e7c2f9250 100644 --- a/tests/baselines/reference/decoratedClassFromExternalModule.js +++ b/tests/baselines/reference/decoratedClassFromExternalModule.js @@ -10,7 +10,7 @@ export default class Decorated { } import Decorated from 'decorated'; //// [decorated.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClass1.js b/tests/baselines/reference/decoratorOnClass1.js index 679561e2b2fc6..49b2b27ac8b8b 100644 --- a/tests/baselines/reference/decoratorOnClass1.js +++ b/tests/baselines/reference/decoratorOnClass1.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClass1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClass2.js b/tests/baselines/reference/decoratorOnClass2.js index 43a67745ae8a6..71ac235855506 100644 --- a/tests/baselines/reference/decoratorOnClass2.js +++ b/tests/baselines/reference/decoratorOnClass2.js @@ -6,7 +6,7 @@ export class C { } //// [decoratorOnClass2.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClass3.js b/tests/baselines/reference/decoratorOnClass3.js index 05e01f7c382c2..37da704361568 100644 --- a/tests/baselines/reference/decoratorOnClass3.js +++ b/tests/baselines/reference/decoratorOnClass3.js @@ -7,7 +7,7 @@ class C { } //// [decoratorOnClass3.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClass4.js b/tests/baselines/reference/decoratorOnClass4.js index 747a68a790ea9..e56e427b797d1 100644 --- a/tests/baselines/reference/decoratorOnClass4.js +++ b/tests/baselines/reference/decoratorOnClass4.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClass4.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClass5.js b/tests/baselines/reference/decoratorOnClass5.js index 5c7799937d6f3..b415fcf8f9a4f 100644 --- a/tests/baselines/reference/decoratorOnClass5.js +++ b/tests/baselines/reference/decoratorOnClass5.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClass5.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClass8.js b/tests/baselines/reference/decoratorOnClass8.js index 86c52b50b44ea..500cdcf45114c 100644 --- a/tests/baselines/reference/decoratorOnClass8.js +++ b/tests/baselines/reference/decoratorOnClass8.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClass8.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.js b/tests/baselines/reference/decoratorOnClassAccessor1.js index 5143f7daceb87..2e0f3520b4342 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor1.js +++ b/tests/baselines/reference/decoratorOnClassAccessor1.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassAccessor1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.js b/tests/baselines/reference/decoratorOnClassAccessor2.js index fc5da177eaa5f..a339c3b1663c7 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor2.js +++ b/tests/baselines/reference/decoratorOnClassAccessor2.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassAccessor2.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassAccessor3.js b/tests/baselines/reference/decoratorOnClassAccessor3.js index 08032785683be..843a1113255a9 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor3.js +++ b/tests/baselines/reference/decoratorOnClassAccessor3.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassAccessor3.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.js b/tests/baselines/reference/decoratorOnClassAccessor4.js index f43ad96771b24..416472ba5ff41 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor4.js +++ b/tests/baselines/reference/decoratorOnClassAccessor4.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassAccessor4.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.js b/tests/baselines/reference/decoratorOnClassAccessor5.js index 781585eb4d457..ba4e20955e93f 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor5.js +++ b/tests/baselines/reference/decoratorOnClassAccessor5.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassAccessor5.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassAccessor6.js b/tests/baselines/reference/decoratorOnClassAccessor6.js index 74feb09088bf6..05f0651e1e547 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor6.js +++ b/tests/baselines/reference/decoratorOnClassAccessor6.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassAccessor6.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter1.js b/tests/baselines/reference/decoratorOnClassConstructorParameter1.js index efd290b0668ab..aa477bcdaef3e 100644 --- a/tests/baselines/reference/decoratorOnClassConstructorParameter1.js +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter1.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassConstructorParameter1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); @@ -14,7 +14,9 @@ var __decorate = this.__decorate || function (decorators, target, key, desc) { case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } }; -var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; +if (typeof __param !== "function") __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; var C = (function () { function C(p) { } diff --git a/tests/baselines/reference/decoratorOnClassConstructorParameter4.js b/tests/baselines/reference/decoratorOnClassConstructorParameter4.js index c1869d6050b99..7b7f418ed02b6 100644 --- a/tests/baselines/reference/decoratorOnClassConstructorParameter4.js +++ b/tests/baselines/reference/decoratorOnClassConstructorParameter4.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassConstructorParameter4.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); @@ -14,7 +14,9 @@ var __decorate = this.__decorate || function (decorators, target, key, desc) { case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } }; -var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; +if (typeof __param !== "function") __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; var C = (function () { function C(public, p) { } diff --git a/tests/baselines/reference/decoratorOnClassMethod1.js b/tests/baselines/reference/decoratorOnClassMethod1.js index b13928ab75eef..c2f64cb063965 100644 --- a/tests/baselines/reference/decoratorOnClassMethod1.js +++ b/tests/baselines/reference/decoratorOnClassMethod1.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod10.js b/tests/baselines/reference/decoratorOnClassMethod10.js index 5faf5f5adfd5d..ad934eb6d0876 100644 --- a/tests/baselines/reference/decoratorOnClassMethod10.js +++ b/tests/baselines/reference/decoratorOnClassMethod10.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod10.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod11.js b/tests/baselines/reference/decoratorOnClassMethod11.js index 2250eef2d88ec..b55cdf81b2470 100644 --- a/tests/baselines/reference/decoratorOnClassMethod11.js +++ b/tests/baselines/reference/decoratorOnClassMethod11.js @@ -9,7 +9,7 @@ module M { } //// [decoratorOnClassMethod11.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod12.js b/tests/baselines/reference/decoratorOnClassMethod12.js index 36874663abd78..4c2c19bd6a562 100644 --- a/tests/baselines/reference/decoratorOnClassMethod12.js +++ b/tests/baselines/reference/decoratorOnClassMethod12.js @@ -16,7 +16,7 @@ var __extends = this.__extends || function (d, b) { __.prototype = b.prototype; d.prototype = new __(); }; -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod13.js b/tests/baselines/reference/decoratorOnClassMethod13.js index 36dfcf750c046..be6d7449ee490 100644 --- a/tests/baselines/reference/decoratorOnClassMethod13.js +++ b/tests/baselines/reference/decoratorOnClassMethod13.js @@ -7,7 +7,7 @@ class C { } //// [decoratorOnClassMethod13.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod2.js b/tests/baselines/reference/decoratorOnClassMethod2.js index 7089c4701e421..7500cebc12dfb 100644 --- a/tests/baselines/reference/decoratorOnClassMethod2.js +++ b/tests/baselines/reference/decoratorOnClassMethod2.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod2.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod3.js b/tests/baselines/reference/decoratorOnClassMethod3.js index 6c09a14c1a3af..54b2ae20d874d 100644 --- a/tests/baselines/reference/decoratorOnClassMethod3.js +++ b/tests/baselines/reference/decoratorOnClassMethod3.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod3.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod4.js b/tests/baselines/reference/decoratorOnClassMethod4.js index 1e5f03a0ad435..7ce4596fc170c 100644 --- a/tests/baselines/reference/decoratorOnClassMethod4.js +++ b/tests/baselines/reference/decoratorOnClassMethod4.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod4.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod5.js b/tests/baselines/reference/decoratorOnClassMethod5.js index fd6520f99dad2..9f768816b4750 100644 --- a/tests/baselines/reference/decoratorOnClassMethod5.js +++ b/tests/baselines/reference/decoratorOnClassMethod5.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod5.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod6.js b/tests/baselines/reference/decoratorOnClassMethod6.js index b99cacd6ca02f..064992b1c7a42 100644 --- a/tests/baselines/reference/decoratorOnClassMethod6.js +++ b/tests/baselines/reference/decoratorOnClassMethod6.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod6.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod7.js b/tests/baselines/reference/decoratorOnClassMethod7.js index e86480e989535..8635fe25b6a38 100644 --- a/tests/baselines/reference/decoratorOnClassMethod7.js +++ b/tests/baselines/reference/decoratorOnClassMethod7.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod7.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethod8.js b/tests/baselines/reference/decoratorOnClassMethod8.js index c9048ce30f3e0..e63de6d4db36e 100644 --- a/tests/baselines/reference/decoratorOnClassMethod8.js +++ b/tests/baselines/reference/decoratorOnClassMethod8.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethod8.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassMethodParameter1.js b/tests/baselines/reference/decoratorOnClassMethodParameter1.js index 3d62dfe3d96ef..a81cdaa19c89d 100644 --- a/tests/baselines/reference/decoratorOnClassMethodParameter1.js +++ b/tests/baselines/reference/decoratorOnClassMethodParameter1.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassMethodParameter1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); @@ -14,7 +14,9 @@ var __decorate = this.__decorate || function (decorators, target, key, desc) { case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } }; -var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; +if (typeof __param !== "function") __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; var C = (function () { function C() { } diff --git a/tests/baselines/reference/decoratorOnClassProperty1.js b/tests/baselines/reference/decoratorOnClassProperty1.js index 45307cfc57ef3..23e5eec1cc06f 100644 --- a/tests/baselines/reference/decoratorOnClassProperty1.js +++ b/tests/baselines/reference/decoratorOnClassProperty1.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty1.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassProperty10.js b/tests/baselines/reference/decoratorOnClassProperty10.js index 1479d2033c9c1..b3848e73d5720 100644 --- a/tests/baselines/reference/decoratorOnClassProperty10.js +++ b/tests/baselines/reference/decoratorOnClassProperty10.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty10.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassProperty11.js b/tests/baselines/reference/decoratorOnClassProperty11.js index e86c112f4368b..72ad6f276dea9 100644 --- a/tests/baselines/reference/decoratorOnClassProperty11.js +++ b/tests/baselines/reference/decoratorOnClassProperty11.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty11.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassProperty2.js b/tests/baselines/reference/decoratorOnClassProperty2.js index fed6e57116e6b..72fb1bcb33102 100644 --- a/tests/baselines/reference/decoratorOnClassProperty2.js +++ b/tests/baselines/reference/decoratorOnClassProperty2.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty2.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassProperty3.js b/tests/baselines/reference/decoratorOnClassProperty3.js index 0b81416b3fdfe..af72503b9142d 100644 --- a/tests/baselines/reference/decoratorOnClassProperty3.js +++ b/tests/baselines/reference/decoratorOnClassProperty3.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty3.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassProperty6.js b/tests/baselines/reference/decoratorOnClassProperty6.js index 740ad346aa3e5..a8621e253e8b5 100644 --- a/tests/baselines/reference/decoratorOnClassProperty6.js +++ b/tests/baselines/reference/decoratorOnClassProperty6.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty6.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/decoratorOnClassProperty7.js b/tests/baselines/reference/decoratorOnClassProperty7.js index 1b34d5dac07c1..6c7b329223566 100644 --- a/tests/baselines/reference/decoratorOnClassProperty7.js +++ b/tests/baselines/reference/decoratorOnClassProperty7.js @@ -6,7 +6,7 @@ class C { } //// [decoratorOnClassProperty7.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/missingDecoratorType.js b/tests/baselines/reference/missingDecoratorType.js index e2073b133e5aa..974c884ecd1a9 100644 --- a/tests/baselines/reference/missingDecoratorType.js +++ b/tests/baselines/reference/missingDecoratorType.js @@ -22,7 +22,7 @@ class C { //// [a.js] //// [b.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); diff --git a/tests/baselines/reference/sourceMapValidationDecorators.js b/tests/baselines/reference/sourceMapValidationDecorators.js index d5a63997ea793..fc4417c2f4510 100644 --- a/tests/baselines/reference/sourceMapValidationDecorators.js +++ b/tests/baselines/reference/sourceMapValidationDecorators.js @@ -55,7 +55,7 @@ class Greeter { } //// [sourceMapValidationDecorators.js] -var __decorate = this.__decorate || function (decorators, target, key, desc) { +if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); switch (arguments.length) { case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); @@ -63,7 +63,9 @@ var __decorate = this.__decorate || function (decorators, target, key, desc) { case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); } }; -var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; +if (typeof __param !== "function") __param = function (paramIndex, decorator) { + return function (target, key) { decorator(target, key, paramIndex); } +}; var Greeter = (function () { function Greeter(greeting) { var b = []; diff --git a/tests/baselines/reference/sourceMapValidationDecorators.js.map b/tests/baselines/reference/sourceMapValidationDecorators.js.map index d0e2944166102..4cbb79f727ddd 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;;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 +{"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 cde460386693f..b5749e50fa167 100644 --- a/tests/baselines/reference/sourceMapValidationDecorators.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationDecorators.sourcemap.txt @@ -8,7 +8,7 @@ sources: sourceMapValidationDecorators.ts emittedFile:tests/cases/compiler/sourceMapValidationDecorators.js sourceFile:sourceMapValidationDecorators.ts ------------------------------------------------------------------- ->>>var __decorate = this.__decorate || function (decorators, target, key, desc) { +>>>if (typeof __decorate !== "function") __decorate = function (decorators, target, key, desc) { >>> if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); >>> switch (arguments.length) { >>> case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); @@ -16,7 +16,9 @@ sourceFile:sourceMapValidationDecorators.ts >>> case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); >>> } >>>}; ->>>var __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } }; +>>>if (typeof __param !== "function") __param = function (paramIndex, decorator) { +>>> return function (target, key) { decorator(target, key, paramIndex); } +>>>}; >>>var Greeter = (function () { 1 > 2 >^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> @@ -28,7 +30,7 @@ sourceFile:sourceMapValidationDecorators.ts >declare function ParameterDecorator2(x: number): (target: Function, key: string | symbol, paramIndex: number) => void; > > -1 >Emitted(10, 1) Source(8, 1) + SourceIndex(0) +1 >Emitted(12, 1) Source(8, 1) + SourceIndex(0) --- >>> function Greeter(greeting) { 1->^^^^ @@ -43,9 +45,9 @@ sourceFile:sourceMapValidationDecorators.ts > @ParameterDecorator2(20) > public 3 > greeting: string -1->Emitted(11, 5) Source(11, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(11, 22) Source(14, 14) + SourceIndex(0) name (Greeter) -3 >Emitted(11, 30) Source(14, 30) + SourceIndex(0) name (Greeter) +1->Emitted(13, 5) Source(11, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(13, 22) Source(14, 14) + SourceIndex(0) name (Greeter) +3 >Emitted(13, 30) Source(14, 30) + SourceIndex(0) name (Greeter) --- >>> var b = []; 1 >^^^^^^^^ @@ -57,8 +59,8 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ParameterDecorator1 > @ParameterDecorator2(30) > ...b: string[] -1 >Emitted(12, 9) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(12, 20) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(14, 9) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(14, 20) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) --- >>> for (var _i = 1; _i < arguments.length; _i++) { 1->^^^^^^^^^^^^^ @@ -79,12 +81,12 @@ sourceFile:sourceMapValidationDecorators.ts 6 > @ParameterDecorator1 > @ParameterDecorator2(30) > ...b: string[] -1->Emitted(13, 14) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(13, 25) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) -3 >Emitted(13, 26) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -4 >Emitted(13, 48) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) -5 >Emitted(13, 49) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -6 >Emitted(13, 53) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +1->Emitted(15, 14) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(15, 25) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +3 >Emitted(15, 26) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +4 >Emitted(15, 48) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +5 >Emitted(15, 49) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +6 >Emitted(15, 53) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) --- >>> b[_i - 1] = arguments[_i]; 1 >^^^^^^^^^^^^ @@ -93,8 +95,8 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ParameterDecorator1 > @ParameterDecorator2(30) > ...b: string[] -1 >Emitted(14, 13) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(14, 39) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(16, 13) Source(16, 7) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(16, 39) Source(18, 21) + SourceIndex(0) name (Greeter.constructor) --- >>> } >>> this.greeting = greeting; @@ -108,11 +110,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > 4 > greeting 5 > : string -1 >Emitted(16, 9) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(16, 22) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) -3 >Emitted(16, 25) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) -4 >Emitted(16, 33) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) -5 >Emitted(16, 34) Source(14, 30) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(18, 9) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(18, 22) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) +3 >Emitted(18, 25) Source(14, 14) + SourceIndex(0) name (Greeter.constructor) +4 >Emitted(18, 33) Source(14, 22) + SourceIndex(0) name (Greeter.constructor) +5 >Emitted(18, 34) Source(14, 30) + SourceIndex(0) name (Greeter.constructor) --- >>> } 1 >^^^^ @@ -125,8 +127,8 @@ sourceFile:sourceMapValidationDecorators.ts > ...b: string[]) { > 2 > } -1 >Emitted(17, 5) Source(19, 5) + SourceIndex(0) name (Greeter.constructor) -2 >Emitted(17, 6) Source(19, 6) + SourceIndex(0) name (Greeter.constructor) +1 >Emitted(19, 5) Source(19, 5) + SourceIndex(0) name (Greeter.constructor) +2 >Emitted(19, 6) Source(19, 6) + SourceIndex(0) name (Greeter.constructor) --- >>> Greeter.prototype.greet = function () { 1->^^^^ @@ -140,9 +142,9 @@ sourceFile:sourceMapValidationDecorators.ts > 2 > greet 3 > -1->Emitted(18, 5) Source(23, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(18, 28) Source(23, 10) + SourceIndex(0) name (Greeter) -3 >Emitted(18, 31) Source(21, 5) + SourceIndex(0) name (Greeter) +1->Emitted(20, 5) Source(23, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(20, 28) Source(23, 10) + SourceIndex(0) name (Greeter) +3 >Emitted(20, 31) Source(21, 5) + SourceIndex(0) name (Greeter) --- >>> return "

" + this.greeting + "

"; 1->^^^^^^^^ @@ -170,17 +172,17 @@ sourceFile:sourceMapValidationDecorators.ts 9 > + 10> "" 11> ; -1->Emitted(19, 9) Source(24, 9) + SourceIndex(0) name (Greeter.greet) -2 >Emitted(19, 15) Source(24, 15) + SourceIndex(0) name (Greeter.greet) -3 >Emitted(19, 16) Source(24, 16) + SourceIndex(0) name (Greeter.greet) -4 >Emitted(19, 22) Source(24, 22) + SourceIndex(0) name (Greeter.greet) -5 >Emitted(19, 25) Source(24, 25) + SourceIndex(0) name (Greeter.greet) -6 >Emitted(19, 29) Source(24, 29) + SourceIndex(0) name (Greeter.greet) -7 >Emitted(19, 30) Source(24, 30) + SourceIndex(0) name (Greeter.greet) -8 >Emitted(19, 38) Source(24, 38) + SourceIndex(0) name (Greeter.greet) -9 >Emitted(19, 41) Source(24, 41) + SourceIndex(0) name (Greeter.greet) -10>Emitted(19, 48) Source(24, 48) + SourceIndex(0) name (Greeter.greet) -11>Emitted(19, 49) Source(24, 49) + SourceIndex(0) name (Greeter.greet) +1->Emitted(21, 9) Source(24, 9) + SourceIndex(0) name (Greeter.greet) +2 >Emitted(21, 15) Source(24, 15) + SourceIndex(0) name (Greeter.greet) +3 >Emitted(21, 16) Source(24, 16) + SourceIndex(0) name (Greeter.greet) +4 >Emitted(21, 22) Source(24, 22) + SourceIndex(0) name (Greeter.greet) +5 >Emitted(21, 25) Source(24, 25) + SourceIndex(0) name (Greeter.greet) +6 >Emitted(21, 29) Source(24, 29) + SourceIndex(0) name (Greeter.greet) +7 >Emitted(21, 30) Source(24, 30) + SourceIndex(0) name (Greeter.greet) +8 >Emitted(21, 38) Source(24, 38) + SourceIndex(0) name (Greeter.greet) +9 >Emitted(21, 41) Source(24, 41) + SourceIndex(0) name (Greeter.greet) +10>Emitted(21, 48) Source(24, 48) + SourceIndex(0) name (Greeter.greet) +11>Emitted(21, 49) Source(24, 49) + SourceIndex(0) name (Greeter.greet) --- >>> }; 1 >^^^^ @@ -189,8 +191,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(20, 5) Source(25, 5) + SourceIndex(0) name (Greeter.greet) -2 >Emitted(20, 6) Source(25, 6) + SourceIndex(0) name (Greeter.greet) +1 >Emitted(22, 5) Source(25, 5) + SourceIndex(0) name (Greeter.greet) +2 >Emitted(22, 6) Source(25, 6) + SourceIndex(0) name (Greeter.greet) --- >>> Greeter.prototype.fn = function (x) { 1->^^^^ @@ -216,11 +218,11 @@ sourceFile:sourceMapValidationDecorators.ts > @ParameterDecorator2(70) > 5 > x: number -1->Emitted(21, 5) Source(35, 13) + SourceIndex(0) name (Greeter) -2 >Emitted(21, 25) Source(35, 15) + SourceIndex(0) name (Greeter) -3 >Emitted(21, 28) Source(35, 5) + SourceIndex(0) name (Greeter) -4 >Emitted(21, 38) Source(38, 7) + SourceIndex(0) name (Greeter) -5 >Emitted(21, 39) Source(38, 16) + SourceIndex(0) name (Greeter) +1->Emitted(23, 5) Source(35, 13) + SourceIndex(0) name (Greeter) +2 >Emitted(23, 25) Source(35, 15) + SourceIndex(0) name (Greeter) +3 >Emitted(23, 28) Source(35, 5) + SourceIndex(0) name (Greeter) +4 >Emitted(23, 38) Source(38, 7) + SourceIndex(0) name (Greeter) +5 >Emitted(23, 39) Source(38, 16) + SourceIndex(0) name (Greeter) --- >>> return this.greeting; 1 >^^^^^^^^ @@ -238,13 +240,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > . 6 > greeting 7 > ; -1 >Emitted(22, 9) Source(39, 9) + SourceIndex(0) name (Greeter.fn) -2 >Emitted(22, 15) Source(39, 15) + SourceIndex(0) name (Greeter.fn) -3 >Emitted(22, 16) Source(39, 16) + SourceIndex(0) name (Greeter.fn) -4 >Emitted(22, 20) Source(39, 20) + SourceIndex(0) name (Greeter.fn) -5 >Emitted(22, 21) Source(39, 21) + SourceIndex(0) name (Greeter.fn) -6 >Emitted(22, 29) Source(39, 29) + SourceIndex(0) name (Greeter.fn) -7 >Emitted(22, 30) Source(39, 30) + SourceIndex(0) name (Greeter.fn) +1 >Emitted(24, 9) Source(39, 9) + SourceIndex(0) name (Greeter.fn) +2 >Emitted(24, 15) Source(39, 15) + SourceIndex(0) name (Greeter.fn) +3 >Emitted(24, 16) Source(39, 16) + SourceIndex(0) name (Greeter.fn) +4 >Emitted(24, 20) Source(39, 20) + SourceIndex(0) name (Greeter.fn) +5 >Emitted(24, 21) Source(39, 21) + SourceIndex(0) name (Greeter.fn) +6 >Emitted(24, 29) Source(39, 29) + SourceIndex(0) name (Greeter.fn) +7 >Emitted(24, 30) Source(39, 30) + SourceIndex(0) name (Greeter.fn) --- >>> }; 1 >^^^^ @@ -253,8 +255,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(23, 5) Source(40, 5) + SourceIndex(0) name (Greeter.fn) -2 >Emitted(23, 6) Source(40, 6) + SourceIndex(0) name (Greeter.fn) +1 >Emitted(25, 5) Source(40, 5) + SourceIndex(0) name (Greeter.fn) +2 >Emitted(25, 6) Source(40, 6) + SourceIndex(0) name (Greeter.fn) --- >>> Object.defineProperty(Greeter.prototype, "greetings", { 1->^^^^ @@ -267,15 +269,15 @@ sourceFile:sourceMapValidationDecorators.ts > @PropertyDecorator2(80) > get 3 > greetings -1->Emitted(24, 5) Source(42, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(24, 27) Source(44, 9) + SourceIndex(0) name (Greeter) -3 >Emitted(24, 57) Source(44, 18) + SourceIndex(0) name (Greeter) +1->Emitted(26, 5) Source(42, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(26, 27) Source(44, 9) + SourceIndex(0) name (Greeter) +3 >Emitted(26, 57) Source(44, 18) + SourceIndex(0) name (Greeter) --- >>> get: function () { 1 >^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^-> 1 > -1 >Emitted(25, 14) Source(42, 5) + SourceIndex(0) name (Greeter) +1 >Emitted(27, 14) Source(42, 5) + SourceIndex(0) name (Greeter) --- >>> return this.greeting; 1->^^^^^^^^^^^^ @@ -295,13 +297,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > . 6 > greeting 7 > ; -1->Emitted(26, 13) Source(45, 9) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(26, 19) Source(45, 15) + SourceIndex(0) name (Greeter.greetings) -3 >Emitted(26, 20) Source(45, 16) + SourceIndex(0) name (Greeter.greetings) -4 >Emitted(26, 24) Source(45, 20) + SourceIndex(0) name (Greeter.greetings) -5 >Emitted(26, 25) Source(45, 21) + SourceIndex(0) name (Greeter.greetings) -6 >Emitted(26, 33) Source(45, 29) + SourceIndex(0) name (Greeter.greetings) -7 >Emitted(26, 34) Source(45, 30) + SourceIndex(0) name (Greeter.greetings) +1->Emitted(28, 13) Source(45, 9) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(28, 19) Source(45, 15) + SourceIndex(0) name (Greeter.greetings) +3 >Emitted(28, 20) Source(45, 16) + SourceIndex(0) name (Greeter.greetings) +4 >Emitted(28, 24) Source(45, 20) + SourceIndex(0) name (Greeter.greetings) +5 >Emitted(28, 25) Source(45, 21) + SourceIndex(0) name (Greeter.greetings) +6 >Emitted(28, 33) Source(45, 29) + SourceIndex(0) name (Greeter.greetings) +7 >Emitted(28, 34) Source(45, 30) + SourceIndex(0) name (Greeter.greetings) --- >>> }, 1 >^^^^^^^^ @@ -310,8 +312,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(27, 9) Source(46, 5) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(27, 10) Source(46, 6) + SourceIndex(0) name (Greeter.greetings) +1 >Emitted(29, 9) Source(46, 5) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(29, 10) Source(46, 6) + SourceIndex(0) name (Greeter.greetings) --- >>> set: function (greetings) { 1->^^^^^^^^^^^^^ @@ -326,9 +328,9 @@ sourceFile:sourceMapValidationDecorators.ts > @ParameterDecorator2(90) > 3 > greetings: string -1->Emitted(28, 14) Source(48, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(28, 24) Source(51, 7) + SourceIndex(0) name (Greeter) -3 >Emitted(28, 33) Source(51, 24) + SourceIndex(0) name (Greeter) +1->Emitted(30, 14) Source(48, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(30, 24) Source(51, 7) + SourceIndex(0) name (Greeter) +3 >Emitted(30, 33) Source(51, 24) + SourceIndex(0) name (Greeter) --- >>> this.greeting = greetings; 1->^^^^^^^^^^^^ @@ -346,13 +348,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > = 6 > greetings 7 > ; -1->Emitted(29, 13) Source(52, 9) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(29, 17) Source(52, 13) + SourceIndex(0) name (Greeter.greetings) -3 >Emitted(29, 18) Source(52, 14) + SourceIndex(0) name (Greeter.greetings) -4 >Emitted(29, 26) Source(52, 22) + SourceIndex(0) name (Greeter.greetings) -5 >Emitted(29, 29) Source(52, 25) + SourceIndex(0) name (Greeter.greetings) -6 >Emitted(29, 38) Source(52, 34) + SourceIndex(0) name (Greeter.greetings) -7 >Emitted(29, 39) Source(52, 35) + SourceIndex(0) name (Greeter.greetings) +1->Emitted(31, 13) Source(52, 9) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(31, 17) Source(52, 13) + SourceIndex(0) name (Greeter.greetings) +3 >Emitted(31, 18) Source(52, 14) + SourceIndex(0) name (Greeter.greetings) +4 >Emitted(31, 26) Source(52, 22) + SourceIndex(0) name (Greeter.greetings) +5 >Emitted(31, 29) Source(52, 25) + SourceIndex(0) name (Greeter.greetings) +6 >Emitted(31, 38) Source(52, 34) + SourceIndex(0) name (Greeter.greetings) +7 >Emitted(31, 39) Source(52, 35) + SourceIndex(0) name (Greeter.greetings) --- >>> }, 1 >^^^^^^^^ @@ -361,8 +363,8 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > 2 > } -1 >Emitted(30, 9) Source(53, 5) + SourceIndex(0) name (Greeter.greetings) -2 >Emitted(30, 10) Source(53, 6) + SourceIndex(0) name (Greeter.greetings) +1 >Emitted(32, 9) Source(53, 5) + SourceIndex(0) name (Greeter.greetings) +2 >Emitted(32, 10) Source(53, 6) + SourceIndex(0) name (Greeter.greetings) --- >>> enumerable: true, >>> configurable: true @@ -370,7 +372,7 @@ sourceFile:sourceMapValidationDecorators.ts 1->^^^^^^^ 2 > ^^^^^^^^^^^^^^-> 1-> -1->Emitted(33, 8) Source(46, 6) + SourceIndex(0) name (Greeter) +1->Emitted(35, 8) Source(46, 6) + SourceIndex(0) name (Greeter) --- >>> Greeter.x1 = 10; 1->^^^^ @@ -384,11 +386,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > : number = 4 > 10 5 > ; -1->Emitted(34, 5) Source(33, 20) + SourceIndex(0) name (Greeter) -2 >Emitted(34, 15) Source(33, 22) + SourceIndex(0) name (Greeter) -3 >Emitted(34, 18) Source(33, 33) + SourceIndex(0) name (Greeter) -4 >Emitted(34, 20) Source(33, 35) + SourceIndex(0) name (Greeter) -5 >Emitted(34, 21) Source(33, 36) + SourceIndex(0) name (Greeter) +1->Emitted(36, 5) Source(33, 20) + SourceIndex(0) name (Greeter) +2 >Emitted(36, 15) Source(33, 22) + SourceIndex(0) name (Greeter) +3 >Emitted(36, 18) Source(33, 33) + SourceIndex(0) name (Greeter) +4 >Emitted(36, 20) Source(33, 35) + SourceIndex(0) name (Greeter) +5 >Emitted(36, 21) Source(33, 36) + SourceIndex(0) name (Greeter) --- >>> Object.defineProperty(Greeter.prototype, "greet", 1->^^^^ @@ -399,9 +401,9 @@ sourceFile:sourceMapValidationDecorators.ts > @PropertyDecorator2(40) > 3 > greet -1->Emitted(35, 5) Source(21, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(35, 27) Source(23, 5) + SourceIndex(0) name (Greeter) -3 >Emitted(35, 53) Source(23, 10) + SourceIndex(0) name (Greeter) +1->Emitted(37, 5) Source(21, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(37, 27) Source(23, 5) + SourceIndex(0) name (Greeter) +3 >Emitted(37, 53) Source(23, 10) + SourceIndex(0) name (Greeter) --- >>> __decorate([ >>> PropertyDecorator1, @@ -410,8 +412,8 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ^^^^^-> 1 > 2 > PropertyDecorator1 -1 >Emitted(37, 13) Source(21, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(37, 31) Source(21, 24) + SourceIndex(0) name (Greeter) +1 >Emitted(39, 13) Source(21, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(39, 31) Source(21, 24) + SourceIndex(0) name (Greeter) --- >>> PropertyDecorator2(40) 1->^^^^^^^^^^^^ @@ -426,11 +428,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ( 4 > 40 5 > ) -1->Emitted(38, 13) Source(22, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(38, 31) Source(22, 24) + SourceIndex(0) name (Greeter) -3 >Emitted(38, 32) Source(22, 25) + SourceIndex(0) name (Greeter) -4 >Emitted(38, 34) Source(22, 27) + SourceIndex(0) name (Greeter) -5 >Emitted(38, 35) Source(22, 28) + SourceIndex(0) name (Greeter) +1->Emitted(40, 13) Source(22, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(40, 31) Source(22, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(40, 32) Source(22, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(40, 34) Source(22, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(40, 35) Source(22, 28) + SourceIndex(0) name (Greeter) --- >>> ], Greeter.prototype, "greet", Object.getOwnPropertyDescriptor(Greeter.prototype, "greet"))); 1->^^^^^^^^^^^ @@ -446,11 +448,11 @@ sourceFile:sourceMapValidationDecorators.ts 5 > () { > return "

" + this.greeting + "

"; > } -1->Emitted(39, 12) Source(23, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(39, 38) Source(23, 10) + SourceIndex(0) name (Greeter) -3 >Emitted(39, 72) Source(23, 5) + SourceIndex(0) name (Greeter) -4 >Emitted(39, 98) Source(23, 10) + SourceIndex(0) name (Greeter) -5 >Emitted(39, 102) Source(25, 6) + SourceIndex(0) name (Greeter) +1->Emitted(41, 12) Source(23, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(41, 38) Source(23, 10) + SourceIndex(0) name (Greeter) +3 >Emitted(41, 72) Source(23, 5) + SourceIndex(0) name (Greeter) +4 >Emitted(41, 98) Source(23, 10) + SourceIndex(0) name (Greeter) +5 >Emitted(41, 102) Source(25, 6) + SourceIndex(0) name (Greeter) --- >>> __decorate([ 1 >^^^^ @@ -458,7 +460,7 @@ sourceFile:sourceMapValidationDecorators.ts 1 > > > -1 >Emitted(40, 5) Source(27, 5) + SourceIndex(0) name (Greeter) +1 >Emitted(42, 5) Source(27, 5) + SourceIndex(0) name (Greeter) --- >>> PropertyDecorator1, 1->^^^^^^^^ @@ -466,8 +468,8 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ^^^^^-> 1->@ 2 > PropertyDecorator1 -1->Emitted(41, 9) Source(27, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(41, 27) Source(27, 24) + SourceIndex(0) name (Greeter) +1->Emitted(43, 9) Source(27, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(43, 27) Source(27, 24) + SourceIndex(0) name (Greeter) --- >>> PropertyDecorator2(50) 1->^^^^^^^^ @@ -482,11 +484,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ( 4 > 50 5 > ) -1->Emitted(42, 9) Source(28, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(42, 27) Source(28, 24) + SourceIndex(0) name (Greeter) -3 >Emitted(42, 28) Source(28, 25) + SourceIndex(0) name (Greeter) -4 >Emitted(42, 30) Source(28, 27) + SourceIndex(0) name (Greeter) -5 >Emitted(42, 31) Source(28, 28) + SourceIndex(0) name (Greeter) +1->Emitted(44, 9) Source(28, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(44, 27) Source(28, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(44, 28) Source(28, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(44, 30) Source(28, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(44, 31) Source(28, 28) + SourceIndex(0) name (Greeter) --- >>> ], Greeter.prototype, "x"); 1->^^^^^^^ @@ -497,9 +499,9 @@ sourceFile:sourceMapValidationDecorators.ts > private 2 > x 3 > : string; -1->Emitted(43, 8) Source(29, 13) + SourceIndex(0) name (Greeter) -2 >Emitted(43, 30) Source(29, 14) + SourceIndex(0) name (Greeter) -3 >Emitted(43, 32) Source(29, 23) + SourceIndex(0) name (Greeter) +1->Emitted(45, 8) Source(29, 13) + SourceIndex(0) name (Greeter) +2 >Emitted(45, 30) Source(29, 14) + SourceIndex(0) name (Greeter) +3 >Emitted(45, 32) Source(29, 23) + SourceIndex(0) name (Greeter) --- >>> Object.defineProperty(Greeter.prototype, "fn", 1->^^^^ @@ -514,9 +516,9 @@ sourceFile:sourceMapValidationDecorators.ts > 2 > private 3 > fn -1->Emitted(44, 5) Source(35, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(44, 27) Source(35, 13) + SourceIndex(0) name (Greeter) -3 >Emitted(44, 50) Source(35, 15) + SourceIndex(0) name (Greeter) +1->Emitted(46, 5) Source(35, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(46, 27) Source(35, 13) + SourceIndex(0) name (Greeter) +3 >Emitted(46, 50) Source(35, 15) + SourceIndex(0) name (Greeter) --- >>> __decorate([ >>> __param(0, ParameterDecorator1), @@ -530,10 +532,10 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ 3 > ParameterDecorator1 4 > -1 >Emitted(46, 13) Source(36, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(46, 24) Source(36, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(46, 43) Source(36, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(46, 44) Source(36, 27) + SourceIndex(0) name (Greeter) +1 >Emitted(48, 13) Source(36, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(48, 24) Source(36, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(48, 43) Source(36, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(48, 44) Source(36, 27) + SourceIndex(0) name (Greeter) --- >>> __param(0, ParameterDecorator2(70)) 1->^^^^^^^^^^^^ @@ -552,13 +554,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > 70 6 > ) 7 > -1->Emitted(47, 13) Source(37, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(47, 24) Source(37, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(47, 43) Source(37, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(47, 44) Source(37, 28) + SourceIndex(0) name (Greeter) -5 >Emitted(47, 46) Source(37, 30) + SourceIndex(0) name (Greeter) -6 >Emitted(47, 47) Source(37, 31) + SourceIndex(0) name (Greeter) -7 >Emitted(47, 48) Source(37, 31) + SourceIndex(0) name (Greeter) +1->Emitted(49, 13) Source(37, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(49, 24) Source(37, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(49, 43) Source(37, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(49, 44) Source(37, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(49, 46) Source(37, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(49, 47) Source(37, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(49, 48) Source(37, 31) + SourceIndex(0) name (Greeter) --- >>> ], Greeter.prototype, "fn", Object.getOwnPropertyDescriptor(Greeter.prototype, "fn"))); 1->^^^^^^^^^^^ @@ -576,11 +578,11 @@ sourceFile:sourceMapValidationDecorators.ts > x: number) { > return this.greeting; > } -1->Emitted(48, 12) Source(35, 13) + SourceIndex(0) name (Greeter) -2 >Emitted(48, 35) Source(35, 15) + SourceIndex(0) name (Greeter) -3 >Emitted(48, 69) Source(35, 13) + SourceIndex(0) name (Greeter) -4 >Emitted(48, 92) Source(35, 15) + SourceIndex(0) name (Greeter) -5 >Emitted(48, 96) Source(40, 6) + SourceIndex(0) name (Greeter) +1->Emitted(50, 12) Source(35, 13) + SourceIndex(0) name (Greeter) +2 >Emitted(50, 35) Source(35, 15) + SourceIndex(0) name (Greeter) +3 >Emitted(50, 69) Source(35, 13) + SourceIndex(0) name (Greeter) +4 >Emitted(50, 92) Source(35, 15) + SourceIndex(0) name (Greeter) +5 >Emitted(50, 96) Source(40, 6) + SourceIndex(0) name (Greeter) --- >>> Object.defineProperty(Greeter.prototype, "greetings", 1 >^^^^ @@ -593,9 +595,9 @@ sourceFile:sourceMapValidationDecorators.ts > @PropertyDecorator2(80) > get 3 > greetings -1 >Emitted(49, 5) Source(42, 5) + SourceIndex(0) name (Greeter) -2 >Emitted(49, 27) Source(44, 9) + SourceIndex(0) name (Greeter) -3 >Emitted(49, 57) Source(44, 18) + SourceIndex(0) name (Greeter) +1 >Emitted(51, 5) Source(42, 5) + SourceIndex(0) name (Greeter) +2 >Emitted(51, 27) Source(44, 9) + SourceIndex(0) name (Greeter) +3 >Emitted(51, 57) Source(44, 18) + SourceIndex(0) name (Greeter) --- >>> __decorate([ >>> PropertyDecorator1, @@ -604,8 +606,8 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ^^^^^^-> 1 > 2 > PropertyDecorator1 -1 >Emitted(51, 13) Source(42, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(51, 31) Source(42, 24) + SourceIndex(0) name (Greeter) +1 >Emitted(53, 13) Source(42, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(53, 31) Source(42, 24) + SourceIndex(0) name (Greeter) --- >>> PropertyDecorator2(80), 1->^^^^^^^^^^^^ @@ -620,11 +622,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ( 4 > 80 5 > ) -1->Emitted(52, 13) Source(43, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(52, 31) Source(43, 24) + SourceIndex(0) name (Greeter) -3 >Emitted(52, 32) Source(43, 25) + SourceIndex(0) name (Greeter) -4 >Emitted(52, 34) Source(43, 27) + SourceIndex(0) name (Greeter) -5 >Emitted(52, 35) Source(43, 28) + SourceIndex(0) name (Greeter) +1->Emitted(54, 13) Source(43, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(54, 31) Source(43, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(54, 32) Source(43, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(54, 34) Source(43, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(54, 35) Source(43, 28) + SourceIndex(0) name (Greeter) --- >>> __param(0, ParameterDecorator1), 1->^^^^^^^^^^^^ @@ -642,10 +644,10 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ 3 > ParameterDecorator1 4 > -1->Emitted(53, 13) Source(49, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(53, 24) Source(49, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(53, 43) Source(49, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(53, 44) Source(49, 27) + SourceIndex(0) name (Greeter) +1->Emitted(55, 13) Source(49, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(55, 24) Source(49, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(55, 43) Source(49, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(55, 44) Source(49, 27) + SourceIndex(0) name (Greeter) --- >>> __param(0, ParameterDecorator2(90)) 1->^^^^^^^^^^^^ @@ -664,13 +666,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > 90 6 > ) 7 > -1->Emitted(54, 13) Source(50, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(54, 24) Source(50, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(54, 43) Source(50, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(54, 44) Source(50, 28) + SourceIndex(0) name (Greeter) -5 >Emitted(54, 46) Source(50, 30) + SourceIndex(0) name (Greeter) -6 >Emitted(54, 47) Source(50, 31) + SourceIndex(0) name (Greeter) -7 >Emitted(54, 48) Source(50, 31) + SourceIndex(0) name (Greeter) +1->Emitted(56, 13) Source(50, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(56, 24) Source(50, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(56, 43) Source(50, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(56, 44) Source(50, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(56, 46) Source(50, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(56, 47) Source(50, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(56, 48) Source(50, 31) + SourceIndex(0) name (Greeter) --- >>> ], Greeter.prototype, "greetings", Object.getOwnPropertyDescriptor(Greeter.prototype, "greetings"))); 1->^^^^^^^^^^^ @@ -685,17 +687,17 @@ sourceFile:sourceMapValidationDecorators.ts 5 > () { > return this.greeting; > } -1->Emitted(55, 12) Source(44, 9) + SourceIndex(0) name (Greeter) -2 >Emitted(55, 42) Source(44, 18) + SourceIndex(0) name (Greeter) -3 >Emitted(55, 76) Source(44, 9) + SourceIndex(0) name (Greeter) -4 >Emitted(55, 106) Source(44, 18) + SourceIndex(0) name (Greeter) -5 >Emitted(55, 110) Source(46, 6) + SourceIndex(0) name (Greeter) +1->Emitted(57, 12) Source(44, 9) + SourceIndex(0) name (Greeter) +2 >Emitted(57, 42) Source(44, 18) + SourceIndex(0) name (Greeter) +3 >Emitted(57, 76) Source(44, 9) + SourceIndex(0) name (Greeter) +4 >Emitted(57, 106) Source(44, 18) + SourceIndex(0) name (Greeter) +5 >Emitted(57, 110) Source(46, 6) + SourceIndex(0) name (Greeter) --- >>> __decorate([ 1 >^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > -1 >Emitted(56, 5) Source(31, 5) + SourceIndex(0) name (Greeter) +1 >Emitted(58, 5) Source(31, 5) + SourceIndex(0) name (Greeter) --- >>> PropertyDecorator1, 1->^^^^^^^^ @@ -703,8 +705,8 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ^^^^^-> 1->@ 2 > PropertyDecorator1 -1->Emitted(57, 9) Source(31, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(57, 27) Source(31, 24) + SourceIndex(0) name (Greeter) +1->Emitted(59, 9) Source(31, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(59, 27) Source(31, 24) + SourceIndex(0) name (Greeter) --- >>> PropertyDecorator2(60) 1->^^^^^^^^ @@ -718,11 +720,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ( 4 > 60 5 > ) -1->Emitted(58, 9) Source(32, 6) + SourceIndex(0) name (Greeter) -2 >Emitted(58, 27) Source(32, 24) + SourceIndex(0) name (Greeter) -3 >Emitted(58, 28) Source(32, 25) + SourceIndex(0) name (Greeter) -4 >Emitted(58, 30) Source(32, 27) + SourceIndex(0) name (Greeter) -5 >Emitted(58, 31) Source(32, 28) + SourceIndex(0) name (Greeter) +1->Emitted(60, 9) Source(32, 6) + SourceIndex(0) name (Greeter) +2 >Emitted(60, 27) Source(32, 24) + SourceIndex(0) name (Greeter) +3 >Emitted(60, 28) Source(32, 25) + SourceIndex(0) name (Greeter) +4 >Emitted(60, 30) Source(32, 27) + SourceIndex(0) name (Greeter) +5 >Emitted(60, 31) Source(32, 28) + SourceIndex(0) name (Greeter) --- >>> ], Greeter, "x1"); 1 >^^^^^^^ @@ -733,15 +735,15 @@ sourceFile:sourceMapValidationDecorators.ts > private static 2 > x1 3 > : number = 10; -1 >Emitted(59, 8) Source(33, 20) + SourceIndex(0) name (Greeter) -2 >Emitted(59, 21) Source(33, 22) + SourceIndex(0) name (Greeter) -3 >Emitted(59, 23) Source(33, 36) + SourceIndex(0) name (Greeter) +1 >Emitted(61, 8) Source(33, 20) + SourceIndex(0) name (Greeter) +2 >Emitted(61, 21) Source(33, 22) + SourceIndex(0) name (Greeter) +3 >Emitted(61, 23) Source(33, 36) + SourceIndex(0) name (Greeter) --- >>> Greeter = __decorate([ 1->^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^-> 1-> -1->Emitted(60, 5) Source(8, 1) + SourceIndex(0) name (Greeter) +1->Emitted(62, 5) Source(8, 1) + SourceIndex(0) name (Greeter) --- >>> ClassDecorator1, 1->^^^^^^^^ @@ -749,8 +751,8 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ^^^^^^-> 1->@ 2 > ClassDecorator1 -1->Emitted(61, 9) Source(8, 2) + SourceIndex(0) name (Greeter) -2 >Emitted(61, 24) Source(8, 17) + SourceIndex(0) name (Greeter) +1->Emitted(63, 9) Source(8, 2) + SourceIndex(0) name (Greeter) +2 >Emitted(63, 24) Source(8, 17) + SourceIndex(0) name (Greeter) --- >>> ClassDecorator2(10), 1->^^^^^^^^ @@ -765,11 +767,11 @@ sourceFile:sourceMapValidationDecorators.ts 3 > ( 4 > 10 5 > ) -1->Emitted(62, 9) Source(9, 2) + SourceIndex(0) name (Greeter) -2 >Emitted(62, 24) Source(9, 17) + SourceIndex(0) name (Greeter) -3 >Emitted(62, 25) Source(9, 18) + SourceIndex(0) name (Greeter) -4 >Emitted(62, 27) Source(9, 20) + SourceIndex(0) name (Greeter) -5 >Emitted(62, 28) Source(9, 21) + SourceIndex(0) name (Greeter) +1->Emitted(64, 9) Source(9, 2) + SourceIndex(0) name (Greeter) +2 >Emitted(64, 24) Source(9, 17) + SourceIndex(0) name (Greeter) +3 >Emitted(64, 25) Source(9, 18) + SourceIndex(0) name (Greeter) +4 >Emitted(64, 27) Source(9, 20) + SourceIndex(0) name (Greeter) +5 >Emitted(64, 28) Source(9, 21) + SourceIndex(0) name (Greeter) --- >>> __param(0, ParameterDecorator1), 1->^^^^^^^^ @@ -784,10 +786,10 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ 3 > ParameterDecorator1 4 > -1->Emitted(63, 9) Source(12, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(63, 20) Source(12, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(63, 39) Source(12, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(63, 40) Source(12, 27) + SourceIndex(0) name (Greeter) +1->Emitted(65, 9) Source(12, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(65, 20) Source(12, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(65, 39) Source(12, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(65, 40) Source(12, 27) + SourceIndex(0) name (Greeter) --- >>> __param(0, ParameterDecorator2(20)), 1->^^^^^^^^ @@ -805,13 +807,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > 20 6 > ) 7 > -1->Emitted(64, 9) Source(13, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(64, 20) Source(13, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(64, 39) Source(13, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(64, 40) Source(13, 28) + SourceIndex(0) name (Greeter) -5 >Emitted(64, 42) Source(13, 30) + SourceIndex(0) name (Greeter) -6 >Emitted(64, 43) Source(13, 31) + SourceIndex(0) name (Greeter) -7 >Emitted(64, 44) Source(13, 31) + SourceIndex(0) name (Greeter) +1->Emitted(66, 9) Source(13, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(66, 20) Source(13, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(66, 39) Source(13, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(66, 40) Source(13, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(66, 42) Source(13, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(66, 43) Source(13, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(66, 44) Source(13, 31) + SourceIndex(0) name (Greeter) --- >>> __param(1, ParameterDecorator1), 1 >^^^^^^^^ @@ -826,10 +828,10 @@ sourceFile:sourceMapValidationDecorators.ts 2 > @ 3 > ParameterDecorator1 4 > -1 >Emitted(65, 9) Source(16, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(65, 20) Source(16, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(65, 39) Source(16, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(65, 40) Source(16, 27) + SourceIndex(0) name (Greeter) +1 >Emitted(67, 9) Source(16, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(67, 20) Source(16, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(67, 39) Source(16, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(67, 40) Source(16, 27) + SourceIndex(0) name (Greeter) --- >>> __param(1, ParameterDecorator2(30)) 1->^^^^^^^^ @@ -847,13 +849,13 @@ sourceFile:sourceMapValidationDecorators.ts 5 > 30 6 > ) 7 > -1->Emitted(66, 9) Source(17, 7) + SourceIndex(0) name (Greeter) -2 >Emitted(66, 20) Source(17, 8) + SourceIndex(0) name (Greeter) -3 >Emitted(66, 39) Source(17, 27) + SourceIndex(0) name (Greeter) -4 >Emitted(66, 40) Source(17, 28) + SourceIndex(0) name (Greeter) -5 >Emitted(66, 42) Source(17, 30) + SourceIndex(0) name (Greeter) -6 >Emitted(66, 43) Source(17, 31) + SourceIndex(0) name (Greeter) -7 >Emitted(66, 44) Source(17, 31) + SourceIndex(0) name (Greeter) +1->Emitted(68, 9) Source(17, 7) + SourceIndex(0) name (Greeter) +2 >Emitted(68, 20) Source(17, 8) + SourceIndex(0) name (Greeter) +3 >Emitted(68, 39) Source(17, 27) + SourceIndex(0) name (Greeter) +4 >Emitted(68, 40) Source(17, 28) + SourceIndex(0) name (Greeter) +5 >Emitted(68, 42) Source(17, 30) + SourceIndex(0) name (Greeter) +6 >Emitted(68, 43) Source(17, 31) + SourceIndex(0) name (Greeter) +7 >Emitted(68, 44) Source(17, 31) + SourceIndex(0) name (Greeter) --- >>> ], Greeter); 1 >^^^^^^^^^^^^^^^^ @@ -896,15 +898,15 @@ sourceFile:sourceMapValidationDecorators.ts > this.greeting = greetings; > } >} -1 >Emitted(67, 17) Source(54, 2) + SourceIndex(0) name (Greeter) +1 >Emitted(69, 17) Source(54, 2) + SourceIndex(0) name (Greeter) --- >>> return Greeter; 1->^^^^ 2 > ^^^^^^^^^^^^^^ 1-> 2 > } -1->Emitted(68, 5) Source(54, 1) + SourceIndex(0) name (Greeter) -2 >Emitted(68, 19) Source(54, 2) + SourceIndex(0) name (Greeter) +1->Emitted(70, 5) Source(54, 1) + SourceIndex(0) name (Greeter) +2 >Emitted(70, 19) Source(54, 2) + SourceIndex(0) name (Greeter) --- >>>})(); 1 > @@ -962,9 +964,9 @@ sourceFile:sourceMapValidationDecorators.ts > this.greeting = greetings; > } > } -1 >Emitted(69, 1) Source(54, 1) + SourceIndex(0) name (Greeter) -2 >Emitted(69, 2) Source(54, 2) + SourceIndex(0) name (Greeter) -3 >Emitted(69, 2) Source(8, 1) + SourceIndex(0) -4 >Emitted(69, 6) Source(54, 2) + SourceIndex(0) +1 >Emitted(71, 1) Source(54, 1) + SourceIndex(0) name (Greeter) +2 >Emitted(71, 2) Source(54, 2) + SourceIndex(0) name (Greeter) +3 >Emitted(71, 2) Source(8, 1) + SourceIndex(0) +4 >Emitted(71, 6) Source(54, 2) + SourceIndex(0) --- >>>//# sourceMappingURL=sourceMapValidationDecorators.js.map \ No newline at end of file From 983b82df3c5f6218de3b1c7b54167c268a3893be Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Thu, 23 Apr 2015 15:53:20 -0700 Subject: [PATCH 3/3] Updated LKG --- bin/tsc.js | 6 +++--- bin/tsserver.js | 6 +++--- bin/typescript.js | 6 +++--- bin/typescriptServices.js | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bin/tsc.js b/bin/tsc.js index 84a97ce61c832..49db1f2cb859c 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -20155,9 +20155,9 @@ var ts; ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; function emitFiles(resolver, host, targetSourceFile) { var extendsHelper = "\nvar __extends = this.__extends || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n __.prototype = b.prototype;\n d.prototype = new __();\n};"; - var decorateHelper = "\nvar __decorate = this.__decorate || function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; - var metadataHelper = "\nvar __metadata = this.__metadata || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; - var paramHelper = "\nvar __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } };"; + var decorateHelper = "\nif (typeof __decorate !== \"function\") __decorate = function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; + var metadataHelper = "\nif (typeof __metadata !== \"function\") __metadata = function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; + var paramHelper = "\nif (typeof __param !== \"function\") __param = function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};"; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; diff --git a/bin/tsserver.js b/bin/tsserver.js index 52fb9a6ab9404..d5b7fdd009433 100644 --- a/bin/tsserver.js +++ b/bin/tsserver.js @@ -20506,9 +20506,9 @@ var ts; ts.isExternalModuleOrDeclarationFile = isExternalModuleOrDeclarationFile; function emitFiles(resolver, host, targetSourceFile) { var extendsHelper = "\nvar __extends = this.__extends || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n __.prototype = b.prototype;\n d.prototype = new __();\n};"; - var decorateHelper = "\nvar __decorate = this.__decorate || function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; - var metadataHelper = "\nvar __metadata = this.__metadata || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; - var paramHelper = "\nvar __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } };"; + var decorateHelper = "\nif (typeof __decorate !== \"function\") __decorate = function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; + var metadataHelper = "\nif (typeof __metadata !== \"function\") __metadata = function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; + var paramHelper = "\nif (typeof __param !== \"function\") __param = function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};"; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; diff --git a/bin/typescript.js b/bin/typescript.js index cae226bcaf96e..fefe3658fb478 100644 --- a/bin/typescript.js +++ b/bin/typescript.js @@ -24025,11 +24025,11 @@ var ts; // emit output for the __extends helper function var extendsHelper = "\nvar __extends = this.__extends || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n __.prototype = b.prototype;\n d.prototype = new __();\n};"; // emit output for the __decorate helper function - var decorateHelper = "\nvar __decorate = this.__decorate || function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; + var decorateHelper = "\nif (typeof __decorate !== \"function\") __decorate = function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; // emit output for the __metadata helper function - var metadataHelper = "\nvar __metadata = this.__metadata || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; + var metadataHelper = "\nif (typeof __metadata !== \"function\") __metadata = function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; // emit output for the __param helper function - var paramHelper = "\nvar __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } };"; + var paramHelper = "\nif (typeof __param !== \"function\") __param = function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};"; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0 /* ES3 */; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index cae226bcaf96e..fefe3658fb478 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -24025,11 +24025,11 @@ var ts; // emit output for the __extends helper function var extendsHelper = "\nvar __extends = this.__extends || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n function __() { this.constructor = d; }\n __.prototype = b.prototype;\n d.prototype = new __();\n};"; // emit output for the __decorate helper function - var decorateHelper = "\nvar __decorate = this.__decorate || function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; + var decorateHelper = "\nif (typeof __decorate !== \"function\") __decorate = function (decorators, target, key, desc) {\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") return Reflect.decorate(decorators, target, key, desc);\n switch (arguments.length) {\n case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target);\n case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0);\n case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc);\n }\n};"; // emit output for the __metadata helper function - var metadataHelper = "\nvar __metadata = this.__metadata || function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; + var metadataHelper = "\nif (typeof __metadata !== \"function\") __metadata = function (k, v) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n};"; // emit output for the __param helper function - var paramHelper = "\nvar __param = this.__param || function(index, decorator) { return function (target, key) { decorator(target, key, index); } };"; + var paramHelper = "\nif (typeof __param !== \"function\") __param = function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};"; var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || 0 /* ES3 */; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined;