mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-12-11 09:24:19 -06:00
Updated LKG
This commit is contained in:
parent
e76f920e75
commit
cfff30914c
2
bin/lib.core.es6.d.ts
vendored
2
bin/lib.core.es6.d.ts
vendored
@ -4766,6 +4766,7 @@ interface PromiseLike<T> {
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): PromiseLike<TResult>;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4779,6 +4780,7 @@ interface Promise<T> {
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): Promise<TResult>;
|
||||
|
||||
/**
|
||||
* Attaches a callback for only the rejection of the Promise.
|
||||
|
||||
2
bin/lib.es6.d.ts
vendored
2
bin/lib.es6.d.ts
vendored
@ -4766,6 +4766,7 @@ interface PromiseLike<T> {
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): PromiseLike<TResult>;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4779,6 +4780,7 @@ interface Promise<T> {
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>;
|
||||
then<TResult>(onfulfilled?: (value: T) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => void): Promise<TResult>;
|
||||
|
||||
/**
|
||||
* Attaches a callback for only the rejection of the Promise.
|
||||
|
||||
208
bin/tsc.js
208
bin/tsc.js
@ -431,9 +431,13 @@ var ts;
|
||||
return 3;
|
||||
return 2;
|
||||
}
|
||||
if (path.lastIndexOf("file:///", 0) === 0) {
|
||||
return "file:///".length;
|
||||
}
|
||||
var idx = path.indexOf('://');
|
||||
if (idx !== -1)
|
||||
return idx + 3;
|
||||
if (idx !== -1) {
|
||||
return idx + "://".length;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
ts.getRootLength = getRootLength;
|
||||
@ -1079,8 +1083,8 @@ var ts;
|
||||
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." },
|
||||
Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--separateCompilation' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--separateCompilation' flag is provided." },
|
||||
Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--isolatedModules' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--isolatedModules' flag is provided." },
|
||||
Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode: { code: 1210, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}'. Class definitions are automatically in strict mode." },
|
||||
A_class_declaration_without_the_default_modifier_must_have_a_name: { code: 1211, category: ts.DiagnosticCategory.Error, key: "A class declaration without the 'default' modifier must have a name" },
|
||||
Identifier_expected_0_is_a_reserved_word_in_strict_mode: { code: 1212, category: ts.DiagnosticCategory.Error, key: "Identifier expected. '{0}' is a reserved word in strict mode" },
|
||||
@ -1363,11 +1367,11 @@ var ts;
|
||||
Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." },
|
||||
Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." },
|
||||
Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_separateCompilation: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'separateCompilation'." },
|
||||
Option_declaration_cannot_be_specified_with_option_separateCompilation: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'separateCompilation'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'separateCompilation'." },
|
||||
Option_out_cannot_be_specified_with_option_separateCompilation: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'separateCompilation'." },
|
||||
Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'separateCompilation' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_isolatedModules: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'isolatedModules'." },
|
||||
Option_declaration_cannot_be_specified_with_option_isolatedModules: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'isolatedModules'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'isolatedModules'." },
|
||||
Option_out_cannot_be_specified_with_option_isolatedModules: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'isolatedModules'." },
|
||||
Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'isolatedModules' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_inlineSourceMap: { code: 5048, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_sourceRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5049, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_mapRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5050, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
@ -4410,7 +4414,7 @@ var ts;
|
||||
function shouldEmitToOwnFile(sourceFile, compilerOptions) {
|
||||
if (!isDeclarationFile(sourceFile)) {
|
||||
if ((isExternalModule(sourceFile) || !compilerOptions.out)) {
|
||||
return compilerOptions.separateCompilation || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
return compilerOptions.isolatedModules || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -9117,7 +9121,7 @@ var ts;
|
||||
var symbol = getSymbolOfNode(node);
|
||||
var target = resolveAlias(symbol);
|
||||
if (target) {
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.separateCompilation) ||
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.isolatedModules) ||
|
||||
(target !== unknownSymbol && (target.flags & 107455) && !isConstEnumOrConstEnumOnlyModule(target));
|
||||
if (markAlias) {
|
||||
markAliasSymbolAsReferenced(symbol);
|
||||
@ -10427,7 +10431,10 @@ var ts;
|
||||
function getTypeOfAlias(symbol) {
|
||||
var links = getSymbolLinks(symbol);
|
||||
if (!links.type) {
|
||||
links.type = getTypeOfSymbol(resolveAlias(symbol));
|
||||
var targetSymbol = resolveAlias(symbol);
|
||||
links.type = targetSymbol.flags & 107455
|
||||
? getTypeOfSymbol(targetSymbol)
|
||||
: unknownType;
|
||||
}
|
||||
return links.type;
|
||||
}
|
||||
@ -11441,7 +11448,13 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var removeSubtypesStack = [];
|
||||
function removeSubtypes(types) {
|
||||
var typeListId = getTypeListId(types);
|
||||
if (removeSubtypesStack.lastIndexOf(typeListId) >= 0) {
|
||||
return;
|
||||
}
|
||||
removeSubtypesStack.push(typeListId);
|
||||
var i = types.length;
|
||||
while (i > 0) {
|
||||
i--;
|
||||
@ -11449,6 +11462,7 @@ var ts;
|
||||
types.splice(i, 1);
|
||||
}
|
||||
}
|
||||
removeSubtypesStack.pop();
|
||||
}
|
||||
function containsAnyType(types) {
|
||||
for (var _i = 0; _i < types.length; _i++) {
|
||||
@ -13004,31 +13018,33 @@ var ts;
|
||||
if (!isTypeSubtypeOf(rightType, globalFunctionType)) {
|
||||
return type;
|
||||
}
|
||||
var targetType;
|
||||
var prototypeProperty = getPropertyOfType(rightType, "prototype");
|
||||
if (prototypeProperty) {
|
||||
var targetType = getTypeOfSymbol(prototypeProperty);
|
||||
if (targetType !== anyType) {
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
if (type.flags & 16384) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
var prototypePropertyType = getTypeOfSymbol(prototypeProperty);
|
||||
if (prototypePropertyType !== anyType) {
|
||||
targetType = prototypePropertyType;
|
||||
}
|
||||
}
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
if (!targetType) {
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
}
|
||||
else if (rightType.flags & 32768) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length) {
|
||||
targetType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
}
|
||||
}
|
||||
else if (rightType.flags & 32768) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length !== 0) {
|
||||
var instanceType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
if (targetType) {
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
if (type.flags & 16384) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, instanceType); }));
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
return instanceType;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
@ -15529,7 +15545,7 @@ var ts;
|
||||
function checkTypeNodeAsExpression(node) {
|
||||
if (node && node.kind === 142) {
|
||||
var type = getTypeFromTypeNode(node);
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.isolatedModules;
|
||||
if (!type || (!shouldCheckIfUnknownType && type.flags & (1048703 | 132 | 258))) {
|
||||
return;
|
||||
}
|
||||
@ -16362,7 +16378,7 @@ var ts;
|
||||
checkKindsOfPropertyMemberOverrides(type, baseType);
|
||||
}
|
||||
}
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.separateCompilation)) {
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.isolatedModules)) {
|
||||
checkExpressionOrQualifiedName(baseTypeNode.expression);
|
||||
}
|
||||
var implementedTypeNodes = ts.getClassImplementsHeritageClauseElements(node);
|
||||
@ -16706,8 +16722,8 @@ var ts;
|
||||
checkExportsOnMergedDeclarations(node);
|
||||
computeEnumMemberValues(node);
|
||||
var enumIsConst = ts.isConst(node);
|
||||
if (compilerOptions.separateCompilation && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided);
|
||||
if (compilerOptions.isolatedModules && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided);
|
||||
}
|
||||
var enumSymbol = getSymbolOfNode(node);
|
||||
var firstDeclaration = ts.getDeclarationOfKind(enumSymbol, node.kind);
|
||||
@ -16779,7 +16795,7 @@ var ts;
|
||||
if (symbol.flags & 512
|
||||
&& symbol.declarations.length > 1
|
||||
&& !ts.isInAmbientContext(node)
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation)) {
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
|
||||
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
|
||||
if (firstNonAmbientClassOrFunc) {
|
||||
if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(firstNonAmbientClassOrFunc)) {
|
||||
@ -17106,6 +17122,7 @@ var ts;
|
||||
break;
|
||||
case 135:
|
||||
case 134:
|
||||
ts.forEach(node.decorators, checkFunctionExpressionBodies);
|
||||
ts.forEach(node.parameters, checkFunctionExpressionBodies);
|
||||
if (ts.isObjectLiteralMethod(node)) {
|
||||
checkFunctionExpressionOrObjectLiteralMethodBody(node);
|
||||
@ -17120,6 +17137,7 @@ var ts;
|
||||
case 193:
|
||||
checkFunctionExpressionBodies(node.expression);
|
||||
break;
|
||||
case 131:
|
||||
case 130:
|
||||
case 133:
|
||||
case 132:
|
||||
@ -17701,7 +17719,7 @@ var ts;
|
||||
}
|
||||
function isAliasResolvedToValue(symbol) {
|
||||
var target = resolveAlias(symbol);
|
||||
if (target === unknownSymbol && compilerOptions.separateCompilation) {
|
||||
if (target === unknownSymbol && compilerOptions.isolatedModules) {
|
||||
return true;
|
||||
}
|
||||
return target !== unknownSymbol && target && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target);
|
||||
@ -21259,7 +21277,7 @@ var ts;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function emitListWithSpread(elements, multiLine, trailingComma) {
|
||||
function emitListWithSpread(elements, alwaysCopy, multiLine, trailingComma) {
|
||||
var pos = 0;
|
||||
var group = 0;
|
||||
var length = elements.length;
|
||||
@ -21275,6 +21293,9 @@ var ts;
|
||||
e = e.expression;
|
||||
emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
|
||||
pos++;
|
||||
if (pos === length && group === 0 && alwaysCopy && e.kind !== 154) {
|
||||
write(".slice()");
|
||||
}
|
||||
}
|
||||
else {
|
||||
var i = pos;
|
||||
@ -21312,7 +21333,7 @@ var ts;
|
||||
write("]");
|
||||
}
|
||||
else {
|
||||
emitListWithSpread(elements, (node.flags & 512) !== 0, elements.hasTrailingComma);
|
||||
emitListWithSpread(elements, true, (node.flags & 512) !== 0, elements.hasTrailingComma);
|
||||
}
|
||||
}
|
||||
function emitObjectLiteralBody(node, numElements) {
|
||||
@ -21528,7 +21549,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function tryEmitConstantValue(node) {
|
||||
if (compilerOptions.separateCompilation) {
|
||||
if (compilerOptions.isolatedModules) {
|
||||
return false;
|
||||
}
|
||||
var constantValue = resolver.getConstantValue(node);
|
||||
@ -21638,7 +21659,7 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
write(", ");
|
||||
emitListWithSpread(node.arguments, false, false);
|
||||
emitListWithSpread(node.arguments, false, false, false);
|
||||
write(")");
|
||||
}
|
||||
function emitCallExpression(node) {
|
||||
@ -22266,7 +22287,7 @@ var ts;
|
||||
if (node.flags & 1) {
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
if (compilerOptions.module === 4) {
|
||||
if (compilerOptions.module === 4 && node.parent === currentSourceFile) {
|
||||
write(exportFunctionForFile + "(\"");
|
||||
if (node.flags & 256) {
|
||||
write("default");
|
||||
@ -23622,21 +23643,23 @@ var ts;
|
||||
}
|
||||
function shouldEmitEnumDeclaration(node) {
|
||||
var isConstEnum = ts.isConst(node);
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.separateCompilation;
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.isolatedModules;
|
||||
}
|
||||
function emitEnumDeclaration(node) {
|
||||
if (!shouldEmitEnumDeclaration(node)) {
|
||||
return;
|
||||
}
|
||||
if (!(node.flags & 1) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
if (!shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
if (!(node.flags & 1) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
@ -23658,7 +23681,7 @@ var ts;
|
||||
emitModuleMemberName(node);
|
||||
write(" = {}));");
|
||||
emitEnd(node);
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1) {
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1 && !shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
write("var ");
|
||||
@ -23669,6 +23692,14 @@ var ts;
|
||||
write(";");
|
||||
}
|
||||
if (languageVersion < 2 && node.parent === currentSourceFile) {
|
||||
if (compilerOptions.module === 4 && (node.flags & 1)) {
|
||||
writeLine();
|
||||
write(exportFunctionForFile + "(\"");
|
||||
emitDeclarationName(node);
|
||||
write("\", ");
|
||||
emitDeclarationName(node);
|
||||
write(")");
|
||||
}
|
||||
emitExportMemberAssignments(node.name);
|
||||
}
|
||||
}
|
||||
@ -23707,7 +23738,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function shouldEmitModuleDeclaration(node) {
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation);
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules);
|
||||
}
|
||||
function isModuleMergedWithES6Class(node) {
|
||||
return languageVersion === 2 && !!(resolver.getNodeCheckFlags(node) & 2048);
|
||||
@ -24255,12 +24286,25 @@ var ts;
|
||||
if (hoistedVars) {
|
||||
writeLine();
|
||||
write("var ");
|
||||
var seen = {};
|
||||
for (var i = 0; i < hoistedVars.length; ++i) {
|
||||
var local = hoistedVars[i];
|
||||
var name_21 = local.kind === 65
|
||||
? local
|
||||
: local.name;
|
||||
if (name_21) {
|
||||
var text = ts.unescapeIdentifier(name_21.text);
|
||||
if (ts.hasProperty(seen, text)) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
seen[text] = text;
|
||||
}
|
||||
}
|
||||
if (i !== 0) {
|
||||
write(", ");
|
||||
}
|
||||
if (local.kind === 202 || local.kind === 206) {
|
||||
if (local.kind === 202 || local.kind === 206 || local.kind === 205) {
|
||||
emitDeclarationName(local);
|
||||
}
|
||||
else {
|
||||
@ -24291,6 +24335,9 @@ var ts;
|
||||
}
|
||||
return exportedDeclarations;
|
||||
function visit(node) {
|
||||
if (node.flags & 2) {
|
||||
return;
|
||||
}
|
||||
if (node.kind === 201) {
|
||||
if (!hoistedFunctionDeclarations) {
|
||||
hoistedFunctionDeclarations = [];
|
||||
@ -24305,24 +24352,35 @@ var ts;
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206 && shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
if (node.kind === 205) {
|
||||
if (shouldEmitEnumDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206) {
|
||||
if (shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 199 || node.kind === 153) {
|
||||
if (shouldHoistVariable(node, false)) {
|
||||
var name_21 = node.name;
|
||||
if (name_21.kind === 65) {
|
||||
var name_22 = node.name;
|
||||
if (name_22.kind === 65) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(name_21);
|
||||
hoistedVars.push(name_22);
|
||||
}
|
||||
else {
|
||||
ts.forEachChild(name_21, visit);
|
||||
ts.forEachChild(name_22, visit);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -24636,7 +24694,7 @@ var ts;
|
||||
paramEmitted = true;
|
||||
}
|
||||
}
|
||||
if (ts.isExternalModule(node) || compilerOptions.separateCompilation) {
|
||||
if (ts.isExternalModule(node) || compilerOptions.isolatedModules) {
|
||||
if (languageVersion >= 2) {
|
||||
emitES6Module(node, startIndex);
|
||||
}
|
||||
@ -24992,7 +25050,7 @@ var ts;
|
||||
ts.emitTime = 0;
|
||||
ts.ioReadTime = 0;
|
||||
ts.ioWriteTime = 0;
|
||||
ts.version = "1.5.2";
|
||||
ts.version = "1.5.3";
|
||||
var carriageReturnLineFeed = "\r\n";
|
||||
var lineFeed = "\n";
|
||||
function findConfigFile(searchPath) {
|
||||
@ -25168,14 +25226,14 @@ var ts;
|
||||
if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) {
|
||||
return { diagnostics: [], sourceMaps: undefined, emitSkipped: true };
|
||||
}
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile);
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(options.out ? undefined : sourceFile);
|
||||
var start = new Date().getTime();
|
||||
var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile);
|
||||
ts.emitTime += new Date().getTime() - start;
|
||||
return emitResult;
|
||||
}
|
||||
function getSourceFile(fileName) {
|
||||
fileName = host.getCanonicalFileName(fileName);
|
||||
fileName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined;
|
||||
}
|
||||
function getDiagnosticsHelper(sourceFile, getDiagnostics) {
|
||||
@ -25266,7 +25324,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) {
|
||||
var canonicalName = host.getCanonicalFileName(fileName);
|
||||
var canonicalName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
if (ts.hasProperty(filesByName, canonicalName)) {
|
||||
return getSourceFileFromCache(fileName, canonicalName, false);
|
||||
}
|
||||
@ -25409,18 +25467,18 @@ var ts;
|
||||
return allFilesBelongToPath;
|
||||
}
|
||||
function verifyCompilerOptions() {
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
@ -25450,14 +25508,14 @@ var ts;
|
||||
}
|
||||
var languageVersion = options.target || 0;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
}
|
||||
var firstNonExternalModuleSourceFile = ts.forEach(files, function (f) { return !ts.isExternalModule(f) && !ts.isDeclarationFile(f) ? f : undefined; });
|
||||
if (firstNonExternalModuleSourceFile) {
|
||||
var span = ts.getErrorSpanForNode(firstNonExternalModuleSourceFile, firstNonExternalModuleSourceFile);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided));
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided));
|
||||
}
|
||||
}
|
||||
else if (firstExternalModuleSourceFile && languageVersion < 2 && !options.module) {
|
||||
@ -25636,7 +25694,7 @@ var ts;
|
||||
paramType: ts.Diagnostics.LOCATION
|
||||
},
|
||||
{
|
||||
name: "separateCompilation",
|
||||
name: "isolatedModules",
|
||||
type: "boolean"
|
||||
},
|
||||
{
|
||||
|
||||
290
bin/tsserver.js
290
bin/tsserver.js
@ -431,9 +431,13 @@ var ts;
|
||||
return 3;
|
||||
return 2;
|
||||
}
|
||||
if (path.lastIndexOf("file:///", 0) === 0) {
|
||||
return "file:///".length;
|
||||
}
|
||||
var idx = path.indexOf('://');
|
||||
if (idx !== -1)
|
||||
return idx + 3;
|
||||
if (idx !== -1) {
|
||||
return idx + "://".length;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
ts.getRootLength = getRootLength;
|
||||
@ -1079,8 +1083,8 @@ var ts;
|
||||
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." },
|
||||
Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--separateCompilation' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--separateCompilation' flag is provided." },
|
||||
Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--isolatedModules' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--isolatedModules' flag is provided." },
|
||||
Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode: { code: 1210, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}'. Class definitions are automatically in strict mode." },
|
||||
A_class_declaration_without_the_default_modifier_must_have_a_name: { code: 1211, category: ts.DiagnosticCategory.Error, key: "A class declaration without the 'default' modifier must have a name" },
|
||||
Identifier_expected_0_is_a_reserved_word_in_strict_mode: { code: 1212, category: ts.DiagnosticCategory.Error, key: "Identifier expected. '{0}' is a reserved word in strict mode" },
|
||||
@ -1363,11 +1367,11 @@ var ts;
|
||||
Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." },
|
||||
Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." },
|
||||
Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_separateCompilation: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'separateCompilation'." },
|
||||
Option_declaration_cannot_be_specified_with_option_separateCompilation: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'separateCompilation'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'separateCompilation'." },
|
||||
Option_out_cannot_be_specified_with_option_separateCompilation: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'separateCompilation'." },
|
||||
Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'separateCompilation' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_isolatedModules: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'isolatedModules'." },
|
||||
Option_declaration_cannot_be_specified_with_option_isolatedModules: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'isolatedModules'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'isolatedModules'." },
|
||||
Option_out_cannot_be_specified_with_option_isolatedModules: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'isolatedModules'." },
|
||||
Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'isolatedModules' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_inlineSourceMap: { code: 5048, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_sourceRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5049, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_mapRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5050, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
@ -2850,7 +2854,7 @@ var ts;
|
||||
paramType: ts.Diagnostics.LOCATION
|
||||
},
|
||||
{
|
||||
name: "separateCompilation",
|
||||
name: "isolatedModules",
|
||||
type: "boolean"
|
||||
},
|
||||
{
|
||||
@ -4281,7 +4285,7 @@ var ts;
|
||||
function shouldEmitToOwnFile(sourceFile, compilerOptions) {
|
||||
if (!isDeclarationFile(sourceFile)) {
|
||||
if ((isExternalModule(sourceFile) || !compilerOptions.out)) {
|
||||
return compilerOptions.separateCompilation || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
return compilerOptions.isolatedModules || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -9501,7 +9505,7 @@ var ts;
|
||||
var symbol = getSymbolOfNode(node);
|
||||
var target = resolveAlias(symbol);
|
||||
if (target) {
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.separateCompilation) ||
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.isolatedModules) ||
|
||||
(target !== unknownSymbol && (target.flags & 107455) && !isConstEnumOrConstEnumOnlyModule(target));
|
||||
if (markAlias) {
|
||||
markAliasSymbolAsReferenced(symbol);
|
||||
@ -10811,7 +10815,10 @@ var ts;
|
||||
function getTypeOfAlias(symbol) {
|
||||
var links = getSymbolLinks(symbol);
|
||||
if (!links.type) {
|
||||
links.type = getTypeOfSymbol(resolveAlias(symbol));
|
||||
var targetSymbol = resolveAlias(symbol);
|
||||
links.type = targetSymbol.flags & 107455
|
||||
? getTypeOfSymbol(targetSymbol)
|
||||
: unknownType;
|
||||
}
|
||||
return links.type;
|
||||
}
|
||||
@ -11825,7 +11832,13 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var removeSubtypesStack = [];
|
||||
function removeSubtypes(types) {
|
||||
var typeListId = getTypeListId(types);
|
||||
if (removeSubtypesStack.lastIndexOf(typeListId) >= 0) {
|
||||
return;
|
||||
}
|
||||
removeSubtypesStack.push(typeListId);
|
||||
var i = types.length;
|
||||
while (i > 0) {
|
||||
i--;
|
||||
@ -11833,6 +11846,7 @@ var ts;
|
||||
types.splice(i, 1);
|
||||
}
|
||||
}
|
||||
removeSubtypesStack.pop();
|
||||
}
|
||||
function containsAnyType(types) {
|
||||
for (var _i = 0; _i < types.length; _i++) {
|
||||
@ -13388,31 +13402,33 @@ var ts;
|
||||
if (!isTypeSubtypeOf(rightType, globalFunctionType)) {
|
||||
return type;
|
||||
}
|
||||
var targetType;
|
||||
var prototypeProperty = getPropertyOfType(rightType, "prototype");
|
||||
if (prototypeProperty) {
|
||||
var targetType = getTypeOfSymbol(prototypeProperty);
|
||||
if (targetType !== anyType) {
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
if (type.flags & 16384) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
var prototypePropertyType = getTypeOfSymbol(prototypeProperty);
|
||||
if (prototypePropertyType !== anyType) {
|
||||
targetType = prototypePropertyType;
|
||||
}
|
||||
}
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
if (!targetType) {
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
}
|
||||
else if (rightType.flags & 32768) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length) {
|
||||
targetType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
}
|
||||
}
|
||||
else if (rightType.flags & 32768) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length !== 0) {
|
||||
var instanceType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
if (targetType) {
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
if (type.flags & 16384) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, instanceType); }));
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
return instanceType;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
@ -15913,7 +15929,7 @@ var ts;
|
||||
function checkTypeNodeAsExpression(node) {
|
||||
if (node && node.kind === 142) {
|
||||
var type = getTypeFromTypeNode(node);
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.isolatedModules;
|
||||
if (!type || (!shouldCheckIfUnknownType && type.flags & (1048703 | 132 | 258))) {
|
||||
return;
|
||||
}
|
||||
@ -16746,7 +16762,7 @@ var ts;
|
||||
checkKindsOfPropertyMemberOverrides(type, baseType);
|
||||
}
|
||||
}
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.separateCompilation)) {
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.isolatedModules)) {
|
||||
checkExpressionOrQualifiedName(baseTypeNode.expression);
|
||||
}
|
||||
var implementedTypeNodes = ts.getClassImplementsHeritageClauseElements(node);
|
||||
@ -17090,8 +17106,8 @@ var ts;
|
||||
checkExportsOnMergedDeclarations(node);
|
||||
computeEnumMemberValues(node);
|
||||
var enumIsConst = ts.isConst(node);
|
||||
if (compilerOptions.separateCompilation && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided);
|
||||
if (compilerOptions.isolatedModules && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided);
|
||||
}
|
||||
var enumSymbol = getSymbolOfNode(node);
|
||||
var firstDeclaration = ts.getDeclarationOfKind(enumSymbol, node.kind);
|
||||
@ -17163,7 +17179,7 @@ var ts;
|
||||
if (symbol.flags & 512
|
||||
&& symbol.declarations.length > 1
|
||||
&& !ts.isInAmbientContext(node)
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation)) {
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
|
||||
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
|
||||
if (firstNonAmbientClassOrFunc) {
|
||||
if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(firstNonAmbientClassOrFunc)) {
|
||||
@ -17490,6 +17506,7 @@ var ts;
|
||||
break;
|
||||
case 135:
|
||||
case 134:
|
||||
ts.forEach(node.decorators, checkFunctionExpressionBodies);
|
||||
ts.forEach(node.parameters, checkFunctionExpressionBodies);
|
||||
if (ts.isObjectLiteralMethod(node)) {
|
||||
checkFunctionExpressionOrObjectLiteralMethodBody(node);
|
||||
@ -17504,6 +17521,7 @@ var ts;
|
||||
case 193:
|
||||
checkFunctionExpressionBodies(node.expression);
|
||||
break;
|
||||
case 131:
|
||||
case 130:
|
||||
case 133:
|
||||
case 132:
|
||||
@ -18085,7 +18103,7 @@ var ts;
|
||||
}
|
||||
function isAliasResolvedToValue(symbol) {
|
||||
var target = resolveAlias(symbol);
|
||||
if (target === unknownSymbol && compilerOptions.separateCompilation) {
|
||||
if (target === unknownSymbol && compilerOptions.isolatedModules) {
|
||||
return true;
|
||||
}
|
||||
return target !== unknownSymbol && target && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target);
|
||||
@ -21643,7 +21661,7 @@ var ts;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function emitListWithSpread(elements, multiLine, trailingComma) {
|
||||
function emitListWithSpread(elements, alwaysCopy, multiLine, trailingComma) {
|
||||
var pos = 0;
|
||||
var group = 0;
|
||||
var length = elements.length;
|
||||
@ -21659,6 +21677,9 @@ var ts;
|
||||
e = e.expression;
|
||||
emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
|
||||
pos++;
|
||||
if (pos === length && group === 0 && alwaysCopy && e.kind !== 154) {
|
||||
write(".slice()");
|
||||
}
|
||||
}
|
||||
else {
|
||||
var i = pos;
|
||||
@ -21696,7 +21717,7 @@ var ts;
|
||||
write("]");
|
||||
}
|
||||
else {
|
||||
emitListWithSpread(elements, (node.flags & 512) !== 0, elements.hasTrailingComma);
|
||||
emitListWithSpread(elements, true, (node.flags & 512) !== 0, elements.hasTrailingComma);
|
||||
}
|
||||
}
|
||||
function emitObjectLiteralBody(node, numElements) {
|
||||
@ -21912,7 +21933,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function tryEmitConstantValue(node) {
|
||||
if (compilerOptions.separateCompilation) {
|
||||
if (compilerOptions.isolatedModules) {
|
||||
return false;
|
||||
}
|
||||
var constantValue = resolver.getConstantValue(node);
|
||||
@ -22022,7 +22043,7 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
write(", ");
|
||||
emitListWithSpread(node.arguments, false, false);
|
||||
emitListWithSpread(node.arguments, false, false, false);
|
||||
write(")");
|
||||
}
|
||||
function emitCallExpression(node) {
|
||||
@ -22650,7 +22671,7 @@ var ts;
|
||||
if (node.flags & 1) {
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
if (compilerOptions.module === 4) {
|
||||
if (compilerOptions.module === 4 && node.parent === currentSourceFile) {
|
||||
write(exportFunctionForFile + "(\"");
|
||||
if (node.flags & 256) {
|
||||
write("default");
|
||||
@ -24006,21 +24027,23 @@ var ts;
|
||||
}
|
||||
function shouldEmitEnumDeclaration(node) {
|
||||
var isConstEnum = ts.isConst(node);
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.separateCompilation;
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.isolatedModules;
|
||||
}
|
||||
function emitEnumDeclaration(node) {
|
||||
if (!shouldEmitEnumDeclaration(node)) {
|
||||
return;
|
||||
}
|
||||
if (!(node.flags & 1) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
if (!shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
if (!(node.flags & 1) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
@ -24042,7 +24065,7 @@ var ts;
|
||||
emitModuleMemberName(node);
|
||||
write(" = {}));");
|
||||
emitEnd(node);
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1) {
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1 && !shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
write("var ");
|
||||
@ -24053,6 +24076,14 @@ var ts;
|
||||
write(";");
|
||||
}
|
||||
if (languageVersion < 2 && node.parent === currentSourceFile) {
|
||||
if (compilerOptions.module === 4 && (node.flags & 1)) {
|
||||
writeLine();
|
||||
write(exportFunctionForFile + "(\"");
|
||||
emitDeclarationName(node);
|
||||
write("\", ");
|
||||
emitDeclarationName(node);
|
||||
write(")");
|
||||
}
|
||||
emitExportMemberAssignments(node.name);
|
||||
}
|
||||
}
|
||||
@ -24091,7 +24122,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function shouldEmitModuleDeclaration(node) {
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation);
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules);
|
||||
}
|
||||
function isModuleMergedWithES6Class(node) {
|
||||
return languageVersion === 2 && !!(resolver.getNodeCheckFlags(node) & 2048);
|
||||
@ -24639,12 +24670,25 @@ var ts;
|
||||
if (hoistedVars) {
|
||||
writeLine();
|
||||
write("var ");
|
||||
var seen = {};
|
||||
for (var i = 0; i < hoistedVars.length; ++i) {
|
||||
var local = hoistedVars[i];
|
||||
var name_21 = local.kind === 65
|
||||
? local
|
||||
: local.name;
|
||||
if (name_21) {
|
||||
var text = ts.unescapeIdentifier(name_21.text);
|
||||
if (ts.hasProperty(seen, text)) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
seen[text] = text;
|
||||
}
|
||||
}
|
||||
if (i !== 0) {
|
||||
write(", ");
|
||||
}
|
||||
if (local.kind === 202 || local.kind === 206) {
|
||||
if (local.kind === 202 || local.kind === 206 || local.kind === 205) {
|
||||
emitDeclarationName(local);
|
||||
}
|
||||
else {
|
||||
@ -24675,6 +24719,9 @@ var ts;
|
||||
}
|
||||
return exportedDeclarations;
|
||||
function visit(node) {
|
||||
if (node.flags & 2) {
|
||||
return;
|
||||
}
|
||||
if (node.kind === 201) {
|
||||
if (!hoistedFunctionDeclarations) {
|
||||
hoistedFunctionDeclarations = [];
|
||||
@ -24689,24 +24736,35 @@ var ts;
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206 && shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
if (node.kind === 205) {
|
||||
if (shouldEmitEnumDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206) {
|
||||
if (shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 199 || node.kind === 153) {
|
||||
if (shouldHoistVariable(node, false)) {
|
||||
var name_21 = node.name;
|
||||
if (name_21.kind === 65) {
|
||||
var name_22 = node.name;
|
||||
if (name_22.kind === 65) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(name_21);
|
||||
hoistedVars.push(name_22);
|
||||
}
|
||||
else {
|
||||
ts.forEachChild(name_21, visit);
|
||||
ts.forEachChild(name_22, visit);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -25020,7 +25078,7 @@ var ts;
|
||||
paramEmitted = true;
|
||||
}
|
||||
}
|
||||
if (ts.isExternalModule(node) || compilerOptions.separateCompilation) {
|
||||
if (ts.isExternalModule(node) || compilerOptions.isolatedModules) {
|
||||
if (languageVersion >= 2) {
|
||||
emitES6Module(node, startIndex);
|
||||
}
|
||||
@ -25376,7 +25434,7 @@ var ts;
|
||||
ts.emitTime = 0;
|
||||
ts.ioReadTime = 0;
|
||||
ts.ioWriteTime = 0;
|
||||
ts.version = "1.5.2";
|
||||
ts.version = "1.5.3";
|
||||
var carriageReturnLineFeed = "\r\n";
|
||||
var lineFeed = "\n";
|
||||
function findConfigFile(searchPath) {
|
||||
@ -25552,14 +25610,14 @@ var ts;
|
||||
if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) {
|
||||
return { diagnostics: [], sourceMaps: undefined, emitSkipped: true };
|
||||
}
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile);
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(options.out ? undefined : sourceFile);
|
||||
var start = new Date().getTime();
|
||||
var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile);
|
||||
ts.emitTime += new Date().getTime() - start;
|
||||
return emitResult;
|
||||
}
|
||||
function getSourceFile(fileName) {
|
||||
fileName = host.getCanonicalFileName(fileName);
|
||||
fileName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined;
|
||||
}
|
||||
function getDiagnosticsHelper(sourceFile, getDiagnostics) {
|
||||
@ -25650,7 +25708,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) {
|
||||
var canonicalName = host.getCanonicalFileName(fileName);
|
||||
var canonicalName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
if (ts.hasProperty(filesByName, canonicalName)) {
|
||||
return getSourceFileFromCache(fileName, canonicalName, false);
|
||||
}
|
||||
@ -25793,18 +25851,18 @@ var ts;
|
||||
return allFilesBelongToPath;
|
||||
}
|
||||
function verifyCompilerOptions() {
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
@ -25834,14 +25892,14 @@ var ts;
|
||||
}
|
||||
var languageVersion = options.target || 0;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
}
|
||||
var firstNonExternalModuleSourceFile = ts.forEach(files, function (f) { return !ts.isExternalModule(f) && !ts.isDeclarationFile(f) ? f : undefined; });
|
||||
if (firstNonExternalModuleSourceFile) {
|
||||
var span = ts.getErrorSpanForNode(firstNonExternalModuleSourceFile, firstNonExternalModuleSourceFile);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided));
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided));
|
||||
}
|
||||
}
|
||||
else if (firstExternalModuleSourceFile && languageVersion < 2 && !options.module) {
|
||||
@ -26402,10 +26460,10 @@ var ts;
|
||||
ts.forEach(program.getSourceFiles(), function (sourceFile) {
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
var nameToDeclarations = sourceFile.getNamedDeclarations();
|
||||
for (var name_22 in nameToDeclarations) {
|
||||
var declarations = ts.getProperty(nameToDeclarations, name_22);
|
||||
for (var name_23 in nameToDeclarations) {
|
||||
var declarations = ts.getProperty(nameToDeclarations, name_23);
|
||||
if (declarations) {
|
||||
var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_22);
|
||||
var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_23);
|
||||
if (!matches) {
|
||||
continue;
|
||||
}
|
||||
@ -26416,14 +26474,14 @@ var ts;
|
||||
if (!containers) {
|
||||
return undefined;
|
||||
}
|
||||
matches = patternMatcher.getMatches(containers, name_22);
|
||||
matches = patternMatcher.getMatches(containers, name_23);
|
||||
if (!matches) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
var fileName = sourceFile.fileName;
|
||||
var matchKind = bestMatchKind(matches);
|
||||
rawItems.push({ name: name_22, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
|
||||
rawItems.push({ name: name_23, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -26753,9 +26811,9 @@ var ts;
|
||||
case 199:
|
||||
case 153:
|
||||
var variableDeclarationNode;
|
||||
var name_23;
|
||||
var name_24;
|
||||
if (node.kind === 153) {
|
||||
name_23 = node.name;
|
||||
name_24 = node.name;
|
||||
variableDeclarationNode = node;
|
||||
while (variableDeclarationNode && variableDeclarationNode.kind !== 199) {
|
||||
variableDeclarationNode = variableDeclarationNode.parent;
|
||||
@ -26765,16 +26823,16 @@ var ts;
|
||||
else {
|
||||
ts.Debug.assert(!ts.isBindingPattern(node.name));
|
||||
variableDeclarationNode = node;
|
||||
name_23 = node.name;
|
||||
name_24 = node.name;
|
||||
}
|
||||
if (ts.isConst(variableDeclarationNode)) {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.constElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.constElement);
|
||||
}
|
||||
else if (ts.isLet(variableDeclarationNode)) {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.letElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.letElement);
|
||||
}
|
||||
else {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.variableElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.variableElement);
|
||||
}
|
||||
case 136:
|
||||
return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement);
|
||||
@ -28766,9 +28824,9 @@ var ts;
|
||||
}
|
||||
Rules.prototype.getRuleName = function (rule) {
|
||||
var o = this;
|
||||
for (var name_24 in o) {
|
||||
if (o[name_24] === rule) {
|
||||
return name_24;
|
||||
for (var name_25 in o) {
|
||||
if (o[name_25] === rule) {
|
||||
return name_25;
|
||||
}
|
||||
}
|
||||
throw new Error("Unknown rule");
|
||||
@ -31298,7 +31356,7 @@ var ts;
|
||||
}
|
||||
function transpile(input, compilerOptions, fileName, diagnostics) {
|
||||
var options = compilerOptions ? ts.clone(compilerOptions) : getDefaultCompilerOptions();
|
||||
options.separateCompilation = true;
|
||||
options.isolatedModules = true;
|
||||
options.allowNonTsExtensions = true;
|
||||
var inputFileName = fileName || "module.ts";
|
||||
var sourceFile = ts.createSourceFile(inputFileName, input, options.target);
|
||||
@ -31339,7 +31397,25 @@ var ts;
|
||||
if (textChangeRange) {
|
||||
if (version !== sourceFile.version) {
|
||||
if (!ts.disableIncrementalParsing) {
|
||||
var newSourceFile = ts.updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks);
|
||||
var newText;
|
||||
var prefix = textChangeRange.span.start !== 0
|
||||
? sourceFile.text.substr(0, textChangeRange.span.start)
|
||||
: "";
|
||||
var suffix = ts.textSpanEnd(textChangeRange.span) !== sourceFile.text.length
|
||||
? sourceFile.text.substr(ts.textSpanEnd(textChangeRange.span))
|
||||
: "";
|
||||
if (textChangeRange.newLength === 0) {
|
||||
newText = prefix && suffix ? prefix + suffix : prefix || suffix;
|
||||
}
|
||||
else {
|
||||
var changedText = scriptSnapshot.getText(textChangeRange.span.start, textChangeRange.span.start + textChangeRange.newLength);
|
||||
newText = prefix && suffix
|
||||
? prefix + changedText + suffix
|
||||
: prefix
|
||||
? (prefix + changedText)
|
||||
: (changedText + suffix);
|
||||
}
|
||||
var newSourceFile = ts.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);
|
||||
setSourceFileFields(newSourceFile, scriptSnapshot, version);
|
||||
newSourceFile.nameTable = undefined;
|
||||
return newSourceFile;
|
||||
@ -31751,6 +31827,7 @@ var ts;
|
||||
var syntaxTreeCache = new SyntaxTreeCache(host);
|
||||
var ruleProvider;
|
||||
var program;
|
||||
var lastProjectVersion;
|
||||
var useCaseSensitivefileNames = false;
|
||||
var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken());
|
||||
if (!ts.localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) {
|
||||
@ -31780,6 +31857,15 @@ var ts;
|
||||
return ruleProvider;
|
||||
}
|
||||
function synchronizeHostData() {
|
||||
if (host.getProjectVersion) {
|
||||
var hostProjectVersion = host.getProjectVersion();
|
||||
if (hostProjectVersion) {
|
||||
if (lastProjectVersion === hostProjectVersion) {
|
||||
return;
|
||||
}
|
||||
lastProjectVersion = hostProjectVersion;
|
||||
}
|
||||
}
|
||||
var hostCache = new HostCache(host, getCanonicalFileName);
|
||||
if (programUpToDate()) {
|
||||
return;
|
||||
@ -32451,10 +32537,10 @@ var ts;
|
||||
for (var _i = 0, _a = program.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var sourceFile = _a[_i];
|
||||
var nameTable = getNameTable(sourceFile);
|
||||
for (var name_25 in nameTable) {
|
||||
if (!allNames[name_25]) {
|
||||
allNames[name_25] = name_25;
|
||||
var displayName = getCompletionEntryDisplayName(name_25, target, true);
|
||||
for (var name_26 in nameTable) {
|
||||
if (!allNames[name_26]) {
|
||||
allNames[name_26] = name_26;
|
||||
var displayName = getCompletionEntryDisplayName(name_26, target, true);
|
||||
if (displayName) {
|
||||
var entry = {
|
||||
name: displayName,
|
||||
@ -34133,17 +34219,17 @@ var ts;
|
||||
if (isNameOfPropertyAssignment(node)) {
|
||||
var objectLiteral = node.parent.parent;
|
||||
var contextualType = typeChecker.getContextualType(objectLiteral);
|
||||
var name_26 = node.text;
|
||||
var name_27 = node.text;
|
||||
if (contextualType) {
|
||||
if (contextualType.flags & 16384) {
|
||||
var unionProperty = contextualType.getProperty(name_26);
|
||||
var unionProperty = contextualType.getProperty(name_27);
|
||||
if (unionProperty) {
|
||||
return [unionProperty];
|
||||
}
|
||||
else {
|
||||
var result_4 = [];
|
||||
ts.forEach(contextualType.types, function (t) {
|
||||
var symbol = t.getProperty(name_26);
|
||||
var symbol = t.getProperty(name_27);
|
||||
if (symbol) {
|
||||
result_4.push(symbol);
|
||||
}
|
||||
@ -34152,7 +34238,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var symbol_1 = contextualType.getProperty(name_26);
|
||||
var symbol_1 = contextualType.getProperty(name_27);
|
||||
if (symbol_1) {
|
||||
return [symbol_1];
|
||||
}
|
||||
@ -34529,10 +34615,10 @@ var ts;
|
||||
var kind = triviaScanner.scan();
|
||||
var end = triviaScanner.getTextPos();
|
||||
var width = end - start;
|
||||
if (!ts.isTrivia(kind)) {
|
||||
return;
|
||||
}
|
||||
if (ts.textSpanIntersectsWith(span, start, width)) {
|
||||
if (!ts.isTrivia(kind)) {
|
||||
return;
|
||||
}
|
||||
if (ts.isComment(kind)) {
|
||||
pushClassification(start, width, 1);
|
||||
continue;
|
||||
|
||||
3
bin/typescript.d.ts
vendored
3
bin/typescript.d.ts
vendored
@ -1114,7 +1114,7 @@ declare module "typescript" {
|
||||
target?: ScriptTarget;
|
||||
version?: boolean;
|
||||
watch?: boolean;
|
||||
separateCompilation?: boolean;
|
||||
isolatedModules?: boolean;
|
||||
emitDecoratorMetadata?: boolean;
|
||||
[option: string]: string | number | boolean;
|
||||
}
|
||||
@ -1379,6 +1379,7 @@ declare module "typescript" {
|
||||
interface LanguageServiceHost {
|
||||
getCompilationSettings(): CompilerOptions;
|
||||
getNewLine?(): string;
|
||||
getProjectVersion?(): string;
|
||||
getScriptFileNames(): string[];
|
||||
getScriptVersion(fileName: string): string;
|
||||
getScriptSnapshot(fileName: string): IScriptSnapshot;
|
||||
|
||||
@ -1129,9 +1129,18 @@ var ts;
|
||||
return 3;
|
||||
return 2;
|
||||
}
|
||||
// Per RFC 1738 'file' URI schema has the shape file://<host>/<path>
|
||||
// if <host> is omitted then it is assumed that host value is 'localhost',
|
||||
// however slash after the omitted <host> is not removed.
|
||||
// file:///folder1/file1 - this is a correct URI
|
||||
// file://folder2/file2 - this is an incorrect URI
|
||||
if (path.lastIndexOf("file:///", 0) === 0) {
|
||||
return "file:///".length;
|
||||
}
|
||||
var idx = path.indexOf('://');
|
||||
if (idx !== -1)
|
||||
return idx + 3;
|
||||
if (idx !== -1) {
|
||||
return idx + "://".length;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
ts.getRootLength = getRootLength;
|
||||
@ -1822,8 +1831,8 @@ var ts;
|
||||
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." },
|
||||
Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--separateCompilation' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--separateCompilation' flag is provided." },
|
||||
Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--isolatedModules' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--isolatedModules' flag is provided." },
|
||||
Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode: { code: 1210, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}'. Class definitions are automatically in strict mode." },
|
||||
A_class_declaration_without_the_default_modifier_must_have_a_name: { code: 1211, category: ts.DiagnosticCategory.Error, key: "A class declaration without the 'default' modifier must have a name" },
|
||||
Identifier_expected_0_is_a_reserved_word_in_strict_mode: { code: 1212, category: ts.DiagnosticCategory.Error, key: "Identifier expected. '{0}' is a reserved word in strict mode" },
|
||||
@ -2106,11 +2115,11 @@ var ts;
|
||||
Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." },
|
||||
Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." },
|
||||
Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_separateCompilation: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'separateCompilation'." },
|
||||
Option_declaration_cannot_be_specified_with_option_separateCompilation: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'separateCompilation'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'separateCompilation'." },
|
||||
Option_out_cannot_be_specified_with_option_separateCompilation: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'separateCompilation'." },
|
||||
Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'separateCompilation' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_isolatedModules: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'isolatedModules'." },
|
||||
Option_declaration_cannot_be_specified_with_option_isolatedModules: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'isolatedModules'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'isolatedModules'." },
|
||||
Option_out_cannot_be_specified_with_option_isolatedModules: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'isolatedModules'." },
|
||||
Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'isolatedModules' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_inlineSourceMap: { code: 5048, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_sourceRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5049, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_mapRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5050, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
@ -5468,7 +5477,7 @@ var ts;
|
||||
if ((isExternalModule(sourceFile) || !compilerOptions.out)) {
|
||||
// 1. in-browser single file compilation scenario
|
||||
// 2. non .js file
|
||||
return compilerOptions.separateCompilation || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
return compilerOptions.isolatedModules || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -11418,7 +11427,7 @@ var ts;
|
||||
var symbol = getSymbolOfNode(node);
|
||||
var target = resolveAlias(symbol);
|
||||
if (target) {
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.separateCompilation) ||
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.isolatedModules) ||
|
||||
(target !== unknownSymbol && (target.flags & 107455 /* Value */) && !isConstEnumOrConstEnumOnlyModule(target));
|
||||
if (markAlias) {
|
||||
markAliasSymbolAsReferenced(symbol);
|
||||
@ -12945,7 +12954,15 @@ var ts;
|
||||
function getTypeOfAlias(symbol) {
|
||||
var links = getSymbolLinks(symbol);
|
||||
if (!links.type) {
|
||||
links.type = getTypeOfSymbol(resolveAlias(symbol));
|
||||
var targetSymbol = resolveAlias(symbol);
|
||||
// It only makes sense to get the type of a value symbol. If the result of resolving
|
||||
// the alias is not a value, then it has no type. To get the type associated with a
|
||||
// type symbol, call getDeclaredTypeOfSymbol.
|
||||
// This check is important because without it, a call to getTypeOfSymbol could end
|
||||
// up recursively calling getTypeOfAlias, causing a stack overflow.
|
||||
links.type = targetSymbol.flags & 107455 /* Value */
|
||||
? getTypeOfSymbol(targetSymbol)
|
||||
: unknownType;
|
||||
}
|
||||
return links.type;
|
||||
}
|
||||
@ -14021,7 +14038,17 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Since removeSubtypes checks the subtype relation, and the subtype relation on a union
|
||||
// may attempt to reduce a union, it is possible that removeSubtypes could be called
|
||||
// recursively on the same set of types. The removeSubtypesStack is used to track which
|
||||
// sets of types are currently undergoing subtype reduction.
|
||||
var removeSubtypesStack = [];
|
||||
function removeSubtypes(types) {
|
||||
var typeListId = getTypeListId(types);
|
||||
if (removeSubtypesStack.lastIndexOf(typeListId) >= 0) {
|
||||
return;
|
||||
}
|
||||
removeSubtypesStack.push(typeListId);
|
||||
var i = types.length;
|
||||
while (i > 0) {
|
||||
i--;
|
||||
@ -14029,6 +14056,7 @@ var ts;
|
||||
types.splice(i, 1);
|
||||
}
|
||||
}
|
||||
removeSubtypesStack.pop();
|
||||
}
|
||||
function containsAnyType(types) {
|
||||
for (var _i = 0; _i < types.length; _i++) {
|
||||
@ -15730,36 +15758,37 @@ var ts;
|
||||
if (!isTypeSubtypeOf(rightType, globalFunctionType)) {
|
||||
return type;
|
||||
}
|
||||
// Target type is type of prototype property
|
||||
var targetType;
|
||||
var prototypeProperty = getPropertyOfType(rightType, "prototype");
|
||||
if (prototypeProperty) {
|
||||
var targetType = getTypeOfSymbol(prototypeProperty);
|
||||
if (targetType !== anyType) {
|
||||
// Narrow to the target type if it's a subtype of the current type
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
// If the current type is a union type, remove all constituents that aren't subtypes of the target.
|
||||
if (type.flags & 16384 /* Union */) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
// Target type is type of the protoype property
|
||||
var prototypePropertyType = getTypeOfSymbol(prototypeProperty);
|
||||
if (prototypePropertyType !== anyType) {
|
||||
targetType = prototypePropertyType;
|
||||
}
|
||||
}
|
||||
// Target type is type of construct signature
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048 /* Interface */) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
if (!targetType) {
|
||||
// Target type is type of construct signature
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048 /* Interface */) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
}
|
||||
else if (rightType.flags & 32768 /* Anonymous */) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1 /* Construct */);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length) {
|
||||
targetType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
}
|
||||
}
|
||||
else if (rightType.flags & 32768 /* Anonymous */) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1 /* Construct */);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length !== 0) {
|
||||
var instanceType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
// Pickup type from union types
|
||||
if (targetType) {
|
||||
// Narrow to the target type if it's a subtype of the current type
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
// If the current type is a union type, remove all constituents that aren't subtypes of the target.
|
||||
if (type.flags & 16384 /* Union */) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, instanceType); }));
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
return instanceType;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
@ -18853,7 +18882,7 @@ var ts;
|
||||
// serialize the type metadata.
|
||||
if (node && node.kind === 142 /* TypeReference */) {
|
||||
var type = getTypeFromTypeNode(node);
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.isolatedModules;
|
||||
if (!type || (!shouldCheckIfUnknownType && type.flags & (1048703 /* Intrinsic */ | 132 /* NumberLike */ | 258 /* StringLike */))) {
|
||||
return;
|
||||
}
|
||||
@ -19863,7 +19892,7 @@ var ts;
|
||||
checkKindsOfPropertyMemberOverrides(type, baseType);
|
||||
}
|
||||
}
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.separateCompilation)) {
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.isolatedModules)) {
|
||||
// Check that base type can be evaluated as expression
|
||||
checkExpressionOrQualifiedName(baseTypeNode.expression);
|
||||
}
|
||||
@ -20232,8 +20261,8 @@ var ts;
|
||||
checkExportsOnMergedDeclarations(node);
|
||||
computeEnumMemberValues(node);
|
||||
var enumIsConst = ts.isConst(node);
|
||||
if (compilerOptions.separateCompilation && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided);
|
||||
if (compilerOptions.isolatedModules && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided);
|
||||
}
|
||||
// Spec 2014 - Section 9.3:
|
||||
// It isn't possible for one enum declaration to continue the automatic numbering sequence of another,
|
||||
@ -20315,7 +20344,7 @@ var ts;
|
||||
if (symbol.flags & 512 /* ValueModule */
|
||||
&& symbol.declarations.length > 1
|
||||
&& !ts.isInAmbientContext(node)
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation)) {
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
|
||||
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
|
||||
if (firstNonAmbientClassOrFunc) {
|
||||
if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(firstNonAmbientClassOrFunc)) {
|
||||
@ -20666,6 +20695,7 @@ var ts;
|
||||
break;
|
||||
case 135 /* MethodDeclaration */:
|
||||
case 134 /* MethodSignature */:
|
||||
ts.forEach(node.decorators, checkFunctionExpressionBodies);
|
||||
ts.forEach(node.parameters, checkFunctionExpressionBodies);
|
||||
if (ts.isObjectLiteralMethod(node)) {
|
||||
checkFunctionExpressionOrObjectLiteralMethodBody(node);
|
||||
@ -20680,6 +20710,7 @@ var ts;
|
||||
case 193 /* WithStatement */:
|
||||
checkFunctionExpressionBodies(node.expression);
|
||||
break;
|
||||
case 131 /* Decorator */:
|
||||
case 130 /* Parameter */:
|
||||
case 133 /* PropertyDeclaration */:
|
||||
case 132 /* PropertySignature */:
|
||||
@ -21317,7 +21348,7 @@ var ts;
|
||||
}
|
||||
function isAliasResolvedToValue(symbol) {
|
||||
var target = resolveAlias(symbol);
|
||||
if (target === unknownSymbol && compilerOptions.separateCompilation) {
|
||||
if (target === unknownSymbol && compilerOptions.isolatedModules) {
|
||||
return true;
|
||||
}
|
||||
// const enums and modules that contain only const enums are not considered values from the emit perespective
|
||||
@ -25321,7 +25352,7 @@ var ts;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function emitListWithSpread(elements, multiLine, trailingComma) {
|
||||
function emitListWithSpread(elements, alwaysCopy, multiLine, trailingComma) {
|
||||
var pos = 0;
|
||||
var group = 0;
|
||||
var length = elements.length;
|
||||
@ -25338,6 +25369,9 @@ var ts;
|
||||
e = e.expression;
|
||||
emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
|
||||
pos++;
|
||||
if (pos === length && group === 0 && alwaysCopy && e.kind !== 154 /* ArrayLiteralExpression */) {
|
||||
write(".slice()");
|
||||
}
|
||||
}
|
||||
else {
|
||||
var i = pos;
|
||||
@ -25375,7 +25409,7 @@ var ts;
|
||||
write("]");
|
||||
}
|
||||
else {
|
||||
emitListWithSpread(elements, (node.flags & 512 /* MultiLine */) !== 0,
|
||||
emitListWithSpread(elements, true, (node.flags & 512 /* MultiLine */) !== 0,
|
||||
/*trailingComma*/ elements.hasTrailingComma);
|
||||
}
|
||||
}
|
||||
@ -25627,7 +25661,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function tryEmitConstantValue(node) {
|
||||
if (compilerOptions.separateCompilation) {
|
||||
if (compilerOptions.isolatedModules) {
|
||||
// do not inline enum values in separate compilation mode
|
||||
return false;
|
||||
}
|
||||
@ -25747,7 +25781,7 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
write(", ");
|
||||
emitListWithSpread(node.arguments, false, false);
|
||||
emitListWithSpread(node.arguments, false, false, false);
|
||||
write(")");
|
||||
}
|
||||
function emitCallExpression(node) {
|
||||
@ -26451,7 +26485,8 @@ var ts;
|
||||
if (node.flags & 1 /* Export */) {
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
if (compilerOptions.module === 4 /* System */) {
|
||||
// emit call to exporter only for top level nodes
|
||||
if (compilerOptions.module === 4 /* System */ && node.parent === currentSourceFile) {
|
||||
// emit export default <smth> as
|
||||
// export("default", <smth>)
|
||||
write(exportFunctionForFile + "(\"");
|
||||
@ -28021,22 +28056,25 @@ var ts;
|
||||
}
|
||||
function shouldEmitEnumDeclaration(node) {
|
||||
var isConstEnum = ts.isConst(node);
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.separateCompilation;
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.isolatedModules;
|
||||
}
|
||||
function emitEnumDeclaration(node) {
|
||||
// const enums are completely erased during compilation.
|
||||
if (!shouldEmitEnumDeclaration(node)) {
|
||||
return;
|
||||
}
|
||||
if (!(node.flags & 1 /* Export */) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
if (!shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
// do not emit var if variable was already hoisted
|
||||
if (!(node.flags & 1 /* Export */) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
@ -28058,7 +28096,8 @@ var ts;
|
||||
emitModuleMemberName(node);
|
||||
write(" = {}));");
|
||||
emitEnd(node);
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1 /* Export */) {
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1 /* Export */ && !shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
// do not emit var if variable was already hoisted
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
write("var ");
|
||||
@ -28069,6 +28108,15 @@ var ts;
|
||||
write(";");
|
||||
}
|
||||
if (languageVersion < 2 /* ES6 */ && node.parent === currentSourceFile) {
|
||||
if (compilerOptions.module === 4 /* System */ && (node.flags & 1 /* Export */)) {
|
||||
// write the call to exporter for enum
|
||||
writeLine();
|
||||
write(exportFunctionForFile + "(\"");
|
||||
emitDeclarationName(node);
|
||||
write("\", ");
|
||||
emitDeclarationName(node);
|
||||
write(")");
|
||||
}
|
||||
emitExportMemberAssignments(node.name);
|
||||
}
|
||||
}
|
||||
@ -28107,7 +28155,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function shouldEmitModuleDeclaration(node) {
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation);
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules);
|
||||
}
|
||||
function isModuleMergedWithES6Class(node) {
|
||||
return languageVersion === 2 /* ES6 */ && !!(resolver.getNodeCheckFlags(node) & 2048 /* LexicalModuleMergesWithClass */);
|
||||
@ -28708,12 +28756,26 @@ var ts;
|
||||
if (hoistedVars) {
|
||||
writeLine();
|
||||
write("var ");
|
||||
var seen = {};
|
||||
for (var i = 0; i < hoistedVars.length; ++i) {
|
||||
var local = hoistedVars[i];
|
||||
var name_21 = local.kind === 65 /* Identifier */
|
||||
? local
|
||||
: local.name;
|
||||
if (name_21) {
|
||||
// do not emit duplicate entries (in case of declaration merging) in the list of hoisted variables
|
||||
var text = ts.unescapeIdentifier(name_21.text);
|
||||
if (ts.hasProperty(seen, text)) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
seen[text] = text;
|
||||
}
|
||||
}
|
||||
if (i !== 0) {
|
||||
write(", ");
|
||||
}
|
||||
if (local.kind === 202 /* ClassDeclaration */ || local.kind === 206 /* ModuleDeclaration */) {
|
||||
if (local.kind === 202 /* ClassDeclaration */ || local.kind === 206 /* ModuleDeclaration */ || local.kind === 205 /* EnumDeclaration */) {
|
||||
emitDeclarationName(local);
|
||||
}
|
||||
else {
|
||||
@ -28744,6 +28806,9 @@ var ts;
|
||||
}
|
||||
return exportedDeclarations;
|
||||
function visit(node) {
|
||||
if (node.flags & 2 /* Ambient */) {
|
||||
return;
|
||||
}
|
||||
if (node.kind === 201 /* FunctionDeclaration */) {
|
||||
if (!hoistedFunctionDeclarations) {
|
||||
hoistedFunctionDeclarations = [];
|
||||
@ -28752,31 +28817,41 @@ var ts;
|
||||
return;
|
||||
}
|
||||
if (node.kind === 202 /* ClassDeclaration */) {
|
||||
// TODO: rename block scoped classes
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206 /* ModuleDeclaration */ && shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
if (node.kind === 205 /* EnumDeclaration */) {
|
||||
if (shouldEmitEnumDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206 /* ModuleDeclaration */) {
|
||||
if (shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 199 /* VariableDeclaration */ || node.kind === 153 /* BindingElement */) {
|
||||
if (shouldHoistVariable(node, false)) {
|
||||
var name_21 = node.name;
|
||||
if (name_21.kind === 65 /* Identifier */) {
|
||||
var name_22 = node.name;
|
||||
if (name_22.kind === 65 /* Identifier */) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(name_21);
|
||||
hoistedVars.push(name_22);
|
||||
}
|
||||
else {
|
||||
ts.forEachChild(name_21, visit);
|
||||
ts.forEachChild(name_22, visit);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -29180,7 +29255,7 @@ var ts;
|
||||
paramEmitted = true;
|
||||
}
|
||||
}
|
||||
if (ts.isExternalModule(node) || compilerOptions.separateCompilation) {
|
||||
if (ts.isExternalModule(node) || compilerOptions.isolatedModules) {
|
||||
if (languageVersion >= 2 /* ES6 */) {
|
||||
emitES6Module(node, startIndex);
|
||||
}
|
||||
@ -29571,7 +29646,7 @@ var ts;
|
||||
/* @internal */ ts.ioReadTime = 0;
|
||||
/* @internal */ ts.ioWriteTime = 0;
|
||||
/** The version of the TypeScript compiler release */
|
||||
ts.version = "1.5.2";
|
||||
ts.version = "1.5.3";
|
||||
var carriageReturnLineFeed = "\r\n";
|
||||
var lineFeed = "\n";
|
||||
function findConfigFile(searchPath) {
|
||||
@ -29755,14 +29830,19 @@ var ts;
|
||||
// Create the emit resolver outside of the "emitTime" tracking code below. That way
|
||||
// any cost associated with it (like type checking) are appropriate associated with
|
||||
// the type-checking counter.
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile);
|
||||
//
|
||||
// If the -out option is specified, we should not pass the source file to getEmitResolver.
|
||||
// This is because in the -out scenario all files need to be emitted, and therefore all
|
||||
// files need to be type checked. And the way to specify that all files need to be type
|
||||
// checked is to not pass the file to getEmitResolver.
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(options.out ? undefined : sourceFile);
|
||||
var start = new Date().getTime();
|
||||
var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile);
|
||||
ts.emitTime += new Date().getTime() - start;
|
||||
return emitResult;
|
||||
}
|
||||
function getSourceFile(fileName) {
|
||||
fileName = host.getCanonicalFileName(fileName);
|
||||
fileName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined;
|
||||
}
|
||||
function getDiagnosticsHelper(sourceFile, getDiagnostics) {
|
||||
@ -29855,7 +29935,7 @@ var ts;
|
||||
}
|
||||
// Get source file from normalized fileName
|
||||
function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) {
|
||||
var canonicalName = host.getCanonicalFileName(fileName);
|
||||
var canonicalName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
if (ts.hasProperty(filesByName, canonicalName)) {
|
||||
// We've already looked for this file, use cached result
|
||||
return getSourceFileFromCache(fileName, canonicalName, false);
|
||||
@ -30013,18 +30093,18 @@ var ts;
|
||||
return allFilesBelongToPath;
|
||||
}
|
||||
function verifyCompilerOptions() {
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
@ -30055,14 +30135,14 @@ var ts;
|
||||
}
|
||||
var languageVersion = options.target || 0 /* ES3 */;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2 /* ES6 */) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
}
|
||||
var firstNonExternalModuleSourceFile = ts.forEach(files, function (f) { return !ts.isExternalModule(f) && !ts.isDeclarationFile(f) ? f : undefined; });
|
||||
if (firstNonExternalModuleSourceFile) {
|
||||
var span = ts.getErrorSpanForNode(firstNonExternalModuleSourceFile, firstNonExternalModuleSourceFile);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided));
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided));
|
||||
}
|
||||
}
|
||||
else if (firstExternalModuleSourceFile && languageVersion < 2 /* ES6 */ && !options.module) {
|
||||
@ -30251,7 +30331,7 @@ var ts;
|
||||
paramType: ts.Diagnostics.LOCATION
|
||||
},
|
||||
{
|
||||
name: "separateCompilation",
|
||||
name: "isolatedModules",
|
||||
type: "boolean"
|
||||
},
|
||||
{
|
||||
@ -30684,12 +30764,12 @@ var ts;
|
||||
ts.forEach(program.getSourceFiles(), function (sourceFile) {
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
var nameToDeclarations = sourceFile.getNamedDeclarations();
|
||||
for (var name_22 in nameToDeclarations) {
|
||||
var declarations = ts.getProperty(nameToDeclarations, name_22);
|
||||
for (var name_23 in nameToDeclarations) {
|
||||
var declarations = ts.getProperty(nameToDeclarations, name_23);
|
||||
if (declarations) {
|
||||
// First do a quick check to see if the name of the declaration matches the
|
||||
// last portion of the (possibly) dotted name they're searching for.
|
||||
var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_22);
|
||||
var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_23);
|
||||
if (!matches) {
|
||||
continue;
|
||||
}
|
||||
@ -30702,14 +30782,14 @@ var ts;
|
||||
if (!containers) {
|
||||
return undefined;
|
||||
}
|
||||
matches = patternMatcher.getMatches(containers, name_22);
|
||||
matches = patternMatcher.getMatches(containers, name_23);
|
||||
if (!matches) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
var fileName = sourceFile.fileName;
|
||||
var matchKind = bestMatchKind(matches);
|
||||
rawItems.push({ name: name_22, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
|
||||
rawItems.push({ name: name_23, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -31092,9 +31172,9 @@ var ts;
|
||||
case 199 /* VariableDeclaration */:
|
||||
case 153 /* BindingElement */:
|
||||
var variableDeclarationNode;
|
||||
var name_23;
|
||||
var name_24;
|
||||
if (node.kind === 153 /* BindingElement */) {
|
||||
name_23 = node.name;
|
||||
name_24 = node.name;
|
||||
variableDeclarationNode = node;
|
||||
// binding elements are added only for variable declarations
|
||||
// bubble up to the containing variable declaration
|
||||
@ -31106,16 +31186,16 @@ var ts;
|
||||
else {
|
||||
ts.Debug.assert(!ts.isBindingPattern(node.name));
|
||||
variableDeclarationNode = node;
|
||||
name_23 = node.name;
|
||||
name_24 = node.name;
|
||||
}
|
||||
if (ts.isConst(variableDeclarationNode)) {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.constElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.constElement);
|
||||
}
|
||||
else if (ts.isLet(variableDeclarationNode)) {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.letElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.letElement);
|
||||
}
|
||||
else {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.variableElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.variableElement);
|
||||
}
|
||||
case 136 /* Constructor */:
|
||||
return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement);
|
||||
@ -33702,9 +33782,9 @@ var ts;
|
||||
}
|
||||
Rules.prototype.getRuleName = function (rule) {
|
||||
var o = this;
|
||||
for (var name_24 in o) {
|
||||
if (o[name_24] === rule) {
|
||||
return name_24;
|
||||
for (var name_25 in o) {
|
||||
if (o[name_25] === rule) {
|
||||
return name_25;
|
||||
}
|
||||
}
|
||||
throw new Error("Unknown rule");
|
||||
@ -36592,12 +36672,12 @@ var ts;
|
||||
* This function will compile source text from 'input' argument using specified compiler options.
|
||||
* If not options are provided - it will use a set of default compiler options.
|
||||
* Extra compiler options that will unconditionally be used bu this function are:
|
||||
* - separateCompilation = true
|
||||
* - isolatedModules = true
|
||||
* - allowNonTsExtensions = true
|
||||
*/
|
||||
function transpile(input, compilerOptions, fileName, diagnostics) {
|
||||
var options = compilerOptions ? ts.clone(compilerOptions) : getDefaultCompilerOptions();
|
||||
options.separateCompilation = true;
|
||||
options.isolatedModules = true;
|
||||
// Filename can be non-ts file.
|
||||
options.allowNonTsExtensions = true;
|
||||
// Parse
|
||||
@ -36648,7 +36728,30 @@ var ts;
|
||||
if (version !== sourceFile.version) {
|
||||
// Once incremental parsing is ready, then just call into this function.
|
||||
if (!ts.disableIncrementalParsing) {
|
||||
var newSourceFile = ts.updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks);
|
||||
var newText;
|
||||
// grab the fragment from the beginning of the original text to the beginning of the span
|
||||
var prefix = textChangeRange.span.start !== 0
|
||||
? sourceFile.text.substr(0, textChangeRange.span.start)
|
||||
: "";
|
||||
// grab the fragment from the end of the span till the end of the original text
|
||||
var suffix = ts.textSpanEnd(textChangeRange.span) !== sourceFile.text.length
|
||||
? sourceFile.text.substr(ts.textSpanEnd(textChangeRange.span))
|
||||
: "";
|
||||
if (textChangeRange.newLength === 0) {
|
||||
// edit was a deletion - just combine prefix and suffix
|
||||
newText = prefix && suffix ? prefix + suffix : prefix || suffix;
|
||||
}
|
||||
else {
|
||||
// it was actual edit, fetch the fragment of new text that correspond to new span
|
||||
var changedText = scriptSnapshot.getText(textChangeRange.span.start, textChangeRange.span.start + textChangeRange.newLength);
|
||||
// combine prefix, changed text and suffix
|
||||
newText = prefix && suffix
|
||||
? prefix + changedText + suffix
|
||||
: prefix
|
||||
? (prefix + changedText)
|
||||
: (changedText + suffix);
|
||||
}
|
||||
var newSourceFile = ts.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);
|
||||
setSourceFileFields(newSourceFile, scriptSnapshot, version);
|
||||
// after incremental parsing nameTable might not be up-to-date
|
||||
// drop it so it can be lazily recreated later
|
||||
@ -37125,6 +37228,7 @@ var ts;
|
||||
var syntaxTreeCache = new SyntaxTreeCache(host);
|
||||
var ruleProvider;
|
||||
var program;
|
||||
var lastProjectVersion;
|
||||
var useCaseSensitivefileNames = false;
|
||||
var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken());
|
||||
// Check if the localized messages json is set, otherwise query the host for it
|
||||
@ -37156,6 +37260,16 @@ var ts;
|
||||
return ruleProvider;
|
||||
}
|
||||
function synchronizeHostData() {
|
||||
// perform fast check if host supports it
|
||||
if (host.getProjectVersion) {
|
||||
var hostProjectVersion = host.getProjectVersion();
|
||||
if (hostProjectVersion) {
|
||||
if (lastProjectVersion === hostProjectVersion) {
|
||||
return;
|
||||
}
|
||||
lastProjectVersion = hostProjectVersion;
|
||||
}
|
||||
}
|
||||
// Get a fresh cache of the host information
|
||||
var hostCache = new HostCache(host, getCanonicalFileName);
|
||||
// If the program is already up-to-date, we can reuse it
|
||||
@ -37954,10 +38068,10 @@ var ts;
|
||||
for (var _i = 0, _a = program.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var sourceFile = _a[_i];
|
||||
var nameTable = getNameTable(sourceFile);
|
||||
for (var name_25 in nameTable) {
|
||||
if (!allNames[name_25]) {
|
||||
allNames[name_25] = name_25;
|
||||
var displayName = getCompletionEntryDisplayName(name_25, target, true);
|
||||
for (var name_26 in nameTable) {
|
||||
if (!allNames[name_26]) {
|
||||
allNames[name_26] = name_26;
|
||||
var displayName = getCompletionEntryDisplayName(name_26, target, true);
|
||||
if (displayName) {
|
||||
var entry = {
|
||||
name: displayName,
|
||||
@ -39839,19 +39953,19 @@ var ts;
|
||||
if (isNameOfPropertyAssignment(node)) {
|
||||
var objectLiteral = node.parent.parent;
|
||||
var contextualType = typeChecker.getContextualType(objectLiteral);
|
||||
var name_26 = node.text;
|
||||
var name_27 = node.text;
|
||||
if (contextualType) {
|
||||
if (contextualType.flags & 16384 /* Union */) {
|
||||
// This is a union type, first see if the property we are looking for is a union property (i.e. exists in all types)
|
||||
// if not, search the constituent types for the property
|
||||
var unionProperty = contextualType.getProperty(name_26);
|
||||
var unionProperty = contextualType.getProperty(name_27);
|
||||
if (unionProperty) {
|
||||
return [unionProperty];
|
||||
}
|
||||
else {
|
||||
var result_4 = [];
|
||||
ts.forEach(contextualType.types, function (t) {
|
||||
var symbol = t.getProperty(name_26);
|
||||
var symbol = t.getProperty(name_27);
|
||||
if (symbol) {
|
||||
result_4.push(symbol);
|
||||
}
|
||||
@ -39860,7 +39974,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var symbol_1 = contextualType.getProperty(name_26);
|
||||
var symbol_1 = contextualType.getProperty(name_27);
|
||||
if (symbol_1) {
|
||||
return [symbol_1];
|
||||
}
|
||||
@ -40280,10 +40394,12 @@ var ts;
|
||||
var kind = triviaScanner.scan();
|
||||
var end = triviaScanner.getTextPos();
|
||||
var width = end - start;
|
||||
// The moment we get something that isn't trivia, then stop processing.
|
||||
if (!ts.isTrivia(kind)) {
|
||||
return;
|
||||
}
|
||||
// Only bother with the trivia if it at least intersects the span of interest.
|
||||
if (ts.textSpanIntersectsWith(span, start, width)) {
|
||||
if (!ts.isTrivia(kind)) {
|
||||
return;
|
||||
}
|
||||
if (ts.isComment(kind)) {
|
||||
// Simple comment. Just add as is.
|
||||
pushClassification(start, width, 1 /* comment */);
|
||||
@ -41726,6 +41842,13 @@ var ts;
|
||||
LanguageServiceShimHostAdapter.prototype.error = function (s) {
|
||||
this.shimHost.error(s);
|
||||
};
|
||||
LanguageServiceShimHostAdapter.prototype.getProjectVersion = function () {
|
||||
if (!this.shimHost.getProjectVersion) {
|
||||
// shimmed host does not support getProjectVersion
|
||||
return undefined;
|
||||
}
|
||||
return this.shimHost.getProjectVersion();
|
||||
};
|
||||
LanguageServiceShimHostAdapter.prototype.getCompilationSettings = function () {
|
||||
var settingsJson = this.shimHost.getCompilationSettings();
|
||||
if (settingsJson == null || settingsJson == "") {
|
||||
@ -42324,4 +42447,4 @@ var TypeScript;
|
||||
})(Services = TypeScript.Services || (TypeScript.Services = {}));
|
||||
})(TypeScript || (TypeScript = {}));
|
||||
/* @internal */
|
||||
var toolsVersion = "1.4";
|
||||
var toolsVersion = "1.5";
|
||||
|
||||
3
bin/typescriptServices.d.ts
vendored
3
bin/typescriptServices.d.ts
vendored
@ -1114,7 +1114,7 @@ declare module ts {
|
||||
target?: ScriptTarget;
|
||||
version?: boolean;
|
||||
watch?: boolean;
|
||||
separateCompilation?: boolean;
|
||||
isolatedModules?: boolean;
|
||||
emitDecoratorMetadata?: boolean;
|
||||
[option: string]: string | number | boolean;
|
||||
}
|
||||
@ -1379,6 +1379,7 @@ declare module ts {
|
||||
interface LanguageServiceHost {
|
||||
getCompilationSettings(): CompilerOptions;
|
||||
getNewLine?(): string;
|
||||
getProjectVersion?(): string;
|
||||
getScriptFileNames(): string[];
|
||||
getScriptVersion(fileName: string): string;
|
||||
getScriptSnapshot(fileName: string): IScriptSnapshot;
|
||||
|
||||
@ -1129,9 +1129,18 @@ var ts;
|
||||
return 3;
|
||||
return 2;
|
||||
}
|
||||
// Per RFC 1738 'file' URI schema has the shape file://<host>/<path>
|
||||
// if <host> is omitted then it is assumed that host value is 'localhost',
|
||||
// however slash after the omitted <host> is not removed.
|
||||
// file:///folder1/file1 - this is a correct URI
|
||||
// file://folder2/file2 - this is an incorrect URI
|
||||
if (path.lastIndexOf("file:///", 0) === 0) {
|
||||
return "file:///".length;
|
||||
}
|
||||
var idx = path.indexOf('://');
|
||||
if (idx !== -1)
|
||||
return idx + 3;
|
||||
if (idx !== -1) {
|
||||
return idx + "://".length;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
ts.getRootLength = getRootLength;
|
||||
@ -1822,8 +1831,8 @@ var ts;
|
||||
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." },
|
||||
Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--separateCompilation' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--separateCompilation' flag is provided." },
|
||||
Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided: { code: 1208, category: ts.DiagnosticCategory.Error, key: "Cannot compile namespaces when the '--isolatedModules' flag is provided." },
|
||||
Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided: { code: 1209, category: ts.DiagnosticCategory.Error, key: "Ambient const enums are not allowed when the '--isolatedModules' flag is provided." },
|
||||
Invalid_use_of_0_Class_definitions_are_automatically_in_strict_mode: { code: 1210, category: ts.DiagnosticCategory.Error, key: "Invalid use of '{0}'. Class definitions are automatically in strict mode." },
|
||||
A_class_declaration_without_the_default_modifier_must_have_a_name: { code: 1211, category: ts.DiagnosticCategory.Error, key: "A class declaration without the 'default' modifier must have a name" },
|
||||
Identifier_expected_0_is_a_reserved_word_in_strict_mode: { code: 1212, category: ts.DiagnosticCategory.Error, key: "Identifier expected. '{0}' is a reserved word in strict mode" },
|
||||
@ -2106,11 +2115,11 @@ var ts;
|
||||
Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." },
|
||||
Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: ts.DiagnosticCategory.Error, key: "Option 'noEmit' cannot be specified with option 'declaration'." },
|
||||
Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: ts.DiagnosticCategory.Error, key: "Option 'project' cannot be mixed with source files on a command line." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_separateCompilation: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'separateCompilation'." },
|
||||
Option_declaration_cannot_be_specified_with_option_separateCompilation: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'separateCompilation'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'separateCompilation'." },
|
||||
Option_out_cannot_be_specified_with_option_separateCompilation: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'separateCompilation'." },
|
||||
Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'separateCompilation' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_isolatedModules: { code: 5043, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'isolatedModules'." },
|
||||
Option_declaration_cannot_be_specified_with_option_isolatedModules: { code: 5044, category: ts.DiagnosticCategory.Error, key: "Option 'declaration' cannot be specified with option 'isolatedModules'." },
|
||||
Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules: { code: 5045, category: ts.DiagnosticCategory.Error, key: "Option 'noEmitOnError' cannot be specified with option 'isolatedModules'." },
|
||||
Option_out_cannot_be_specified_with_option_isolatedModules: { code: 5046, category: ts.DiagnosticCategory.Error, key: "Option 'out' cannot be specified with option 'isolatedModules'." },
|
||||
Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher: { code: 5047, category: ts.DiagnosticCategory.Error, key: "Option 'isolatedModules' can only be used when either option'--module' is provided or option 'target' is 'ES6' or higher." },
|
||||
Option_sourceMap_cannot_be_specified_with_option_inlineSourceMap: { code: 5048, category: ts.DiagnosticCategory.Error, key: "Option 'sourceMap' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_sourceRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5049, category: ts.DiagnosticCategory.Error, key: "Option 'sourceRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
Option_mapRoot_cannot_be_specified_with_option_inlineSourceMap: { code: 5050, category: ts.DiagnosticCategory.Error, key: "Option 'mapRoot' cannot be specified with option 'inlineSourceMap'." },
|
||||
@ -5468,7 +5477,7 @@ var ts;
|
||||
if ((isExternalModule(sourceFile) || !compilerOptions.out)) {
|
||||
// 1. in-browser single file compilation scenario
|
||||
// 2. non .js file
|
||||
return compilerOptions.separateCompilation || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
return compilerOptions.isolatedModules || !ts.fileExtensionIs(sourceFile.fileName, ".js");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -11418,7 +11427,7 @@ var ts;
|
||||
var symbol = getSymbolOfNode(node);
|
||||
var target = resolveAlias(symbol);
|
||||
if (target) {
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.separateCompilation) ||
|
||||
var markAlias = (target === unknownSymbol && compilerOptions.isolatedModules) ||
|
||||
(target !== unknownSymbol && (target.flags & 107455 /* Value */) && !isConstEnumOrConstEnumOnlyModule(target));
|
||||
if (markAlias) {
|
||||
markAliasSymbolAsReferenced(symbol);
|
||||
@ -12945,7 +12954,15 @@ var ts;
|
||||
function getTypeOfAlias(symbol) {
|
||||
var links = getSymbolLinks(symbol);
|
||||
if (!links.type) {
|
||||
links.type = getTypeOfSymbol(resolveAlias(symbol));
|
||||
var targetSymbol = resolveAlias(symbol);
|
||||
// It only makes sense to get the type of a value symbol. If the result of resolving
|
||||
// the alias is not a value, then it has no type. To get the type associated with a
|
||||
// type symbol, call getDeclaredTypeOfSymbol.
|
||||
// This check is important because without it, a call to getTypeOfSymbol could end
|
||||
// up recursively calling getTypeOfAlias, causing a stack overflow.
|
||||
links.type = targetSymbol.flags & 107455 /* Value */
|
||||
? getTypeOfSymbol(targetSymbol)
|
||||
: unknownType;
|
||||
}
|
||||
return links.type;
|
||||
}
|
||||
@ -14021,7 +14038,17 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
// Since removeSubtypes checks the subtype relation, and the subtype relation on a union
|
||||
// may attempt to reduce a union, it is possible that removeSubtypes could be called
|
||||
// recursively on the same set of types. The removeSubtypesStack is used to track which
|
||||
// sets of types are currently undergoing subtype reduction.
|
||||
var removeSubtypesStack = [];
|
||||
function removeSubtypes(types) {
|
||||
var typeListId = getTypeListId(types);
|
||||
if (removeSubtypesStack.lastIndexOf(typeListId) >= 0) {
|
||||
return;
|
||||
}
|
||||
removeSubtypesStack.push(typeListId);
|
||||
var i = types.length;
|
||||
while (i > 0) {
|
||||
i--;
|
||||
@ -14029,6 +14056,7 @@ var ts;
|
||||
types.splice(i, 1);
|
||||
}
|
||||
}
|
||||
removeSubtypesStack.pop();
|
||||
}
|
||||
function containsAnyType(types) {
|
||||
for (var _i = 0; _i < types.length; _i++) {
|
||||
@ -15730,36 +15758,37 @@ var ts;
|
||||
if (!isTypeSubtypeOf(rightType, globalFunctionType)) {
|
||||
return type;
|
||||
}
|
||||
// Target type is type of prototype property
|
||||
var targetType;
|
||||
var prototypeProperty = getPropertyOfType(rightType, "prototype");
|
||||
if (prototypeProperty) {
|
||||
var targetType = getTypeOfSymbol(prototypeProperty);
|
||||
if (targetType !== anyType) {
|
||||
// Narrow to the target type if it's a subtype of the current type
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
// If the current type is a union type, remove all constituents that aren't subtypes of the target.
|
||||
if (type.flags & 16384 /* Union */) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
// Target type is type of the protoype property
|
||||
var prototypePropertyType = getTypeOfSymbol(prototypeProperty);
|
||||
if (prototypePropertyType !== anyType) {
|
||||
targetType = prototypePropertyType;
|
||||
}
|
||||
}
|
||||
// Target type is type of construct signature
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048 /* Interface */) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
if (!targetType) {
|
||||
// Target type is type of construct signature
|
||||
var constructSignatures;
|
||||
if (rightType.flags & 2048 /* Interface */) {
|
||||
constructSignatures = resolveDeclaredMembers(rightType).declaredConstructSignatures;
|
||||
}
|
||||
else if (rightType.flags & 32768 /* Anonymous */) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1 /* Construct */);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length) {
|
||||
targetType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
}
|
||||
}
|
||||
else if (rightType.flags & 32768 /* Anonymous */) {
|
||||
constructSignatures = getSignaturesOfType(rightType, 1 /* Construct */);
|
||||
}
|
||||
if (constructSignatures && constructSignatures.length !== 0) {
|
||||
var instanceType = getUnionType(ts.map(constructSignatures, function (signature) { return getReturnTypeOfSignature(getErasedSignature(signature)); }));
|
||||
// Pickup type from union types
|
||||
if (targetType) {
|
||||
// Narrow to the target type if it's a subtype of the current type
|
||||
if (isTypeSubtypeOf(targetType, type)) {
|
||||
return targetType;
|
||||
}
|
||||
// If the current type is a union type, remove all constituents that aren't subtypes of the target.
|
||||
if (type.flags & 16384 /* Union */) {
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, instanceType); }));
|
||||
return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); }));
|
||||
}
|
||||
return instanceType;
|
||||
}
|
||||
return type;
|
||||
}
|
||||
@ -18853,7 +18882,7 @@ var ts;
|
||||
// serialize the type metadata.
|
||||
if (node && node.kind === 142 /* TypeReference */) {
|
||||
var type = getTypeFromTypeNode(node);
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.separateCompilation;
|
||||
var shouldCheckIfUnknownType = type === unknownType && compilerOptions.isolatedModules;
|
||||
if (!type || (!shouldCheckIfUnknownType && type.flags & (1048703 /* Intrinsic */ | 132 /* NumberLike */ | 258 /* StringLike */))) {
|
||||
return;
|
||||
}
|
||||
@ -19863,7 +19892,7 @@ var ts;
|
||||
checkKindsOfPropertyMemberOverrides(type, baseType);
|
||||
}
|
||||
}
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.separateCompilation)) {
|
||||
if (baseTypes.length || (baseTypeNode && compilerOptions.isolatedModules)) {
|
||||
// Check that base type can be evaluated as expression
|
||||
checkExpressionOrQualifiedName(baseTypeNode.expression);
|
||||
}
|
||||
@ -20232,8 +20261,8 @@ var ts;
|
||||
checkExportsOnMergedDeclarations(node);
|
||||
computeEnumMemberValues(node);
|
||||
var enumIsConst = ts.isConst(node);
|
||||
if (compilerOptions.separateCompilation && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_separateCompilation_flag_is_provided);
|
||||
if (compilerOptions.isolatedModules && enumIsConst && ts.isInAmbientContext(node)) {
|
||||
error(node.name, ts.Diagnostics.Ambient_const_enums_are_not_allowed_when_the_isolatedModules_flag_is_provided);
|
||||
}
|
||||
// Spec 2014 - Section 9.3:
|
||||
// It isn't possible for one enum declaration to continue the automatic numbering sequence of another,
|
||||
@ -20315,7 +20344,7 @@ var ts;
|
||||
if (symbol.flags & 512 /* ValueModule */
|
||||
&& symbol.declarations.length > 1
|
||||
&& !ts.isInAmbientContext(node)
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation)) {
|
||||
&& ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules)) {
|
||||
var firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);
|
||||
if (firstNonAmbientClassOrFunc) {
|
||||
if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(firstNonAmbientClassOrFunc)) {
|
||||
@ -20666,6 +20695,7 @@ var ts;
|
||||
break;
|
||||
case 135 /* MethodDeclaration */:
|
||||
case 134 /* MethodSignature */:
|
||||
ts.forEach(node.decorators, checkFunctionExpressionBodies);
|
||||
ts.forEach(node.parameters, checkFunctionExpressionBodies);
|
||||
if (ts.isObjectLiteralMethod(node)) {
|
||||
checkFunctionExpressionOrObjectLiteralMethodBody(node);
|
||||
@ -20680,6 +20710,7 @@ var ts;
|
||||
case 193 /* WithStatement */:
|
||||
checkFunctionExpressionBodies(node.expression);
|
||||
break;
|
||||
case 131 /* Decorator */:
|
||||
case 130 /* Parameter */:
|
||||
case 133 /* PropertyDeclaration */:
|
||||
case 132 /* PropertySignature */:
|
||||
@ -21317,7 +21348,7 @@ var ts;
|
||||
}
|
||||
function isAliasResolvedToValue(symbol) {
|
||||
var target = resolveAlias(symbol);
|
||||
if (target === unknownSymbol && compilerOptions.separateCompilation) {
|
||||
if (target === unknownSymbol && compilerOptions.isolatedModules) {
|
||||
return true;
|
||||
}
|
||||
// const enums and modules that contain only const enums are not considered values from the emit perespective
|
||||
@ -25321,7 +25352,7 @@ var ts;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function emitListWithSpread(elements, multiLine, trailingComma) {
|
||||
function emitListWithSpread(elements, alwaysCopy, multiLine, trailingComma) {
|
||||
var pos = 0;
|
||||
var group = 0;
|
||||
var length = elements.length;
|
||||
@ -25338,6 +25369,9 @@ var ts;
|
||||
e = e.expression;
|
||||
emitParenthesizedIf(e, group === 0 && needsParenthesisForPropertyAccessOrInvocation(e));
|
||||
pos++;
|
||||
if (pos === length && group === 0 && alwaysCopy && e.kind !== 154 /* ArrayLiteralExpression */) {
|
||||
write(".slice()");
|
||||
}
|
||||
}
|
||||
else {
|
||||
var i = pos;
|
||||
@ -25375,7 +25409,7 @@ var ts;
|
||||
write("]");
|
||||
}
|
||||
else {
|
||||
emitListWithSpread(elements, (node.flags & 512 /* MultiLine */) !== 0,
|
||||
emitListWithSpread(elements, true, (node.flags & 512 /* MultiLine */) !== 0,
|
||||
/*trailingComma*/ elements.hasTrailingComma);
|
||||
}
|
||||
}
|
||||
@ -25627,7 +25661,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function tryEmitConstantValue(node) {
|
||||
if (compilerOptions.separateCompilation) {
|
||||
if (compilerOptions.isolatedModules) {
|
||||
// do not inline enum values in separate compilation mode
|
||||
return false;
|
||||
}
|
||||
@ -25747,7 +25781,7 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
write(", ");
|
||||
emitListWithSpread(node.arguments, false, false);
|
||||
emitListWithSpread(node.arguments, false, false, false);
|
||||
write(")");
|
||||
}
|
||||
function emitCallExpression(node) {
|
||||
@ -26451,7 +26485,8 @@ var ts;
|
||||
if (node.flags & 1 /* Export */) {
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
if (compilerOptions.module === 4 /* System */) {
|
||||
// emit call to exporter only for top level nodes
|
||||
if (compilerOptions.module === 4 /* System */ && node.parent === currentSourceFile) {
|
||||
// emit export default <smth> as
|
||||
// export("default", <smth>)
|
||||
write(exportFunctionForFile + "(\"");
|
||||
@ -28021,22 +28056,25 @@ var ts;
|
||||
}
|
||||
function shouldEmitEnumDeclaration(node) {
|
||||
var isConstEnum = ts.isConst(node);
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.separateCompilation;
|
||||
return !isConstEnum || compilerOptions.preserveConstEnums || compilerOptions.isolatedModules;
|
||||
}
|
||||
function emitEnumDeclaration(node) {
|
||||
// const enums are completely erased during compilation.
|
||||
if (!shouldEmitEnumDeclaration(node)) {
|
||||
return;
|
||||
}
|
||||
if (!(node.flags & 1 /* Export */) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
if (!shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
// do not emit var if variable was already hoisted
|
||||
if (!(node.flags & 1 /* Export */) || isES6ExportedDeclaration(node)) {
|
||||
emitStart(node);
|
||||
if (isES6ExportedDeclaration(node)) {
|
||||
write("export ");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
write("var ");
|
||||
emit(node.name);
|
||||
emitEnd(node);
|
||||
write(";");
|
||||
}
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
@ -28058,7 +28096,8 @@ var ts;
|
||||
emitModuleMemberName(node);
|
||||
write(" = {}));");
|
||||
emitEnd(node);
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1 /* Export */) {
|
||||
if (!isES6ExportedDeclaration(node) && node.flags & 1 /* Export */ && !shouldHoistDeclarationInSystemJsModule(node)) {
|
||||
// do not emit var if variable was already hoisted
|
||||
writeLine();
|
||||
emitStart(node);
|
||||
write("var ");
|
||||
@ -28069,6 +28108,15 @@ var ts;
|
||||
write(";");
|
||||
}
|
||||
if (languageVersion < 2 /* ES6 */ && node.parent === currentSourceFile) {
|
||||
if (compilerOptions.module === 4 /* System */ && (node.flags & 1 /* Export */)) {
|
||||
// write the call to exporter for enum
|
||||
writeLine();
|
||||
write(exportFunctionForFile + "(\"");
|
||||
emitDeclarationName(node);
|
||||
write("\", ");
|
||||
emitDeclarationName(node);
|
||||
write(")");
|
||||
}
|
||||
emitExportMemberAssignments(node.name);
|
||||
}
|
||||
}
|
||||
@ -28107,7 +28155,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function shouldEmitModuleDeclaration(node) {
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.separateCompilation);
|
||||
return ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums || compilerOptions.isolatedModules);
|
||||
}
|
||||
function isModuleMergedWithES6Class(node) {
|
||||
return languageVersion === 2 /* ES6 */ && !!(resolver.getNodeCheckFlags(node) & 2048 /* LexicalModuleMergesWithClass */);
|
||||
@ -28708,12 +28756,26 @@ var ts;
|
||||
if (hoistedVars) {
|
||||
writeLine();
|
||||
write("var ");
|
||||
var seen = {};
|
||||
for (var i = 0; i < hoistedVars.length; ++i) {
|
||||
var local = hoistedVars[i];
|
||||
var name_21 = local.kind === 65 /* Identifier */
|
||||
? local
|
||||
: local.name;
|
||||
if (name_21) {
|
||||
// do not emit duplicate entries (in case of declaration merging) in the list of hoisted variables
|
||||
var text = ts.unescapeIdentifier(name_21.text);
|
||||
if (ts.hasProperty(seen, text)) {
|
||||
continue;
|
||||
}
|
||||
else {
|
||||
seen[text] = text;
|
||||
}
|
||||
}
|
||||
if (i !== 0) {
|
||||
write(", ");
|
||||
}
|
||||
if (local.kind === 202 /* ClassDeclaration */ || local.kind === 206 /* ModuleDeclaration */) {
|
||||
if (local.kind === 202 /* ClassDeclaration */ || local.kind === 206 /* ModuleDeclaration */ || local.kind === 205 /* EnumDeclaration */) {
|
||||
emitDeclarationName(local);
|
||||
}
|
||||
else {
|
||||
@ -28744,6 +28806,9 @@ var ts;
|
||||
}
|
||||
return exportedDeclarations;
|
||||
function visit(node) {
|
||||
if (node.flags & 2 /* Ambient */) {
|
||||
return;
|
||||
}
|
||||
if (node.kind === 201 /* FunctionDeclaration */) {
|
||||
if (!hoistedFunctionDeclarations) {
|
||||
hoistedFunctionDeclarations = [];
|
||||
@ -28752,31 +28817,41 @@ var ts;
|
||||
return;
|
||||
}
|
||||
if (node.kind === 202 /* ClassDeclaration */) {
|
||||
// TODO: rename block scoped classes
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206 /* ModuleDeclaration */ && shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
if (node.kind === 205 /* EnumDeclaration */) {
|
||||
if (shouldEmitEnumDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (node.kind === 206 /* ModuleDeclaration */) {
|
||||
if (shouldEmitModuleDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
}
|
||||
hoistedVars.push(node);
|
||||
return;
|
||||
}
|
||||
if (node.kind === 199 /* VariableDeclaration */ || node.kind === 153 /* BindingElement */) {
|
||||
if (shouldHoistVariable(node, false)) {
|
||||
var name_21 = node.name;
|
||||
if (name_21.kind === 65 /* Identifier */) {
|
||||
var name_22 = node.name;
|
||||
if (name_22.kind === 65 /* Identifier */) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
hoistedVars.push(name_21);
|
||||
hoistedVars.push(name_22);
|
||||
}
|
||||
else {
|
||||
ts.forEachChild(name_21, visit);
|
||||
ts.forEachChild(name_22, visit);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@ -29180,7 +29255,7 @@ var ts;
|
||||
paramEmitted = true;
|
||||
}
|
||||
}
|
||||
if (ts.isExternalModule(node) || compilerOptions.separateCompilation) {
|
||||
if (ts.isExternalModule(node) || compilerOptions.isolatedModules) {
|
||||
if (languageVersion >= 2 /* ES6 */) {
|
||||
emitES6Module(node, startIndex);
|
||||
}
|
||||
@ -29571,7 +29646,7 @@ var ts;
|
||||
/* @internal */ ts.ioReadTime = 0;
|
||||
/* @internal */ ts.ioWriteTime = 0;
|
||||
/** The version of the TypeScript compiler release */
|
||||
ts.version = "1.5.2";
|
||||
ts.version = "1.5.3";
|
||||
var carriageReturnLineFeed = "\r\n";
|
||||
var lineFeed = "\n";
|
||||
function findConfigFile(searchPath) {
|
||||
@ -29755,14 +29830,19 @@ var ts;
|
||||
// Create the emit resolver outside of the "emitTime" tracking code below. That way
|
||||
// any cost associated with it (like type checking) are appropriate associated with
|
||||
// the type-checking counter.
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile);
|
||||
//
|
||||
// If the -out option is specified, we should not pass the source file to getEmitResolver.
|
||||
// This is because in the -out scenario all files need to be emitted, and therefore all
|
||||
// files need to be type checked. And the way to specify that all files need to be type
|
||||
// checked is to not pass the file to getEmitResolver.
|
||||
var emitResolver = getDiagnosticsProducingTypeChecker().getEmitResolver(options.out ? undefined : sourceFile);
|
||||
var start = new Date().getTime();
|
||||
var emitResult = ts.emitFiles(emitResolver, getEmitHost(writeFileCallback), sourceFile);
|
||||
ts.emitTime += new Date().getTime() - start;
|
||||
return emitResult;
|
||||
}
|
||||
function getSourceFile(fileName) {
|
||||
fileName = host.getCanonicalFileName(fileName);
|
||||
fileName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined;
|
||||
}
|
||||
function getDiagnosticsHelper(sourceFile, getDiagnostics) {
|
||||
@ -29855,7 +29935,7 @@ var ts;
|
||||
}
|
||||
// Get source file from normalized fileName
|
||||
function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) {
|
||||
var canonicalName = host.getCanonicalFileName(fileName);
|
||||
var canonicalName = host.getCanonicalFileName(ts.normalizeSlashes(fileName));
|
||||
if (ts.hasProperty(filesByName, canonicalName)) {
|
||||
// We've already looked for this file, use cached result
|
||||
return getSourceFileFromCache(fileName, canonicalName, false);
|
||||
@ -30013,18 +30093,18 @@ var ts;
|
||||
return allFilesBelongToPath;
|
||||
}
|
||||
function verifyCompilerOptions() {
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceMap_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_declaration_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmitOnError_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_separateCompilation));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_out_cannot_be_specified_with_option_isolatedModules));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
@ -30055,14 +30135,14 @@ var ts;
|
||||
}
|
||||
var languageVersion = options.target || 0 /* ES3 */;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.separateCompilation) {
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2 /* ES6 */) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_separateCompilation_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES6_or_higher));
|
||||
}
|
||||
var firstNonExternalModuleSourceFile = ts.forEach(files, function (f) { return !ts.isExternalModule(f) && !ts.isDeclarationFile(f) ? f : undefined; });
|
||||
if (firstNonExternalModuleSourceFile) {
|
||||
var span = ts.getErrorSpanForNode(firstNonExternalModuleSourceFile, firstNonExternalModuleSourceFile);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_separateCompilation_flag_is_provided));
|
||||
diagnostics.add(ts.createFileDiagnostic(firstNonExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_namespaces_when_the_isolatedModules_flag_is_provided));
|
||||
}
|
||||
}
|
||||
else if (firstExternalModuleSourceFile && languageVersion < 2 /* ES6 */ && !options.module) {
|
||||
@ -30251,7 +30331,7 @@ var ts;
|
||||
paramType: ts.Diagnostics.LOCATION
|
||||
},
|
||||
{
|
||||
name: "separateCompilation",
|
||||
name: "isolatedModules",
|
||||
type: "boolean"
|
||||
},
|
||||
{
|
||||
@ -30684,12 +30764,12 @@ var ts;
|
||||
ts.forEach(program.getSourceFiles(), function (sourceFile) {
|
||||
cancellationToken.throwIfCancellationRequested();
|
||||
var nameToDeclarations = sourceFile.getNamedDeclarations();
|
||||
for (var name_22 in nameToDeclarations) {
|
||||
var declarations = ts.getProperty(nameToDeclarations, name_22);
|
||||
for (var name_23 in nameToDeclarations) {
|
||||
var declarations = ts.getProperty(nameToDeclarations, name_23);
|
||||
if (declarations) {
|
||||
// First do a quick check to see if the name of the declaration matches the
|
||||
// last portion of the (possibly) dotted name they're searching for.
|
||||
var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_22);
|
||||
var matches = patternMatcher.getMatchesForLastSegmentOfPattern(name_23);
|
||||
if (!matches) {
|
||||
continue;
|
||||
}
|
||||
@ -30702,14 +30782,14 @@ var ts;
|
||||
if (!containers) {
|
||||
return undefined;
|
||||
}
|
||||
matches = patternMatcher.getMatches(containers, name_22);
|
||||
matches = patternMatcher.getMatches(containers, name_23);
|
||||
if (!matches) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
var fileName = sourceFile.fileName;
|
||||
var matchKind = bestMatchKind(matches);
|
||||
rawItems.push({ name: name_22, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
|
||||
rawItems.push({ name: name_23, fileName: fileName, matchKind: matchKind, isCaseSensitive: allMatchesAreCaseSensitive(matches), declaration: declaration });
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -31092,9 +31172,9 @@ var ts;
|
||||
case 199 /* VariableDeclaration */:
|
||||
case 153 /* BindingElement */:
|
||||
var variableDeclarationNode;
|
||||
var name_23;
|
||||
var name_24;
|
||||
if (node.kind === 153 /* BindingElement */) {
|
||||
name_23 = node.name;
|
||||
name_24 = node.name;
|
||||
variableDeclarationNode = node;
|
||||
// binding elements are added only for variable declarations
|
||||
// bubble up to the containing variable declaration
|
||||
@ -31106,16 +31186,16 @@ var ts;
|
||||
else {
|
||||
ts.Debug.assert(!ts.isBindingPattern(node.name));
|
||||
variableDeclarationNode = node;
|
||||
name_23 = node.name;
|
||||
name_24 = node.name;
|
||||
}
|
||||
if (ts.isConst(variableDeclarationNode)) {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.constElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.constElement);
|
||||
}
|
||||
else if (ts.isLet(variableDeclarationNode)) {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.letElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.letElement);
|
||||
}
|
||||
else {
|
||||
return createItem(node, getTextOfNode(name_23), ts.ScriptElementKind.variableElement);
|
||||
return createItem(node, getTextOfNode(name_24), ts.ScriptElementKind.variableElement);
|
||||
}
|
||||
case 136 /* Constructor */:
|
||||
return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement);
|
||||
@ -33702,9 +33782,9 @@ var ts;
|
||||
}
|
||||
Rules.prototype.getRuleName = function (rule) {
|
||||
var o = this;
|
||||
for (var name_24 in o) {
|
||||
if (o[name_24] === rule) {
|
||||
return name_24;
|
||||
for (var name_25 in o) {
|
||||
if (o[name_25] === rule) {
|
||||
return name_25;
|
||||
}
|
||||
}
|
||||
throw new Error("Unknown rule");
|
||||
@ -36592,12 +36672,12 @@ var ts;
|
||||
* This function will compile source text from 'input' argument using specified compiler options.
|
||||
* If not options are provided - it will use a set of default compiler options.
|
||||
* Extra compiler options that will unconditionally be used bu this function are:
|
||||
* - separateCompilation = true
|
||||
* - isolatedModules = true
|
||||
* - allowNonTsExtensions = true
|
||||
*/
|
||||
function transpile(input, compilerOptions, fileName, diagnostics) {
|
||||
var options = compilerOptions ? ts.clone(compilerOptions) : getDefaultCompilerOptions();
|
||||
options.separateCompilation = true;
|
||||
options.isolatedModules = true;
|
||||
// Filename can be non-ts file.
|
||||
options.allowNonTsExtensions = true;
|
||||
// Parse
|
||||
@ -36648,7 +36728,30 @@ var ts;
|
||||
if (version !== sourceFile.version) {
|
||||
// Once incremental parsing is ready, then just call into this function.
|
||||
if (!ts.disableIncrementalParsing) {
|
||||
var newSourceFile = ts.updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks);
|
||||
var newText;
|
||||
// grab the fragment from the beginning of the original text to the beginning of the span
|
||||
var prefix = textChangeRange.span.start !== 0
|
||||
? sourceFile.text.substr(0, textChangeRange.span.start)
|
||||
: "";
|
||||
// grab the fragment from the end of the span till the end of the original text
|
||||
var suffix = ts.textSpanEnd(textChangeRange.span) !== sourceFile.text.length
|
||||
? sourceFile.text.substr(ts.textSpanEnd(textChangeRange.span))
|
||||
: "";
|
||||
if (textChangeRange.newLength === 0) {
|
||||
// edit was a deletion - just combine prefix and suffix
|
||||
newText = prefix && suffix ? prefix + suffix : prefix || suffix;
|
||||
}
|
||||
else {
|
||||
// it was actual edit, fetch the fragment of new text that correspond to new span
|
||||
var changedText = scriptSnapshot.getText(textChangeRange.span.start, textChangeRange.span.start + textChangeRange.newLength);
|
||||
// combine prefix, changed text and suffix
|
||||
newText = prefix && suffix
|
||||
? prefix + changedText + suffix
|
||||
: prefix
|
||||
? (prefix + changedText)
|
||||
: (changedText + suffix);
|
||||
}
|
||||
var newSourceFile = ts.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);
|
||||
setSourceFileFields(newSourceFile, scriptSnapshot, version);
|
||||
// after incremental parsing nameTable might not be up-to-date
|
||||
// drop it so it can be lazily recreated later
|
||||
@ -37125,6 +37228,7 @@ var ts;
|
||||
var syntaxTreeCache = new SyntaxTreeCache(host);
|
||||
var ruleProvider;
|
||||
var program;
|
||||
var lastProjectVersion;
|
||||
var useCaseSensitivefileNames = false;
|
||||
var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken());
|
||||
// Check if the localized messages json is set, otherwise query the host for it
|
||||
@ -37156,6 +37260,16 @@ var ts;
|
||||
return ruleProvider;
|
||||
}
|
||||
function synchronizeHostData() {
|
||||
// perform fast check if host supports it
|
||||
if (host.getProjectVersion) {
|
||||
var hostProjectVersion = host.getProjectVersion();
|
||||
if (hostProjectVersion) {
|
||||
if (lastProjectVersion === hostProjectVersion) {
|
||||
return;
|
||||
}
|
||||
lastProjectVersion = hostProjectVersion;
|
||||
}
|
||||
}
|
||||
// Get a fresh cache of the host information
|
||||
var hostCache = new HostCache(host, getCanonicalFileName);
|
||||
// If the program is already up-to-date, we can reuse it
|
||||
@ -37954,10 +38068,10 @@ var ts;
|
||||
for (var _i = 0, _a = program.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var sourceFile = _a[_i];
|
||||
var nameTable = getNameTable(sourceFile);
|
||||
for (var name_25 in nameTable) {
|
||||
if (!allNames[name_25]) {
|
||||
allNames[name_25] = name_25;
|
||||
var displayName = getCompletionEntryDisplayName(name_25, target, true);
|
||||
for (var name_26 in nameTable) {
|
||||
if (!allNames[name_26]) {
|
||||
allNames[name_26] = name_26;
|
||||
var displayName = getCompletionEntryDisplayName(name_26, target, true);
|
||||
if (displayName) {
|
||||
var entry = {
|
||||
name: displayName,
|
||||
@ -39839,19 +39953,19 @@ var ts;
|
||||
if (isNameOfPropertyAssignment(node)) {
|
||||
var objectLiteral = node.parent.parent;
|
||||
var contextualType = typeChecker.getContextualType(objectLiteral);
|
||||
var name_26 = node.text;
|
||||
var name_27 = node.text;
|
||||
if (contextualType) {
|
||||
if (contextualType.flags & 16384 /* Union */) {
|
||||
// This is a union type, first see if the property we are looking for is a union property (i.e. exists in all types)
|
||||
// if not, search the constituent types for the property
|
||||
var unionProperty = contextualType.getProperty(name_26);
|
||||
var unionProperty = contextualType.getProperty(name_27);
|
||||
if (unionProperty) {
|
||||
return [unionProperty];
|
||||
}
|
||||
else {
|
||||
var result_4 = [];
|
||||
ts.forEach(contextualType.types, function (t) {
|
||||
var symbol = t.getProperty(name_26);
|
||||
var symbol = t.getProperty(name_27);
|
||||
if (symbol) {
|
||||
result_4.push(symbol);
|
||||
}
|
||||
@ -39860,7 +39974,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
var symbol_1 = contextualType.getProperty(name_26);
|
||||
var symbol_1 = contextualType.getProperty(name_27);
|
||||
if (symbol_1) {
|
||||
return [symbol_1];
|
||||
}
|
||||
@ -40280,10 +40394,12 @@ var ts;
|
||||
var kind = triviaScanner.scan();
|
||||
var end = triviaScanner.getTextPos();
|
||||
var width = end - start;
|
||||
// The moment we get something that isn't trivia, then stop processing.
|
||||
if (!ts.isTrivia(kind)) {
|
||||
return;
|
||||
}
|
||||
// Only bother with the trivia if it at least intersects the span of interest.
|
||||
if (ts.textSpanIntersectsWith(span, start, width)) {
|
||||
if (!ts.isTrivia(kind)) {
|
||||
return;
|
||||
}
|
||||
if (ts.isComment(kind)) {
|
||||
// Simple comment. Just add as is.
|
||||
pushClassification(start, width, 1 /* comment */);
|
||||
@ -41726,6 +41842,13 @@ var ts;
|
||||
LanguageServiceShimHostAdapter.prototype.error = function (s) {
|
||||
this.shimHost.error(s);
|
||||
};
|
||||
LanguageServiceShimHostAdapter.prototype.getProjectVersion = function () {
|
||||
if (!this.shimHost.getProjectVersion) {
|
||||
// shimmed host does not support getProjectVersion
|
||||
return undefined;
|
||||
}
|
||||
return this.shimHost.getProjectVersion();
|
||||
};
|
||||
LanguageServiceShimHostAdapter.prototype.getCompilationSettings = function () {
|
||||
var settingsJson = this.shimHost.getCompilationSettings();
|
||||
if (settingsJson == null || settingsJson == "") {
|
||||
@ -42324,4 +42447,4 @@ var TypeScript;
|
||||
})(Services = TypeScript.Services || (TypeScript.Services = {}));
|
||||
})(TypeScript || (TypeScript = {}));
|
||||
/* @internal */
|
||||
var toolsVersion = "1.4";
|
||||
var toolsVersion = "1.5";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user