mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Merge branch 'release-1.6'
Conflicts: src/compiler/diagnosticInformationMap.generated.ts src/compiler/diagnosticMessages.json src/compiler/program.ts tests/baselines/reference/emptyObjectBindingPatternParameter04.symbols tests/baselines/reference/emptyObjectBindingPatternParameter04.types tests/baselines/reference/nodeResolution5.errors.txt tests/baselines/reference/nodeResolution7.errors.txt
This commit is contained in:
+12
-3
@@ -394,6 +394,7 @@ var servicesFile = path.join(builtLocalDirectory, "typescriptServices.js");
|
||||
var standaloneDefinitionsFile = path.join(builtLocalDirectory, "typescriptServices.d.ts");
|
||||
var nodePackageFile = path.join(builtLocalDirectory, "typescript.js");
|
||||
var nodeDefinitionsFile = path.join(builtLocalDirectory, "typescript.d.ts");
|
||||
var nodeStandaloneDefinitionsFile = path.join(builtLocalDirectory, "typescript_standalone.d.ts");
|
||||
|
||||
compileFile(servicesFile, servicesSources,[builtLocalDirectory, copyright].concat(servicesSources),
|
||||
/*prefixes*/ [copyright],
|
||||
@@ -410,11 +411,19 @@ compileFile(servicesFile, servicesSources,[builtLocalDirectory, copyright].conca
|
||||
|
||||
prependFile(copyright, standaloneDefinitionsFile);
|
||||
|
||||
// Create the node definition file by replacing 'ts' module with '"typescript"' as a module.
|
||||
// Stanalone/web definition file using global 'ts' namespace
|
||||
jake.cpR(standaloneDefinitionsFile, nodeDefinitionsFile, {silent: true});
|
||||
var definitionFileContents = fs.readFileSync(nodeDefinitionsFile).toString();
|
||||
definitionFileContents = definitionFileContents.replace(/declare (namespace|module) ts/g, 'declare module "typescript"');
|
||||
fs.writeFileSync(nodeDefinitionsFile, definitionFileContents);
|
||||
|
||||
// Official node package definition file, pointed to by 'typings' in package.json
|
||||
// Created by appending 'export = ts;' at the end of the standalone file to turn it into an external module
|
||||
var nodeDefinitionsFileContents = definitionFileContents + "\r\nexport = ts;";
|
||||
fs.writeFileSync(nodeDefinitionsFile, nodeDefinitionsFileContents);
|
||||
|
||||
// Node package definition file to be distributed without the package. Created by replacing
|
||||
// 'ts' namespace with '"typescript"' as a module.
|
||||
var nodeStandaloneDefinitionsFileContents = definitionFileContents.replace(/declare (namespace|module) ts/g, 'declare module "typescript"');
|
||||
fs.writeFileSync(nodeStandaloneDefinitionsFile, nodeStandaloneDefinitionsFileContents);
|
||||
});
|
||||
|
||||
|
||||
|
||||
Vendored
+30
-2
@@ -3928,6 +3928,7 @@ declare module Intl {
|
||||
timeZoneName?: string;
|
||||
formatMatcher?: string;
|
||||
hour12?: boolean;
|
||||
timeZone?: string;
|
||||
}
|
||||
|
||||
interface ResolvedDateTimeFormatOptions {
|
||||
@@ -3997,18 +3998,45 @@ interface Number {
|
||||
|
||||
interface Date {
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleDateString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
toLocaleDateString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vendored
+30
-2
@@ -104,6 +104,7 @@ declare module Intl {
|
||||
timeZoneName?: string;
|
||||
formatMatcher?: string;
|
||||
hour12?: boolean;
|
||||
timeZone?: string;
|
||||
}
|
||||
|
||||
interface ResolvedDateTimeFormatOptions {
|
||||
@@ -173,18 +174,45 @@ interface Number {
|
||||
|
||||
interface Date {
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleDateString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
toLocaleDateString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vendored
+30
-2
@@ -5216,6 +5216,7 @@ declare module Intl {
|
||||
timeZoneName?: string;
|
||||
formatMatcher?: string;
|
||||
hour12?: boolean;
|
||||
timeZone?: string;
|
||||
}
|
||||
|
||||
interface ResolvedDateTimeFormatOptions {
|
||||
@@ -5285,18 +5286,45 @@ interface Number {
|
||||
|
||||
interface Date {
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleDateString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
toLocaleDateString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vendored
+30
-2
@@ -104,6 +104,7 @@ declare module Intl {
|
||||
timeZoneName?: string;
|
||||
formatMatcher?: string;
|
||||
hour12?: boolean;
|
||||
timeZone?: string;
|
||||
}
|
||||
|
||||
interface ResolvedDateTimeFormatOptions {
|
||||
@@ -173,18 +174,45 @@ interface Number {
|
||||
|
||||
interface Date {
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locales An array of locale strings that contain one or more language or locale tags. If you include more than one locale string, list them in descending order of priority so that the first entry is the preferred locale. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleDateString(locales?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string[], options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date and time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a date to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
toLocaleDateString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
|
||||
/**
|
||||
* Converts a time to a string by using the current or specified locale.
|
||||
* @param locale Locale tag. If you omit this parameter, the default locale of the JavaScript runtime is used.
|
||||
* @param options An object that contains one or more properties that specify comparison options.
|
||||
*/
|
||||
toLocaleTimeString(locale?: string, options?: Intl.DateTimeFormatOptions): string;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+186
-149
@@ -1431,6 +1431,8 @@ var ts;
|
||||
Cannot_emit_namespaced_JSX_elements_in_React: { code: 2650, category: ts.DiagnosticCategory.Error, key: "Cannot emit namespaced JSX elements in React" },
|
||||
A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: { code: 2651, category: ts.DiagnosticCategory.Error, key: "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums." },
|
||||
Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: { code: 2652, category: ts.DiagnosticCategory.Error, key: "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead." },
|
||||
Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition: { code: 2654, category: ts.DiagnosticCategory.Error, key: "Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition." },
|
||||
Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition: { code: 2655, category: ts.DiagnosticCategory.Error, key: "Exported external package typings can only be in '.d.ts' files. Please contact the package author to update the package definition." },
|
||||
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
|
||||
@@ -1564,13 +1566,14 @@ var ts;
|
||||
Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: { code: 6060, category: ts.DiagnosticCategory.Message, key: "Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)." },
|
||||
NEWLINE: { code: 6061, category: ts.DiagnosticCategory.Message, key: "NEWLINE" },
|
||||
Argument_for_newLine_option_must_be_CRLF_or_LF: { code: 6062, category: ts.DiagnosticCategory.Error, key: "Argument for '--newLine' option must be 'CRLF' or 'LF'." },
|
||||
Argument_for_moduleResolution_option_must_be_node_or_classic: { code: 6063, category: ts.DiagnosticCategory.Error, key: "Argument for '--moduleResolution' option must be 'node' or 'classic'." },
|
||||
Specify_JSX_code_generation_Colon_preserve_or_react: { code: 6080, category: ts.DiagnosticCategory.Message, key: "Specify JSX code generation: 'preserve' or 'react'" },
|
||||
Argument_for_jsx_must_be_preserve_or_react: { code: 6081, category: ts.DiagnosticCategory.Message, key: "Argument for '--jsx' must be 'preserve' or 'react'." },
|
||||
Enables_experimental_support_for_ES7_decorators: { code: 6065, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 decorators." },
|
||||
Enables_experimental_support_for_emitting_type_metadata_for_decorators: { code: 6066, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for emitting type metadata for decorators." },
|
||||
Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower: { code: 6067, category: ts.DiagnosticCategory.Message, key: "Option 'experimentalAsyncFunctions' cannot be specified when targeting ES5 or lower." },
|
||||
Enables_experimental_support_for_ES7_async_functions: { code: 6068, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 async functions." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) ." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)." },
|
||||
Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: { code: 6070, category: ts.DiagnosticCategory.Message, key: "Initializes a TypeScript project and creates a tsconfig.json file." },
|
||||
Successfully_created_a_tsconfig_json_file: { code: 6071, category: ts.DiagnosticCategory.Message, key: "Successfully created a tsconfig.json file." },
|
||||
Suppress_excess_property_checks_for_object_literals: { code: 6072, category: ts.DiagnosticCategory.Message, key: "Suppress excess property checks for object literals." },
|
||||
@@ -3759,21 +3762,21 @@ var ts;
|
||||
return true;
|
||||
}
|
||||
ts.arrayIsEqualTo = arrayIsEqualTo;
|
||||
function hasResolvedModuleName(sourceFile, moduleNameText) {
|
||||
function hasResolvedModule(sourceFile, moduleNameText) {
|
||||
return sourceFile.resolvedModules && ts.hasProperty(sourceFile.resolvedModules, moduleNameText);
|
||||
}
|
||||
ts.hasResolvedModuleName = hasResolvedModuleName;
|
||||
function getResolvedModuleFileName(sourceFile, moduleNameText) {
|
||||
return hasResolvedModuleName(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
ts.hasResolvedModule = hasResolvedModule;
|
||||
function getResolvedModule(sourceFile, moduleNameText) {
|
||||
return hasResolvedModule(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
}
|
||||
ts.getResolvedModuleFileName = getResolvedModuleFileName;
|
||||
function setResolvedModuleName(sourceFile, moduleNameText, resolvedFileName) {
|
||||
ts.getResolvedModule = getResolvedModule;
|
||||
function setResolvedModule(sourceFile, moduleNameText, resolvedModule) {
|
||||
if (!sourceFile.resolvedModules) {
|
||||
sourceFile.resolvedModules = {};
|
||||
}
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedFileName;
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedModule;
|
||||
}
|
||||
ts.setResolvedModuleName = setResolvedModuleName;
|
||||
ts.setResolvedModule = setResolvedModule;
|
||||
function containsParseError(node) {
|
||||
aggregateChildData(node);
|
||||
return (node.parserContextFlags & 64) !== 0;
|
||||
@@ -4975,11 +4978,21 @@ var ts;
|
||||
add: add,
|
||||
getGlobalDiagnostics: getGlobalDiagnostics,
|
||||
getDiagnostics: getDiagnostics,
|
||||
getModificationCount: getModificationCount
|
||||
getModificationCount: getModificationCount,
|
||||
reattachFileDiagnostics: reattachFileDiagnostics
|
||||
};
|
||||
function getModificationCount() {
|
||||
return modificationCount;
|
||||
}
|
||||
function reattachFileDiagnostics(newFile) {
|
||||
if (!ts.hasProperty(fileDiagnostics, newFile.fileName)) {
|
||||
return;
|
||||
}
|
||||
for (var _i = 0, _a = fileDiagnostics[newFile.fileName]; _i < _a.length; _i++) {
|
||||
var diagnostic = _a[_i];
|
||||
diagnostic.file = newFile;
|
||||
}
|
||||
}
|
||||
function add(diagnostic) {
|
||||
var diagnostics;
|
||||
if (diagnostic.file) {
|
||||
@@ -10965,8 +10978,8 @@ var ts;
|
||||
return symbol;
|
||||
}
|
||||
}
|
||||
var fileName = ts.getResolvedModuleFileName(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = fileName && host.getSourceFile(fileName);
|
||||
var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
|
||||
if (sourceFile) {
|
||||
if (sourceFile.symbol) {
|
||||
return sourceFile.symbol;
|
||||
@@ -14049,6 +14062,7 @@ var ts;
|
||||
var prop = _a[_i];
|
||||
if (!isKnownProperty(target, prop.name)) {
|
||||
if (reportErrors) {
|
||||
errorNode = prop.valueDeclaration;
|
||||
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
|
||||
}
|
||||
return true;
|
||||
@@ -20970,7 +20984,10 @@ var ts;
|
||||
var symbols = [];
|
||||
var name_15 = symbol.name;
|
||||
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
|
||||
symbols.push(getPropertyOfType(t, name_15));
|
||||
var symbol = getPropertyOfType(t, name_15);
|
||||
if (symbol) {
|
||||
symbols.push(symbol);
|
||||
}
|
||||
});
|
||||
return symbols;
|
||||
}
|
||||
@@ -24505,8 +24522,10 @@ var ts;
|
||||
function jsxEmitPreserve(node) {
|
||||
function emitJsxAttribute(node) {
|
||||
emit(node.name);
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
if (node.initializer) {
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
}
|
||||
}
|
||||
function emitJsxSpreadAttribute(node) {
|
||||
write("{...");
|
||||
@@ -25978,6 +25997,9 @@ var ts;
|
||||
}
|
||||
function emitExportSpecifierInSystemModule(specifier) {
|
||||
ts.Debug.assert(compilerOptions.module === 4);
|
||||
if (!resolver.getReferencedValueDeclaration(specifier.propertyName || specifier.name) && !resolver.isValueAliasDeclaration(specifier)) {
|
||||
return;
|
||||
}
|
||||
writeLine();
|
||||
emitStart(specifier.name);
|
||||
write(exportFunctionForFile + "(\"");
|
||||
@@ -26029,19 +26051,19 @@ var ts;
|
||||
write(")");
|
||||
}
|
||||
}
|
||||
function ensureIdentifier(expr) {
|
||||
if (expr.kind !== 67) {
|
||||
var identifier = createTempVariable(0);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
expr = identifier;
|
||||
function ensureIdentifier(expr, reuseIdentifierExpressions) {
|
||||
if (expr.kind === 67 && reuseIdentifierExpressions) {
|
||||
return expr;
|
||||
}
|
||||
return expr;
|
||||
var identifier = createTempVariable(0);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
return identifier;
|
||||
}
|
||||
function createDefaultValueCheck(value, defaultValue) {
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
var equals = ts.createSynthesizedNode(179);
|
||||
equals.left = value;
|
||||
equals.operatorToken = ts.createSynthesizedNode(32);
|
||||
@@ -26082,7 +26104,7 @@ var ts;
|
||||
function emitObjectLiteralAssignment(target, value) {
|
||||
var properties = target.properties;
|
||||
if (properties.length !== 1) {
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
}
|
||||
for (var _a = 0; _a < properties.length; _a++) {
|
||||
var p = properties[_a];
|
||||
@@ -26095,7 +26117,7 @@ var ts;
|
||||
function emitArrayLiteralAssignment(target, value) {
|
||||
var elements = target.elements;
|
||||
if (elements.length !== 1) {
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var e = elements[i];
|
||||
@@ -26137,7 +26159,7 @@ var ts;
|
||||
if (root.parent.kind !== 170) {
|
||||
write("(");
|
||||
}
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
emitDestructuringAssignment(target, value);
|
||||
write(", ");
|
||||
emit(value);
|
||||
@@ -26156,10 +26178,11 @@ var ts;
|
||||
if (ts.isBindingPattern(target.name)) {
|
||||
var pattern = target.name;
|
||||
var elements = pattern.elements;
|
||||
if (elements.length !== 1) {
|
||||
value = ensureIdentifier(value);
|
||||
var numElements = elements.length;
|
||||
if (numElements !== 1) {
|
||||
value = ensureIdentifier(value, numElements !== 0);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
for (var i = 0; i < numElements; i++) {
|
||||
var element = elements[i];
|
||||
if (pattern.kind === 159) {
|
||||
var propName = element.propertyName || element.name;
|
||||
@@ -26169,7 +26192,7 @@ var ts;
|
||||
if (!element.dotDotDotToken) {
|
||||
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
|
||||
}
|
||||
else if (i === elements.length - 1) {
|
||||
else if (i === numElements - 1) {
|
||||
emitBindingElement(element, createSliceCall(value, i));
|
||||
}
|
||||
}
|
||||
@@ -27289,50 +27312,49 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
function emitSerializedTypeNode(node) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 101:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150:
|
||||
case 151:
|
||||
write("Function");
|
||||
return;
|
||||
case 154:
|
||||
case 155:
|
||||
write("Array");
|
||||
return;
|
||||
case 148:
|
||||
case 118:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128:
|
||||
case 9:
|
||||
write("String");
|
||||
return;
|
||||
case 126:
|
||||
write("Number");
|
||||
return;
|
||||
case 129:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152:
|
||||
case 153:
|
||||
case 156:
|
||||
case 157:
|
||||
case 115:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
if (node) {
|
||||
switch (node.kind) {
|
||||
case 101:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150:
|
||||
case 151:
|
||||
write("Function");
|
||||
return;
|
||||
case 154:
|
||||
case 155:
|
||||
write("Array");
|
||||
return;
|
||||
case 148:
|
||||
case 118:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128:
|
||||
case 9:
|
||||
write("String");
|
||||
return;
|
||||
case 126:
|
||||
write("Number");
|
||||
return;
|
||||
case 129:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152:
|
||||
case 153:
|
||||
case 156:
|
||||
case 157:
|
||||
case 115:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
write("Object");
|
||||
}
|
||||
@@ -28246,7 +28268,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node)) {
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
@@ -29332,7 +29354,7 @@ var ts;
|
||||
ts.ioReadTime = 0;
|
||||
ts.ioWriteTime = 0;
|
||||
var emptyArray = [];
|
||||
ts.version = "1.6.0";
|
||||
ts.version = "1.6.2";
|
||||
function findConfigFile(searchPath) {
|
||||
var fileName = "tsconfig.json";
|
||||
while (true) {
|
||||
@@ -29372,10 +29394,12 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(containingDirectory, moduleName));
|
||||
var resolvedFileName = loadNodeModuleFromFile(candidate, false, failedLookupLocations, host);
|
||||
if (resolvedFileName) {
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
resolvedFileName = loadNodeModuleFromDirectory(candidate, false, failedLookupLocations, host);
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return resolvedFileName
|
||||
? { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
return loadModuleFromNodeModules(moduleName, containingDirectory, host);
|
||||
@@ -29433,11 +29457,11 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(nodeModulesFolder, moduleName));
|
||||
var result = loadNodeModuleFromFile(candidate, true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
result = loadNodeModuleFromDirectory(candidate, true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
}
|
||||
var parentPath = ts.getDirectoryPath(directory);
|
||||
@@ -29446,36 +29470,15 @@ var ts;
|
||||
}
|
||||
directory = parentPath;
|
||||
}
|
||||
return { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
function baseUrlModuleNameResolver(moduleName, containingFile, baseUrl, host) {
|
||||
ts.Debug.assert(baseUrl !== undefined);
|
||||
var normalizedModuleName = ts.normalizeSlashes(moduleName);
|
||||
var basePart = useBaseUrl(moduleName) ? baseUrl : ts.getDirectoryPath(containingFile);
|
||||
var candidate = ts.normalizePath(ts.combinePaths(basePart, moduleName));
|
||||
var failedLookupLocations = [];
|
||||
return ts.forEach(ts.supportedExtensions, function (ext) { return tryLoadFile(candidate + ext); }) || { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
function tryLoadFile(location) {
|
||||
if (host.fileExists(location)) {
|
||||
return { resolvedFileName: location, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
failedLookupLocations.push(location);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
ts.baseUrlModuleNameResolver = baseUrlModuleNameResolver;
|
||||
function nameStartsWithDotSlashOrDotDotSlash(name) {
|
||||
var i = name.lastIndexOf("./", 1);
|
||||
return i === 0 || (i === 1 && name.charCodeAt(0) === 46);
|
||||
}
|
||||
function useBaseUrl(moduleName) {
|
||||
return ts.getRootLength(moduleName) === 0 && !nameStartsWithDotSlashOrDotDotSlash(moduleName);
|
||||
}
|
||||
function classicNameResolver(moduleName, containingFile, compilerOptions, host) {
|
||||
if (moduleName.indexOf('!') != -1) {
|
||||
return { resolvedFileName: undefined, failedLookupLocations: [] };
|
||||
return { resolvedModule: undefined, failedLookupLocations: [] };
|
||||
}
|
||||
var searchPath = ts.getDirectoryPath(containingFile);
|
||||
var searchName;
|
||||
@@ -29504,7 +29507,9 @@ var ts;
|
||||
}
|
||||
searchPath = parentPath;
|
||||
}
|
||||
return { resolvedFileName: referencedSourceFile, failedLookupLocations: failedLookupLocations };
|
||||
return referencedSourceFile
|
||||
? { resolvedModule: { resolvedFileName: referencedSourceFile }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
ts.classicNameResolver = classicNameResolver;
|
||||
ts.defaultInitCompilerOptions = {
|
||||
@@ -29617,7 +29622,8 @@ var ts;
|
||||
function createProgram(rootNames, options, host, oldProgram) {
|
||||
var program;
|
||||
var files = [];
|
||||
var diagnostics = ts.createDiagnosticCollection();
|
||||
var fileProcessingDiagnostics = ts.createDiagnosticCollection();
|
||||
var programDiagnostics = ts.createDiagnosticCollection();
|
||||
var commonSourceDirectory;
|
||||
var diagnosticsProducingTypeChecker;
|
||||
var noDiagnosticsTypeChecker;
|
||||
@@ -29625,8 +29631,9 @@ var ts;
|
||||
var skipDefaultLib = options.noLib;
|
||||
var start = new Date().getTime();
|
||||
host = host || createCompilerHost(options);
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames ||
|
||||
(function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedFileName; }); });
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames
|
||||
? (function (moduleNames, containingFile) { return host.resolveModuleNames(moduleNames, containingFile); })
|
||||
: (function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedModule; }); });
|
||||
var filesByName = ts.createFileMap(function (fileName) { return host.getCanonicalFileName(fileName); });
|
||||
if (oldProgram) {
|
||||
var oldOptions = oldProgram.getCompilerOptions();
|
||||
@@ -29666,7 +29673,8 @@ var ts;
|
||||
getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); },
|
||||
getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); },
|
||||
getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); },
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); }
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); },
|
||||
getFileProcessingDiagnostics: function () { return fileProcessingDiagnostics; }
|
||||
};
|
||||
return program;
|
||||
function getClassifiableNames() {
|
||||
@@ -29690,6 +29698,7 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
var newSourceFiles = [];
|
||||
var modifiedSourceFiles = [];
|
||||
for (var _i = 0, _a = oldProgram.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var oldSourceFile = _a[_i];
|
||||
var newSourceFile = host.getSourceFile(oldSourceFile.fileName, options.target);
|
||||
@@ -29711,13 +29720,20 @@ var ts;
|
||||
var moduleNames = ts.map(newSourceFile.imports, function (name) { return name.text; });
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, newSourceFile.fileName);
|
||||
for (var i = 0; i < moduleNames.length; ++i) {
|
||||
var oldResolution = ts.getResolvedModuleFileName(oldSourceFile, moduleNames[i]);
|
||||
if (oldResolution !== resolutions[i]) {
|
||||
var newResolution = resolutions[i];
|
||||
var oldResolution = ts.getResolvedModule(oldSourceFile, moduleNames[i]);
|
||||
var resolutionChanged = oldResolution
|
||||
? !newResolution ||
|
||||
oldResolution.resolvedFileName !== newResolution.resolvedFileName ||
|
||||
!!oldResolution.isExternalLibraryImport !== !!newResolution.isExternalLibraryImport
|
||||
: newResolution;
|
||||
if (resolutionChanged) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
newSourceFile.resolvedModules = oldSourceFile.resolvedModules;
|
||||
modifiedSourceFiles.push(newSourceFile);
|
||||
}
|
||||
else {
|
||||
newSourceFile = oldSourceFile;
|
||||
@@ -29729,6 +29745,11 @@ var ts;
|
||||
filesByName.set(file.fileName, file);
|
||||
}
|
||||
files = newSourceFiles;
|
||||
fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics();
|
||||
for (var _c = 0; _c < modifiedSourceFiles.length; _c++) {
|
||||
var modifiedFile = modifiedSourceFiles[_c];
|
||||
fileProcessingDiagnostics.reattachFileDiagnostics(modifiedFile);
|
||||
}
|
||||
oldProgram.structureIsReused = true;
|
||||
return true;
|
||||
}
|
||||
@@ -29810,8 +29831,9 @@ var ts;
|
||||
ts.Debug.assert(!!sourceFile.bindDiagnostics);
|
||||
var bindDiagnostics = sourceFile.bindDiagnostics;
|
||||
var checkDiagnostics = typeChecker.getDiagnostics(sourceFile, cancellationToken);
|
||||
var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics);
|
||||
var fileProcessingDiagnosticsInFile = fileProcessingDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
var programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(fileProcessingDiagnosticsInFile).concat(programDiagnosticsInFile);
|
||||
});
|
||||
}
|
||||
function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) {
|
||||
@@ -29825,7 +29847,8 @@ var ts;
|
||||
}
|
||||
function getOptionsDiagnostics() {
|
||||
var allDiagnostics = [];
|
||||
ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, fileProcessingDiagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, programDiagnostics.getGlobalDiagnostics());
|
||||
return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
|
||||
}
|
||||
function getGlobalDiagnostics() {
|
||||
@@ -29915,10 +29938,10 @@ var ts;
|
||||
}
|
||||
if (diagnostic) {
|
||||
if (refFile !== undefined && refEnd !== undefined && refPos !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29935,10 +29958,10 @@ var ts;
|
||||
}
|
||||
var file = host.getSourceFile(fileName, options.target, function (hostErrorMessage) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
});
|
||||
filesByName.set(canonicalName, file);
|
||||
@@ -29966,10 +29989,10 @@ var ts;
|
||||
var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName;
|
||||
if (canonicalName !== sourceFileName) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29990,9 +30013,23 @@ var ts;
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, file.fileName);
|
||||
for (var i = 0; i < file.imports.length; ++i) {
|
||||
var resolution = resolutions[i];
|
||||
ts.setResolvedModuleName(file, moduleNames[i], resolution);
|
||||
ts.setResolvedModule(file, moduleNames[i], resolution);
|
||||
if (resolution && !options.noResolve) {
|
||||
findModuleSourceFile(resolution, file.imports[i]);
|
||||
var importedFile = findModuleSourceFile(resolution.resolvedFileName, file.imports[i]);
|
||||
if (importedFile && resolution.isExternalLibraryImport) {
|
||||
if (!ts.isExternalModule(importedFile)) {
|
||||
var start_2 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_2, file.imports[i].end - start_2, ts.Diagnostics.File_0_is_not_a_module, importedFile.fileName));
|
||||
}
|
||||
else if (!ts.fileExtensionIs(importedFile.fileName, ".d.ts")) {
|
||||
var start_3 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_3, file.imports[i].end - start_3, ts.Diagnostics.Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
else if (importedFile.referencedFiles.length) {
|
||||
var firstRef = importedFile.referencedFiles[0];
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(importedFile, firstRef.pos, firstRef.end - firstRef.pos, ts.Diagnostics.Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30001,7 +30038,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
function findModuleSourceFile(fileName, nameLiteral) {
|
||||
return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end);
|
||||
return findSourceFile(fileName, false, file, ts.skipTrivia(file.text, nameLiteral.pos), nameLiteral.end);
|
||||
}
|
||||
}
|
||||
function computeCommonSourceDirectory(sourceFiles) {
|
||||
@@ -30020,7 +30057,7 @@ var ts;
|
||||
for (var i = 0, n = Math.min(commonPathComponents.length, sourcePathComponents.length); i < n; i++) {
|
||||
if (commonPathComponents[i] !== sourcePathComponents[i]) {
|
||||
if (i === 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
return;
|
||||
}
|
||||
commonPathComponents.length = i;
|
||||
@@ -30043,7 +30080,7 @@ var ts;
|
||||
if (!ts.isDeclarationFile(sourceFile)) {
|
||||
var absoluteSourceFilePath = host.getCanonicalFileName(ts.getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));
|
||||
if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
allFilesBelongToPath = false;
|
||||
}
|
||||
}
|
||||
@@ -30054,43 +30091,43 @@ var ts;
|
||||
function verifyCompilerOptions() {
|
||||
if (options.isolatedModules) {
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
}
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSources) {
|
||||
if (!options.sourceMap && !options.inlineSourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
}
|
||||
}
|
||||
if (options.out && options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
}
|
||||
if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) {
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -30099,20 +30136,20 @@ var ts;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2) {
|
||||
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));
|
||||
programDiagnostics.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_isolatedModules_flag_is_provided));
|
||||
programDiagnostics.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) {
|
||||
var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
programDiagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
}
|
||||
if (options.module && languageVersion >= 2) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
}
|
||||
if (options.outDir ||
|
||||
options.sourceRoot ||
|
||||
@@ -30130,25 +30167,25 @@ var ts;
|
||||
}
|
||||
if (options.noEmit) {
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
}
|
||||
if (options.outDir) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
}
|
||||
}
|
||||
if (options.emitDecoratorMetadata &&
|
||||
!options.experimentalDecorators) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
}
|
||||
if (options.experimentalAsyncFunctions &&
|
||||
options.target !== 2) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30397,8 +30434,8 @@ var ts;
|
||||
"node": 2,
|
||||
"classic": 1
|
||||
},
|
||||
experimental: true,
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6,
|
||||
error: ts.Diagnostics.Argument_for_moduleResolution_option_must_be_node_or_classic
|
||||
}
|
||||
];
|
||||
var optionNameMapCache;
|
||||
|
||||
+260
-174
@@ -1431,6 +1431,8 @@ var ts;
|
||||
Cannot_emit_namespaced_JSX_elements_in_React: { code: 2650, category: ts.DiagnosticCategory.Error, key: "Cannot emit namespaced JSX elements in React" },
|
||||
A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: { code: 2651, category: ts.DiagnosticCategory.Error, key: "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums." },
|
||||
Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: { code: 2652, category: ts.DiagnosticCategory.Error, key: "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead." },
|
||||
Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition: { code: 2654, category: ts.DiagnosticCategory.Error, key: "Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition." },
|
||||
Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition: { code: 2655, category: ts.DiagnosticCategory.Error, key: "Exported external package typings can only be in '.d.ts' files. Please contact the package author to update the package definition." },
|
||||
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
|
||||
@@ -1564,13 +1566,14 @@ var ts;
|
||||
Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: { code: 6060, category: ts.DiagnosticCategory.Message, key: "Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)." },
|
||||
NEWLINE: { code: 6061, category: ts.DiagnosticCategory.Message, key: "NEWLINE" },
|
||||
Argument_for_newLine_option_must_be_CRLF_or_LF: { code: 6062, category: ts.DiagnosticCategory.Error, key: "Argument for '--newLine' option must be 'CRLF' or 'LF'." },
|
||||
Argument_for_moduleResolution_option_must_be_node_or_classic: { code: 6063, category: ts.DiagnosticCategory.Error, key: "Argument for '--moduleResolution' option must be 'node' or 'classic'." },
|
||||
Specify_JSX_code_generation_Colon_preserve_or_react: { code: 6080, category: ts.DiagnosticCategory.Message, key: "Specify JSX code generation: 'preserve' or 'react'" },
|
||||
Argument_for_jsx_must_be_preserve_or_react: { code: 6081, category: ts.DiagnosticCategory.Message, key: "Argument for '--jsx' must be 'preserve' or 'react'." },
|
||||
Enables_experimental_support_for_ES7_decorators: { code: 6065, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 decorators." },
|
||||
Enables_experimental_support_for_emitting_type_metadata_for_decorators: { code: 6066, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for emitting type metadata for decorators." },
|
||||
Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower: { code: 6067, category: ts.DiagnosticCategory.Message, key: "Option 'experimentalAsyncFunctions' cannot be specified when targeting ES5 or lower." },
|
||||
Enables_experimental_support_for_ES7_async_functions: { code: 6068, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 async functions." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) ." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)." },
|
||||
Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: { code: 6070, category: ts.DiagnosticCategory.Message, key: "Initializes a TypeScript project and creates a tsconfig.json file." },
|
||||
Successfully_created_a_tsconfig_json_file: { code: 6071, category: ts.DiagnosticCategory.Message, key: "Successfully created a tsconfig.json file." },
|
||||
Suppress_excess_property_checks_for_object_literals: { code: 6072, category: ts.DiagnosticCategory.Message, key: "Suppress excess property checks for object literals." },
|
||||
@@ -3223,8 +3226,8 @@ var ts;
|
||||
"node": 2,
|
||||
"classic": 1
|
||||
},
|
||||
experimental: true,
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6,
|
||||
error: ts.Diagnostics.Argument_for_moduleResolution_option_must_be_node_or_classic
|
||||
}
|
||||
];
|
||||
var optionNameMapCache;
|
||||
@@ -3507,21 +3510,21 @@ var ts;
|
||||
return true;
|
||||
}
|
||||
ts.arrayIsEqualTo = arrayIsEqualTo;
|
||||
function hasResolvedModuleName(sourceFile, moduleNameText) {
|
||||
function hasResolvedModule(sourceFile, moduleNameText) {
|
||||
return sourceFile.resolvedModules && ts.hasProperty(sourceFile.resolvedModules, moduleNameText);
|
||||
}
|
||||
ts.hasResolvedModuleName = hasResolvedModuleName;
|
||||
function getResolvedModuleFileName(sourceFile, moduleNameText) {
|
||||
return hasResolvedModuleName(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
ts.hasResolvedModule = hasResolvedModule;
|
||||
function getResolvedModule(sourceFile, moduleNameText) {
|
||||
return hasResolvedModule(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
}
|
||||
ts.getResolvedModuleFileName = getResolvedModuleFileName;
|
||||
function setResolvedModuleName(sourceFile, moduleNameText, resolvedFileName) {
|
||||
ts.getResolvedModule = getResolvedModule;
|
||||
function setResolvedModule(sourceFile, moduleNameText, resolvedModule) {
|
||||
if (!sourceFile.resolvedModules) {
|
||||
sourceFile.resolvedModules = {};
|
||||
}
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedFileName;
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedModule;
|
||||
}
|
||||
ts.setResolvedModuleName = setResolvedModuleName;
|
||||
ts.setResolvedModule = setResolvedModule;
|
||||
function containsParseError(node) {
|
||||
aggregateChildData(node);
|
||||
return (node.parserContextFlags & 64) !== 0;
|
||||
@@ -4723,11 +4726,21 @@ var ts;
|
||||
add: add,
|
||||
getGlobalDiagnostics: getGlobalDiagnostics,
|
||||
getDiagnostics: getDiagnostics,
|
||||
getModificationCount: getModificationCount
|
||||
getModificationCount: getModificationCount,
|
||||
reattachFileDiagnostics: reattachFileDiagnostics
|
||||
};
|
||||
function getModificationCount() {
|
||||
return modificationCount;
|
||||
}
|
||||
function reattachFileDiagnostics(newFile) {
|
||||
if (!ts.hasProperty(fileDiagnostics, newFile.fileName)) {
|
||||
return;
|
||||
}
|
||||
for (var _i = 0, _a = fileDiagnostics[newFile.fileName]; _i < _a.length; _i++) {
|
||||
var diagnostic = _a[_i];
|
||||
diagnostic.file = newFile;
|
||||
}
|
||||
}
|
||||
function add(diagnostic) {
|
||||
var diagnostics;
|
||||
if (diagnostic.file) {
|
||||
@@ -11427,8 +11440,8 @@ var ts;
|
||||
return symbol;
|
||||
}
|
||||
}
|
||||
var fileName = ts.getResolvedModuleFileName(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = fileName && host.getSourceFile(fileName);
|
||||
var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
|
||||
if (sourceFile) {
|
||||
if (sourceFile.symbol) {
|
||||
return sourceFile.symbol;
|
||||
@@ -14511,6 +14524,7 @@ var ts;
|
||||
var prop = _a[_i];
|
||||
if (!isKnownProperty(target, prop.name)) {
|
||||
if (reportErrors) {
|
||||
errorNode = prop.valueDeclaration;
|
||||
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
|
||||
}
|
||||
return true;
|
||||
@@ -21432,7 +21446,10 @@ var ts;
|
||||
var symbols = [];
|
||||
var name_16 = symbol.name;
|
||||
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
|
||||
symbols.push(getPropertyOfType(t, name_16));
|
||||
var symbol = getPropertyOfType(t, name_16);
|
||||
if (symbol) {
|
||||
symbols.push(symbol);
|
||||
}
|
||||
});
|
||||
return symbols;
|
||||
}
|
||||
@@ -24967,8 +24984,10 @@ var ts;
|
||||
function jsxEmitPreserve(node) {
|
||||
function emitJsxAttribute(node) {
|
||||
emit(node.name);
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
if (node.initializer) {
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
}
|
||||
}
|
||||
function emitJsxSpreadAttribute(node) {
|
||||
write("{...");
|
||||
@@ -26440,6 +26459,9 @@ var ts;
|
||||
}
|
||||
function emitExportSpecifierInSystemModule(specifier) {
|
||||
ts.Debug.assert(compilerOptions.module === 4);
|
||||
if (!resolver.getReferencedValueDeclaration(specifier.propertyName || specifier.name) && !resolver.isValueAliasDeclaration(specifier)) {
|
||||
return;
|
||||
}
|
||||
writeLine();
|
||||
emitStart(specifier.name);
|
||||
write(exportFunctionForFile + "(\"");
|
||||
@@ -26491,19 +26513,19 @@ var ts;
|
||||
write(")");
|
||||
}
|
||||
}
|
||||
function ensureIdentifier(expr) {
|
||||
if (expr.kind !== 67) {
|
||||
var identifier = createTempVariable(0);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
expr = identifier;
|
||||
function ensureIdentifier(expr, reuseIdentifierExpressions) {
|
||||
if (expr.kind === 67 && reuseIdentifierExpressions) {
|
||||
return expr;
|
||||
}
|
||||
return expr;
|
||||
var identifier = createTempVariable(0);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
return identifier;
|
||||
}
|
||||
function createDefaultValueCheck(value, defaultValue) {
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
var equals = ts.createSynthesizedNode(179);
|
||||
equals.left = value;
|
||||
equals.operatorToken = ts.createSynthesizedNode(32);
|
||||
@@ -26544,7 +26566,7 @@ var ts;
|
||||
function emitObjectLiteralAssignment(target, value) {
|
||||
var properties = target.properties;
|
||||
if (properties.length !== 1) {
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
}
|
||||
for (var _a = 0; _a < properties.length; _a++) {
|
||||
var p = properties[_a];
|
||||
@@ -26557,7 +26579,7 @@ var ts;
|
||||
function emitArrayLiteralAssignment(target, value) {
|
||||
var elements = target.elements;
|
||||
if (elements.length !== 1) {
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var e = elements[i];
|
||||
@@ -26599,7 +26621,7 @@ var ts;
|
||||
if (root.parent.kind !== 170) {
|
||||
write("(");
|
||||
}
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, true);
|
||||
emitDestructuringAssignment(target, value);
|
||||
write(", ");
|
||||
emit(value);
|
||||
@@ -26618,10 +26640,11 @@ var ts;
|
||||
if (ts.isBindingPattern(target.name)) {
|
||||
var pattern = target.name;
|
||||
var elements = pattern.elements;
|
||||
if (elements.length !== 1) {
|
||||
value = ensureIdentifier(value);
|
||||
var numElements = elements.length;
|
||||
if (numElements !== 1) {
|
||||
value = ensureIdentifier(value, numElements !== 0);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
for (var i = 0; i < numElements; i++) {
|
||||
var element = elements[i];
|
||||
if (pattern.kind === 159) {
|
||||
var propName = element.propertyName || element.name;
|
||||
@@ -26631,7 +26654,7 @@ var ts;
|
||||
if (!element.dotDotDotToken) {
|
||||
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
|
||||
}
|
||||
else if (i === elements.length - 1) {
|
||||
else if (i === numElements - 1) {
|
||||
emitBindingElement(element, createSliceCall(value, i));
|
||||
}
|
||||
}
|
||||
@@ -27751,50 +27774,49 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
function emitSerializedTypeNode(node) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 101:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150:
|
||||
case 151:
|
||||
write("Function");
|
||||
return;
|
||||
case 154:
|
||||
case 155:
|
||||
write("Array");
|
||||
return;
|
||||
case 148:
|
||||
case 118:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128:
|
||||
case 9:
|
||||
write("String");
|
||||
return;
|
||||
case 126:
|
||||
write("Number");
|
||||
return;
|
||||
case 129:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152:
|
||||
case 153:
|
||||
case 156:
|
||||
case 157:
|
||||
case 115:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
if (node) {
|
||||
switch (node.kind) {
|
||||
case 101:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150:
|
||||
case 151:
|
||||
write("Function");
|
||||
return;
|
||||
case 154:
|
||||
case 155:
|
||||
write("Array");
|
||||
return;
|
||||
case 148:
|
||||
case 118:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128:
|
||||
case 9:
|
||||
write("String");
|
||||
return;
|
||||
case 126:
|
||||
write("Number");
|
||||
return;
|
||||
case 129:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152:
|
||||
case 153:
|
||||
case 156:
|
||||
case 157:
|
||||
case 115:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
write("Object");
|
||||
}
|
||||
@@ -28708,7 +28730,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node)) {
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
@@ -29794,7 +29816,7 @@ var ts;
|
||||
ts.ioReadTime = 0;
|
||||
ts.ioWriteTime = 0;
|
||||
var emptyArray = [];
|
||||
ts.version = "1.6.0";
|
||||
ts.version = "1.6.2";
|
||||
function findConfigFile(searchPath) {
|
||||
var fileName = "tsconfig.json";
|
||||
while (true) {
|
||||
@@ -29834,10 +29856,12 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(containingDirectory, moduleName));
|
||||
var resolvedFileName = loadNodeModuleFromFile(candidate, false, failedLookupLocations, host);
|
||||
if (resolvedFileName) {
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
resolvedFileName = loadNodeModuleFromDirectory(candidate, false, failedLookupLocations, host);
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return resolvedFileName
|
||||
? { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
return loadModuleFromNodeModules(moduleName, containingDirectory, host);
|
||||
@@ -29895,11 +29919,11 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(nodeModulesFolder, moduleName));
|
||||
var result = loadNodeModuleFromFile(candidate, true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
result = loadNodeModuleFromDirectory(candidate, true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
}
|
||||
var parentPath = ts.getDirectoryPath(directory);
|
||||
@@ -29908,36 +29932,15 @@ var ts;
|
||||
}
|
||||
directory = parentPath;
|
||||
}
|
||||
return { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
function baseUrlModuleNameResolver(moduleName, containingFile, baseUrl, host) {
|
||||
ts.Debug.assert(baseUrl !== undefined);
|
||||
var normalizedModuleName = ts.normalizeSlashes(moduleName);
|
||||
var basePart = useBaseUrl(moduleName) ? baseUrl : ts.getDirectoryPath(containingFile);
|
||||
var candidate = ts.normalizePath(ts.combinePaths(basePart, moduleName));
|
||||
var failedLookupLocations = [];
|
||||
return ts.forEach(ts.supportedExtensions, function (ext) { return tryLoadFile(candidate + ext); }) || { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
function tryLoadFile(location) {
|
||||
if (host.fileExists(location)) {
|
||||
return { resolvedFileName: location, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
failedLookupLocations.push(location);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
ts.baseUrlModuleNameResolver = baseUrlModuleNameResolver;
|
||||
function nameStartsWithDotSlashOrDotDotSlash(name) {
|
||||
var i = name.lastIndexOf("./", 1);
|
||||
return i === 0 || (i === 1 && name.charCodeAt(0) === 46);
|
||||
}
|
||||
function useBaseUrl(moduleName) {
|
||||
return ts.getRootLength(moduleName) === 0 && !nameStartsWithDotSlashOrDotDotSlash(moduleName);
|
||||
}
|
||||
function classicNameResolver(moduleName, containingFile, compilerOptions, host) {
|
||||
if (moduleName.indexOf('!') != -1) {
|
||||
return { resolvedFileName: undefined, failedLookupLocations: [] };
|
||||
return { resolvedModule: undefined, failedLookupLocations: [] };
|
||||
}
|
||||
var searchPath = ts.getDirectoryPath(containingFile);
|
||||
var searchName;
|
||||
@@ -29966,7 +29969,9 @@ var ts;
|
||||
}
|
||||
searchPath = parentPath;
|
||||
}
|
||||
return { resolvedFileName: referencedSourceFile, failedLookupLocations: failedLookupLocations };
|
||||
return referencedSourceFile
|
||||
? { resolvedModule: { resolvedFileName: referencedSourceFile }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
ts.classicNameResolver = classicNameResolver;
|
||||
ts.defaultInitCompilerOptions = {
|
||||
@@ -30079,7 +30084,8 @@ var ts;
|
||||
function createProgram(rootNames, options, host, oldProgram) {
|
||||
var program;
|
||||
var files = [];
|
||||
var diagnostics = ts.createDiagnosticCollection();
|
||||
var fileProcessingDiagnostics = ts.createDiagnosticCollection();
|
||||
var programDiagnostics = ts.createDiagnosticCollection();
|
||||
var commonSourceDirectory;
|
||||
var diagnosticsProducingTypeChecker;
|
||||
var noDiagnosticsTypeChecker;
|
||||
@@ -30087,8 +30093,9 @@ var ts;
|
||||
var skipDefaultLib = options.noLib;
|
||||
var start = new Date().getTime();
|
||||
host = host || createCompilerHost(options);
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames ||
|
||||
(function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedFileName; }); });
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames
|
||||
? (function (moduleNames, containingFile) { return host.resolveModuleNames(moduleNames, containingFile); })
|
||||
: (function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedModule; }); });
|
||||
var filesByName = ts.createFileMap(function (fileName) { return host.getCanonicalFileName(fileName); });
|
||||
if (oldProgram) {
|
||||
var oldOptions = oldProgram.getCompilerOptions();
|
||||
@@ -30128,7 +30135,8 @@ var ts;
|
||||
getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); },
|
||||
getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); },
|
||||
getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); },
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); }
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); },
|
||||
getFileProcessingDiagnostics: function () { return fileProcessingDiagnostics; }
|
||||
};
|
||||
return program;
|
||||
function getClassifiableNames() {
|
||||
@@ -30152,6 +30160,7 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
var newSourceFiles = [];
|
||||
var modifiedSourceFiles = [];
|
||||
for (var _i = 0, _a = oldProgram.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var oldSourceFile = _a[_i];
|
||||
var newSourceFile = host.getSourceFile(oldSourceFile.fileName, options.target);
|
||||
@@ -30173,13 +30182,20 @@ var ts;
|
||||
var moduleNames = ts.map(newSourceFile.imports, function (name) { return name.text; });
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, newSourceFile.fileName);
|
||||
for (var i = 0; i < moduleNames.length; ++i) {
|
||||
var oldResolution = ts.getResolvedModuleFileName(oldSourceFile, moduleNames[i]);
|
||||
if (oldResolution !== resolutions[i]) {
|
||||
var newResolution = resolutions[i];
|
||||
var oldResolution = ts.getResolvedModule(oldSourceFile, moduleNames[i]);
|
||||
var resolutionChanged = oldResolution
|
||||
? !newResolution ||
|
||||
oldResolution.resolvedFileName !== newResolution.resolvedFileName ||
|
||||
!!oldResolution.isExternalLibraryImport !== !!newResolution.isExternalLibraryImport
|
||||
: newResolution;
|
||||
if (resolutionChanged) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
newSourceFile.resolvedModules = oldSourceFile.resolvedModules;
|
||||
modifiedSourceFiles.push(newSourceFile);
|
||||
}
|
||||
else {
|
||||
newSourceFile = oldSourceFile;
|
||||
@@ -30191,6 +30207,11 @@ var ts;
|
||||
filesByName.set(file.fileName, file);
|
||||
}
|
||||
files = newSourceFiles;
|
||||
fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics();
|
||||
for (var _c = 0; _c < modifiedSourceFiles.length; _c++) {
|
||||
var modifiedFile = modifiedSourceFiles[_c];
|
||||
fileProcessingDiagnostics.reattachFileDiagnostics(modifiedFile);
|
||||
}
|
||||
oldProgram.structureIsReused = true;
|
||||
return true;
|
||||
}
|
||||
@@ -30272,8 +30293,9 @@ var ts;
|
||||
ts.Debug.assert(!!sourceFile.bindDiagnostics);
|
||||
var bindDiagnostics = sourceFile.bindDiagnostics;
|
||||
var checkDiagnostics = typeChecker.getDiagnostics(sourceFile, cancellationToken);
|
||||
var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics);
|
||||
var fileProcessingDiagnosticsInFile = fileProcessingDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
var programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(fileProcessingDiagnosticsInFile).concat(programDiagnosticsInFile);
|
||||
});
|
||||
}
|
||||
function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) {
|
||||
@@ -30287,7 +30309,8 @@ var ts;
|
||||
}
|
||||
function getOptionsDiagnostics() {
|
||||
var allDiagnostics = [];
|
||||
ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, fileProcessingDiagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, programDiagnostics.getGlobalDiagnostics());
|
||||
return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
|
||||
}
|
||||
function getGlobalDiagnostics() {
|
||||
@@ -30377,10 +30400,10 @@ var ts;
|
||||
}
|
||||
if (diagnostic) {
|
||||
if (refFile !== undefined && refEnd !== undefined && refPos !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30397,10 +30420,10 @@ var ts;
|
||||
}
|
||||
var file = host.getSourceFile(fileName, options.target, function (hostErrorMessage) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
});
|
||||
filesByName.set(canonicalName, file);
|
||||
@@ -30428,10 +30451,10 @@ var ts;
|
||||
var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName;
|
||||
if (canonicalName !== sourceFileName) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30452,9 +30475,23 @@ var ts;
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, file.fileName);
|
||||
for (var i = 0; i < file.imports.length; ++i) {
|
||||
var resolution = resolutions[i];
|
||||
ts.setResolvedModuleName(file, moduleNames[i], resolution);
|
||||
ts.setResolvedModule(file, moduleNames[i], resolution);
|
||||
if (resolution && !options.noResolve) {
|
||||
findModuleSourceFile(resolution, file.imports[i]);
|
||||
var importedFile = findModuleSourceFile(resolution.resolvedFileName, file.imports[i]);
|
||||
if (importedFile && resolution.isExternalLibraryImport) {
|
||||
if (!ts.isExternalModule(importedFile)) {
|
||||
var start_2 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_2, file.imports[i].end - start_2, ts.Diagnostics.File_0_is_not_a_module, importedFile.fileName));
|
||||
}
|
||||
else if (!ts.fileExtensionIs(importedFile.fileName, ".d.ts")) {
|
||||
var start_3 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_3, file.imports[i].end - start_3, ts.Diagnostics.Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
else if (importedFile.referencedFiles.length) {
|
||||
var firstRef = importedFile.referencedFiles[0];
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(importedFile, firstRef.pos, firstRef.end - firstRef.pos, ts.Diagnostics.Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -30463,7 +30500,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
function findModuleSourceFile(fileName, nameLiteral) {
|
||||
return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end);
|
||||
return findSourceFile(fileName, false, file, ts.skipTrivia(file.text, nameLiteral.pos), nameLiteral.end);
|
||||
}
|
||||
}
|
||||
function computeCommonSourceDirectory(sourceFiles) {
|
||||
@@ -30482,7 +30519,7 @@ var ts;
|
||||
for (var i = 0, n = Math.min(commonPathComponents.length, sourcePathComponents.length); i < n; i++) {
|
||||
if (commonPathComponents[i] !== sourcePathComponents[i]) {
|
||||
if (i === 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
return;
|
||||
}
|
||||
commonPathComponents.length = i;
|
||||
@@ -30505,7 +30542,7 @@ var ts;
|
||||
if (!ts.isDeclarationFile(sourceFile)) {
|
||||
var absoluteSourceFilePath = host.getCanonicalFileName(ts.getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));
|
||||
if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
allFilesBelongToPath = false;
|
||||
}
|
||||
}
|
||||
@@ -30516,43 +30553,43 @@ var ts;
|
||||
function verifyCompilerOptions() {
|
||||
if (options.isolatedModules) {
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
}
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSources) {
|
||||
if (!options.sourceMap && !options.inlineSourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
}
|
||||
}
|
||||
if (options.out && options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
}
|
||||
if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) {
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -30561,20 +30598,20 @@ var ts;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2) {
|
||||
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));
|
||||
programDiagnostics.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_isolatedModules_flag_is_provided));
|
||||
programDiagnostics.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) {
|
||||
var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
programDiagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
}
|
||||
if (options.module && languageVersion >= 2) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
}
|
||||
if (options.outDir ||
|
||||
options.sourceRoot ||
|
||||
@@ -30592,25 +30629,25 @@ var ts;
|
||||
}
|
||||
if (options.noEmit) {
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
}
|
||||
if (options.outDir) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
}
|
||||
}
|
||||
if (options.emitDecoratorMetadata &&
|
||||
!options.experimentalDecorators) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
}
|
||||
if (options.experimentalAsyncFunctions &&
|
||||
options.target !== 2) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -32681,7 +32718,7 @@ var ts;
|
||||
function findPrecedingToken(position, sourceFile, startNode) {
|
||||
return find(startNode || sourceFile);
|
||||
function findRightmostToken(n) {
|
||||
if (isToken(n)) {
|
||||
if (isToken(n) || n.kind === 234) {
|
||||
return n;
|
||||
}
|
||||
var children = n.getChildren();
|
||||
@@ -32689,21 +32726,22 @@ var ts;
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
function find(n) {
|
||||
if (isToken(n)) {
|
||||
if (isToken(n) || n.kind === 234) {
|
||||
return n;
|
||||
}
|
||||
var children = n.getChildren();
|
||||
for (var i = 0, len = children.length; i < len; i++) {
|
||||
var child = children[i];
|
||||
if (nodeHasTokens(child)) {
|
||||
if (position <= child.end) {
|
||||
if (child.getStart(sourceFile) >= position) {
|
||||
var candidate = findRightmostChildNodeWithTokens(children, i);
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
else {
|
||||
return find(child);
|
||||
}
|
||||
if (position < child.end && (nodeHasTokens(child) || child.kind === 234)) {
|
||||
var start = child.getStart(sourceFile);
|
||||
var lookInPreviousChild = (start >= position) ||
|
||||
(child.kind === 234 && start === child.end);
|
||||
if (lookInPreviousChild) {
|
||||
var candidate = findRightmostChildNodeWithTokens(children, i);
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
else {
|
||||
return find(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33143,6 +33181,18 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function shouldRescanJsxIdentifier(node) {
|
||||
if (node.parent) {
|
||||
switch (node.parent.kind) {
|
||||
case 236:
|
||||
case 233:
|
||||
case 235:
|
||||
case 232:
|
||||
return node.kind === 67;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function shouldRescanSlashToken(container) {
|
||||
return container.kind === 10;
|
||||
}
|
||||
@@ -33167,7 +33217,9 @@ var ts;
|
||||
? 2
|
||||
: shouldRescanTemplateToken(n)
|
||||
? 3
|
||||
: 0;
|
||||
: shouldRescanJsxIdentifier(n)
|
||||
? 4
|
||||
: 0;
|
||||
if (lastTokenInfo && expectedScanAction === lastScanAction) {
|
||||
return fixTokenKind(lastTokenInfo, n);
|
||||
}
|
||||
@@ -33191,6 +33243,10 @@ var ts;
|
||||
currentToken = scanner.reScanTemplateToken();
|
||||
lastScanAction = 3;
|
||||
}
|
||||
else if (expectedScanAction === 4 && currentToken === 67) {
|
||||
currentToken = scanner.scanJsxIdentifier();
|
||||
lastScanAction = 4;
|
||||
}
|
||||
else {
|
||||
lastScanAction = 0;
|
||||
}
|
||||
@@ -33469,7 +33525,7 @@ var ts;
|
||||
this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBeforeBlockInFunctionDeclarationContext), 8));
|
||||
this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments;
|
||||
this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1);
|
||||
this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([67, 3]);
|
||||
this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([67, 3, 71]);
|
||||
this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1);
|
||||
this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([18, 3, 77, 98, 83, 78]);
|
||||
this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1);
|
||||
@@ -33536,6 +33592,8 @@ var ts;
|
||||
this.NoSpaceBeforeBar = new formatting.Rule(formatting.RuleDescriptor.create3(46, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8));
|
||||
this.SpaceAfterBar = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 46), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2));
|
||||
this.NoSpaceAfterBar = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 46), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8));
|
||||
this.SpaceBeforeAmpersand = new formatting.Rule(formatting.RuleDescriptor.create3(45, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2));
|
||||
this.SpaceAfterAmpersand = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 45), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2));
|
||||
this.HighPriorityCommonRules =
|
||||
[
|
||||
this.IgnoreBeforeComment, this.IgnoreAfterLineComment,
|
||||
@@ -33566,6 +33624,7 @@ var ts;
|
||||
this.SpaceAfterTypeKeyword, this.NoSpaceAfterTypeKeyword,
|
||||
this.SpaceBetweenTagAndTemplateString, this.NoSpaceBetweenTagAndTemplateString,
|
||||
this.SpaceBeforeBar, this.NoSpaceBeforeBar, this.SpaceAfterBar, this.NoSpaceAfterBar,
|
||||
this.SpaceBeforeAmpersand, this.SpaceAfterAmpersand,
|
||||
this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport,
|
||||
this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords,
|
||||
this.SpaceAfterModuleName,
|
||||
@@ -33736,6 +33795,7 @@ var ts;
|
||||
Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) {
|
||||
switch (node.kind) {
|
||||
case 212:
|
||||
case 184:
|
||||
case 213:
|
||||
case 215:
|
||||
case 153:
|
||||
@@ -35266,6 +35326,7 @@ var ts;
|
||||
function nodeContentIsAlwaysIndented(kind) {
|
||||
switch (kind) {
|
||||
case 212:
|
||||
case 184:
|
||||
case 213:
|
||||
case 215:
|
||||
case 214:
|
||||
@@ -35290,13 +35351,13 @@ var ts;
|
||||
case 160:
|
||||
case 159:
|
||||
case 231:
|
||||
case 232:
|
||||
case 140:
|
||||
case 145:
|
||||
case 146:
|
||||
case 136:
|
||||
case 150:
|
||||
case 151:
|
||||
case 156:
|
||||
case 158:
|
||||
case 168:
|
||||
case 176:
|
||||
@@ -36267,7 +36328,7 @@ var ts;
|
||||
var outputText;
|
||||
var sourceMapText;
|
||||
var compilerHost = {
|
||||
getSourceFile: function (fileName, target) { return fileName === inputFileName ? sourceFile : undefined; },
|
||||
getSourceFile: function (fileName, target) { return fileName === ts.normalizeSlashes(inputFileName) ? sourceFile : undefined; },
|
||||
writeFile: function (name, text, writeByteOrderMark) {
|
||||
if (ts.fileExtensionIs(name, ".map")) {
|
||||
ts.Debug.assert(sourceMapText === undefined, "Unexpected multiple source map outputs for the file '" + name + "'");
|
||||
@@ -36581,6 +36642,24 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token === 87) {
|
||||
token = scanner.scan();
|
||||
if (token === 67 || ts.isKeyword(token)) {
|
||||
token = scanner.scan();
|
||||
if (token === 55) {
|
||||
token = scanner.scan();
|
||||
if (token === 125) {
|
||||
token = scanner.scan();
|
||||
if (token === 17) {
|
||||
token = scanner.scan();
|
||||
if (token === 9) {
|
||||
recordModuleName();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
token = scanner.scan();
|
||||
}
|
||||
@@ -37164,9 +37243,9 @@ var ts;
|
||||
log("getCompletionData: Get previous token 1: " + (new Date().getTime() - start));
|
||||
var contextToken = previousToken;
|
||||
if (contextToken && position <= contextToken.end && ts.isWord(contextToken.kind)) {
|
||||
var start_2 = new Date().getTime();
|
||||
var start_4 = new Date().getTime();
|
||||
contextToken = ts.findPrecedingToken(contextToken.getFullStart(), sourceFile);
|
||||
log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_2));
|
||||
log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_4));
|
||||
}
|
||||
var node = currentToken;
|
||||
var isRightOfDot = false;
|
||||
@@ -37361,9 +37440,9 @@ var ts;
|
||||
if (contextToken.kind === 9
|
||||
|| contextToken.kind === 10
|
||||
|| ts.isTemplateLiteralKind(contextToken.kind)) {
|
||||
var start_3 = contextToken.getStart();
|
||||
var start_5 = contextToken.getStart();
|
||||
var end = contextToken.getEnd();
|
||||
if (start_3 < position && position < end) {
|
||||
if (start_5 < position && position < end) {
|
||||
return true;
|
||||
}
|
||||
if (position === end) {
|
||||
@@ -41711,7 +41790,7 @@ var ts;
|
||||
LSHost.prototype.resolveModuleNames = function (moduleNames, containingFile) {
|
||||
var currentResolutionsInFile = this.resolvedModuleNames.get(containingFile);
|
||||
var newResolutions = {};
|
||||
var resolvedFileNames = [];
|
||||
var resolvedModules = [];
|
||||
var compilerOptions = this.getCompilationSettings();
|
||||
for (var _i = 0; _i < moduleNames.length; _i++) {
|
||||
var moduleName = moduleNames[_i];
|
||||
@@ -41728,15 +41807,15 @@ var ts;
|
||||
}
|
||||
}
|
||||
ts.Debug.assert(resolution !== undefined);
|
||||
resolvedFileNames.push(resolution.resolvedFileName);
|
||||
resolvedModules.push(resolution.resolvedModule);
|
||||
}
|
||||
this.resolvedModuleNames.set(containingFile, newResolutions);
|
||||
return resolvedFileNames;
|
||||
return resolvedModules;
|
||||
function moduleResolutionIsValid(resolution) {
|
||||
if (!resolution) {
|
||||
return false;
|
||||
}
|
||||
if (resolution.resolvedFileName) {
|
||||
if (resolution.resolvedModule) {
|
||||
return true;
|
||||
}
|
||||
return resolution.failedLookupLocations.length === 0;
|
||||
@@ -43700,7 +43779,10 @@ var ts;
|
||||
if ("getModuleResolutionsForFile" in this.shimHost) {
|
||||
this.resolveModuleNames = function (moduleNames, containingFile) {
|
||||
var resolutionsInFile = JSON.parse(_this.shimHost.getModuleResolutionsForFile(containingFile));
|
||||
return ts.map(moduleNames, function (name) { return ts.lookUp(resolutionsInFile, name); });
|
||||
return ts.map(moduleNames, function (name) {
|
||||
var result = ts.lookUp(resolutionsInFile, name);
|
||||
return result ? { resolvedFileName: result } : undefined;
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -44175,7 +44257,11 @@ var ts;
|
||||
var _this = this;
|
||||
return this.forwardJSONCall("resolveModuleName('" + fileName + "')", function () {
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
return ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
return {
|
||||
resolvedFileName: result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
};
|
||||
});
|
||||
};
|
||||
CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) {
|
||||
|
||||
Vendored
+19
-15
@@ -13,7 +13,7 @@ See the Apache Version 2.0 License for specific language governing permissions
|
||||
and limitations under the License.
|
||||
***************************************************************************** */
|
||||
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
interface Map<T> {
|
||||
[index: string]: T;
|
||||
}
|
||||
@@ -1382,9 +1382,12 @@ declare module "typescript" {
|
||||
}
|
||||
interface ResolvedModule {
|
||||
resolvedFileName: string;
|
||||
isExternalLibraryImport?: boolean;
|
||||
}
|
||||
interface ResolvedModuleWithFailedLookupLocations {
|
||||
resolvedModule: ResolvedModule;
|
||||
failedLookupLocations: string[];
|
||||
}
|
||||
type ModuleNameResolver = (moduleName: string, containingFile: string, options: CompilerOptions, host: ModuleResolutionHost) => ResolvedModule;
|
||||
interface CompilerHost extends ModuleResolutionHost {
|
||||
getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile;
|
||||
getCancellationToken?(): CancellationToken;
|
||||
@@ -1394,7 +1397,7 @@ declare module "typescript" {
|
||||
getCanonicalFileName(fileName: string): string;
|
||||
useCaseSensitiveFileNames(): boolean;
|
||||
getNewLine(): string;
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): string[];
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
|
||||
}
|
||||
interface TextSpan {
|
||||
start: number;
|
||||
@@ -1405,7 +1408,7 @@ declare module "typescript" {
|
||||
newLength: number;
|
||||
}
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
interface System {
|
||||
args: string[];
|
||||
newLine: string;
|
||||
@@ -1429,7 +1432,7 @@ declare module "typescript" {
|
||||
}
|
||||
var sys: System;
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
interface ErrorCallback {
|
||||
(message: DiagnosticMessage, length: number): void;
|
||||
}
|
||||
@@ -1474,7 +1477,7 @@ declare module "typescript" {
|
||||
function isIdentifierPart(ch: number, languageVersion: ScriptTarget): boolean;
|
||||
function createScanner(languageVersion: ScriptTarget, skipTrivia: boolean, languageVariant?: LanguageVariant, text?: string, onError?: ErrorCallback, start?: number, length?: number): Scanner;
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
function getDefaultLibFileName(options: CompilerOptions): string;
|
||||
function textSpanEnd(span: TextSpan): number;
|
||||
function textSpanIsEmpty(span: TextSpan): boolean;
|
||||
@@ -1504,27 +1507,26 @@ declare module "typescript" {
|
||||
function collapseTextChangeRangesAcrossMultipleVersions(changes: TextChangeRange[]): TextChangeRange;
|
||||
function getTypeParameterOwner(d: Declaration): Declaration;
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
function getNodeConstructor(kind: SyntaxKind): new () => Node;
|
||||
function createNode(kind: SyntaxKind): Node;
|
||||
function forEachChild<T>(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T;
|
||||
function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile;
|
||||
function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile;
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
const version: string;
|
||||
function findConfigFile(searchPath: string): string;
|
||||
function resolveTripleslashReference(moduleName: string, containingFile: string): string;
|
||||
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModule;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, host: ModuleResolutionHost): ResolvedModule;
|
||||
function baseUrlModuleNameResolver(moduleName: string, containingFile: string, baseUrl: string, host: ModuleResolutionHost): ResolvedModule;
|
||||
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModule;
|
||||
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;
|
||||
function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
|
||||
function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string;
|
||||
function createProgram(rootNames: string[], options: CompilerOptions, host?: CompilerHost, oldProgram?: Program): Program;
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
function parseCommandLine(commandLine: string[], readFile?: (path: string) => string): ParsedCommandLine;
|
||||
/**
|
||||
* Read tsconfig.json file
|
||||
@@ -1551,7 +1553,7 @@ declare module "typescript" {
|
||||
*/
|
||||
function parseConfigFile(json: any, host: ParseConfigHost, basePath: string): ParsedCommandLine;
|
||||
}
|
||||
declare module "typescript" {
|
||||
declare namespace ts {
|
||||
/** The version of the language service API */
|
||||
let servicesVersion: string;
|
||||
interface Node {
|
||||
@@ -1649,7 +1651,7 @@ declare module "typescript" {
|
||||
trace?(s: string): void;
|
||||
error?(s: string): void;
|
||||
useCaseSensitiveFileNames?(): boolean;
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): string[];
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
|
||||
}
|
||||
interface LanguageService {
|
||||
cleanupSemanticCache(): void;
|
||||
@@ -2139,3 +2141,5 @@ declare module "typescript" {
|
||||
*/
|
||||
function getDefaultLibFilePath(options: CompilerOptions): string;
|
||||
}
|
||||
|
||||
export = ts;
|
||||
+287
-178
@@ -2300,6 +2300,8 @@ var ts;
|
||||
Cannot_emit_namespaced_JSX_elements_in_React: { code: 2650, category: ts.DiagnosticCategory.Error, key: "Cannot emit namespaced JSX elements in React" },
|
||||
A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: { code: 2651, category: ts.DiagnosticCategory.Error, key: "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums." },
|
||||
Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: { code: 2652, category: ts.DiagnosticCategory.Error, key: "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead." },
|
||||
Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition: { code: 2654, category: ts.DiagnosticCategory.Error, key: "Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition." },
|
||||
Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition: { code: 2655, category: ts.DiagnosticCategory.Error, key: "Exported external package typings can only be in '.d.ts' files. Please contact the package author to update the package definition." },
|
||||
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
|
||||
@@ -2433,13 +2435,14 @@ var ts;
|
||||
Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: { code: 6060, category: ts.DiagnosticCategory.Message, key: "Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)." },
|
||||
NEWLINE: { code: 6061, category: ts.DiagnosticCategory.Message, key: "NEWLINE" },
|
||||
Argument_for_newLine_option_must_be_CRLF_or_LF: { code: 6062, category: ts.DiagnosticCategory.Error, key: "Argument for '--newLine' option must be 'CRLF' or 'LF'." },
|
||||
Argument_for_moduleResolution_option_must_be_node_or_classic: { code: 6063, category: ts.DiagnosticCategory.Error, key: "Argument for '--moduleResolution' option must be 'node' or 'classic'." },
|
||||
Specify_JSX_code_generation_Colon_preserve_or_react: { code: 6080, category: ts.DiagnosticCategory.Message, key: "Specify JSX code generation: 'preserve' or 'react'" },
|
||||
Argument_for_jsx_must_be_preserve_or_react: { code: 6081, category: ts.DiagnosticCategory.Message, key: "Argument for '--jsx' must be 'preserve' or 'react'." },
|
||||
Enables_experimental_support_for_ES7_decorators: { code: 6065, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 decorators." },
|
||||
Enables_experimental_support_for_emitting_type_metadata_for_decorators: { code: 6066, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for emitting type metadata for decorators." },
|
||||
Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower: { code: 6067, category: ts.DiagnosticCategory.Message, key: "Option 'experimentalAsyncFunctions' cannot be specified when targeting ES5 or lower." },
|
||||
Enables_experimental_support_for_ES7_async_functions: { code: 6068, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 async functions." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) ." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)." },
|
||||
Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: { code: 6070, category: ts.DiagnosticCategory.Message, key: "Initializes a TypeScript project and creates a tsconfig.json file." },
|
||||
Successfully_created_a_tsconfig_json_file: { code: 6071, category: ts.DiagnosticCategory.Message, key: "Successfully created a tsconfig.json file." },
|
||||
Suppress_excess_property_checks_for_object_literals: { code: 6072, category: ts.DiagnosticCategory.Message, key: "Suppress excess property checks for object literals." },
|
||||
@@ -5011,21 +5014,21 @@ var ts;
|
||||
return true;
|
||||
}
|
||||
ts.arrayIsEqualTo = arrayIsEqualTo;
|
||||
function hasResolvedModuleName(sourceFile, moduleNameText) {
|
||||
function hasResolvedModule(sourceFile, moduleNameText) {
|
||||
return sourceFile.resolvedModules && ts.hasProperty(sourceFile.resolvedModules, moduleNameText);
|
||||
}
|
||||
ts.hasResolvedModuleName = hasResolvedModuleName;
|
||||
function getResolvedModuleFileName(sourceFile, moduleNameText) {
|
||||
return hasResolvedModuleName(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
ts.hasResolvedModule = hasResolvedModule;
|
||||
function getResolvedModule(sourceFile, moduleNameText) {
|
||||
return hasResolvedModule(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
}
|
||||
ts.getResolvedModuleFileName = getResolvedModuleFileName;
|
||||
function setResolvedModuleName(sourceFile, moduleNameText, resolvedFileName) {
|
||||
ts.getResolvedModule = getResolvedModule;
|
||||
function setResolvedModule(sourceFile, moduleNameText, resolvedModule) {
|
||||
if (!sourceFile.resolvedModules) {
|
||||
sourceFile.resolvedModules = {};
|
||||
}
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedFileName;
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedModule;
|
||||
}
|
||||
ts.setResolvedModuleName = setResolvedModuleName;
|
||||
ts.setResolvedModule = setResolvedModule;
|
||||
// Returns true if this node contains a parse error anywhere underneath it.
|
||||
function containsParseError(node) {
|
||||
aggregateChildData(node);
|
||||
@@ -6362,11 +6365,21 @@ var ts;
|
||||
add: add,
|
||||
getGlobalDiagnostics: getGlobalDiagnostics,
|
||||
getDiagnostics: getDiagnostics,
|
||||
getModificationCount: getModificationCount
|
||||
getModificationCount: getModificationCount,
|
||||
reattachFileDiagnostics: reattachFileDiagnostics
|
||||
};
|
||||
function getModificationCount() {
|
||||
return modificationCount;
|
||||
}
|
||||
function reattachFileDiagnostics(newFile) {
|
||||
if (!ts.hasProperty(fileDiagnostics, newFile.fileName)) {
|
||||
return;
|
||||
}
|
||||
for (var _i = 0, _a = fileDiagnostics[newFile.fileName]; _i < _a.length; _i++) {
|
||||
var diagnostic = _a[_i];
|
||||
diagnostic.file = newFile;
|
||||
}
|
||||
}
|
||||
function add(diagnostic) {
|
||||
var diagnostics;
|
||||
if (diagnostic.file) {
|
||||
@@ -13744,8 +13757,8 @@ var ts;
|
||||
return symbol;
|
||||
}
|
||||
}
|
||||
var fileName = ts.getResolvedModuleFileName(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = fileName && host.getSourceFile(fileName);
|
||||
var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
|
||||
if (sourceFile) {
|
||||
if (sourceFile.symbol) {
|
||||
return sourceFile.symbol;
|
||||
@@ -17021,7 +17034,7 @@ var ts;
|
||||
* @param target The right-hand-side of the relation.
|
||||
* @param relation The relation considered. One of 'identityRelation', 'assignableRelation', or 'subTypeRelation'.
|
||||
* Used as both to determine which checks are performed and as a cache of previously computed results.
|
||||
* @param errorNode The node upon which all errors will be reported, if defined.
|
||||
* @param errorNode The suggested node upon which all errors will be reported, if defined. This may or may not be the actual node used.
|
||||
* @param headMessage If the error chain should be prepended by a head message, then headMessage will be used.
|
||||
* @param containingMessageChain A chain of errors to prepend any new errors found.
|
||||
*/
|
||||
@@ -17228,6 +17241,10 @@ var ts;
|
||||
var prop = _a[_i];
|
||||
if (!isKnownProperty(target, prop.name)) {
|
||||
if (reportErrors) {
|
||||
// We know *exactly* where things went wrong when comparing the types.
|
||||
// Use this property as the error node as this will be more helpful in
|
||||
// reasoning about what went wrong.
|
||||
errorNode = prop.valueDeclaration;
|
||||
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
|
||||
}
|
||||
return true;
|
||||
@@ -25637,7 +25654,10 @@ var ts;
|
||||
var symbols = [];
|
||||
var name_15 = symbol.name;
|
||||
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
|
||||
symbols.push(getPropertyOfType(t, name_15));
|
||||
var symbol = getPropertyOfType(t, name_15);
|
||||
if (symbol) {
|
||||
symbols.push(symbol);
|
||||
}
|
||||
});
|
||||
return symbols;
|
||||
}
|
||||
@@ -29561,8 +29581,10 @@ var ts;
|
||||
function jsxEmitPreserve(node) {
|
||||
function emitJsxAttribute(node) {
|
||||
emit(node.name);
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
if (node.initializer) {
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
}
|
||||
}
|
||||
function emitJsxSpreadAttribute(node) {
|
||||
write("{...");
|
||||
@@ -31215,6 +31237,9 @@ var ts;
|
||||
}
|
||||
function emitExportSpecifierInSystemModule(specifier) {
|
||||
ts.Debug.assert(compilerOptions.module === 4 /* System */);
|
||||
if (!resolver.getReferencedValueDeclaration(specifier.propertyName || specifier.name) && !resolver.isValueAliasDeclaration(specifier)) {
|
||||
return;
|
||||
}
|
||||
writeLine();
|
||||
emitStart(specifier.name);
|
||||
write(exportFunctionForFile + "(\"");
|
||||
@@ -31270,21 +31295,30 @@ var ts;
|
||||
write(")");
|
||||
}
|
||||
}
|
||||
function ensureIdentifier(expr) {
|
||||
if (expr.kind !== 67 /* Identifier */) {
|
||||
var identifier = createTempVariable(0 /* Auto */);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
expr = identifier;
|
||||
/**
|
||||
* Ensures that there exists a declared identifier whose value holds the given expression.
|
||||
* This function is useful to ensure that the expression's value can be read from in subsequent expressions.
|
||||
* Unless 'reuseIdentifierExpressions' is false, 'expr' will be returned if it is just an identifier.
|
||||
*
|
||||
* @param expr the expression whose value needs to be bound.
|
||||
* @param reuseIdentifierExpressions true if identifier expressions can simply be returned;
|
||||
* false if it is necessary to always emit an identifier.
|
||||
*/
|
||||
function ensureIdentifier(expr, reuseIdentifierExpressions) {
|
||||
if (expr.kind === 67 /* Identifier */ && reuseIdentifierExpressions) {
|
||||
return expr;
|
||||
}
|
||||
return expr;
|
||||
var identifier = createTempVariable(0 /* Auto */);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
return identifier;
|
||||
}
|
||||
function createDefaultValueCheck(value, defaultValue) {
|
||||
// The value expression will be evaluated twice, so for anything but a simple identifier
|
||||
// we need to generate a temporary variable
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
// Return the expression 'value === void 0 ? defaultValue : value'
|
||||
var equals = ts.createSynthesizedNode(179 /* BinaryExpression */);
|
||||
equals.left = value;
|
||||
@@ -31330,7 +31364,7 @@ var ts;
|
||||
if (properties.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
}
|
||||
for (var _a = 0; _a < properties.length; _a++) {
|
||||
var p = properties[_a];
|
||||
@@ -31345,7 +31379,7 @@ var ts;
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var e = elements[i];
|
||||
@@ -31387,7 +31421,7 @@ var ts;
|
||||
if (root.parent.kind !== 170 /* ParenthesizedExpression */) {
|
||||
write("(");
|
||||
}
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
emitDestructuringAssignment(target, value);
|
||||
write(", ");
|
||||
emit(value);
|
||||
@@ -31408,12 +31442,15 @@ var ts;
|
||||
if (ts.isBindingPattern(target.name)) {
|
||||
var pattern = target.name;
|
||||
var elements = pattern.elements;
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
var numElements = elements.length;
|
||||
if (numElements !== 1) {
|
||||
// For anything other than a single-element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once. Additionally, if we have zero elements
|
||||
// we need to emit *something* to ensure that in case a 'var' keyword was already emitted,
|
||||
// so in that case, we'll intentionally create that temporary.
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ numElements !== 0);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
for (var i = 0; i < numElements; i++) {
|
||||
var element = elements[i];
|
||||
if (pattern.kind === 159 /* ObjectBindingPattern */) {
|
||||
// Rewrite element to a declaration with an initializer that fetches property
|
||||
@@ -31425,7 +31462,7 @@ var ts;
|
||||
// Rewrite element to a declaration that accesses array element at index i
|
||||
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
|
||||
}
|
||||
else if (i === elements.length - 1) {
|
||||
else if (i === numElements - 1) {
|
||||
emitBindingElement(element, createSliceCall(value, i));
|
||||
}
|
||||
}
|
||||
@@ -32840,50 +32877,49 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
function emitSerializedTypeNode(node) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 101 /* VoidKeyword */:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158 /* ParenthesizedType */:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150 /* FunctionType */:
|
||||
case 151 /* ConstructorType */:
|
||||
write("Function");
|
||||
return;
|
||||
case 154 /* ArrayType */:
|
||||
case 155 /* TupleType */:
|
||||
write("Array");
|
||||
return;
|
||||
case 148 /* TypePredicate */:
|
||||
case 118 /* BooleanKeyword */:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128 /* StringKeyword */:
|
||||
case 9 /* StringLiteral */:
|
||||
write("String");
|
||||
return;
|
||||
case 126 /* NumberKeyword */:
|
||||
write("Number");
|
||||
return;
|
||||
case 129 /* SymbolKeyword */:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149 /* TypeReference */:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152 /* TypeQuery */:
|
||||
case 153 /* TypeLiteral */:
|
||||
case 156 /* UnionType */:
|
||||
case 157 /* IntersectionType */:
|
||||
case 115 /* AnyKeyword */:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
if (node) {
|
||||
switch (node.kind) {
|
||||
case 101 /* VoidKeyword */:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158 /* ParenthesizedType */:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150 /* FunctionType */:
|
||||
case 151 /* ConstructorType */:
|
||||
write("Function");
|
||||
return;
|
||||
case 154 /* ArrayType */:
|
||||
case 155 /* TupleType */:
|
||||
write("Array");
|
||||
return;
|
||||
case 148 /* TypePredicate */:
|
||||
case 118 /* BooleanKeyword */:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128 /* StringKeyword */:
|
||||
case 9 /* StringLiteral */:
|
||||
write("String");
|
||||
return;
|
||||
case 126 /* NumberKeyword */:
|
||||
write("Number");
|
||||
return;
|
||||
case 129 /* SymbolKeyword */:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149 /* TypeReference */:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152 /* TypeQuery */:
|
||||
case 153 /* TypeLiteral */:
|
||||
case 156 /* UnionType */:
|
||||
case 157 /* IntersectionType */:
|
||||
case 115 /* AnyKeyword */:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
write("Object");
|
||||
}
|
||||
@@ -33875,7 +33911,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node)) {
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
@@ -35103,7 +35139,7 @@ var ts;
|
||||
/* @internal */ ts.ioWriteTime = 0;
|
||||
/** The version of the TypeScript compiler release */
|
||||
var emptyArray = [];
|
||||
ts.version = "1.6.0";
|
||||
ts.version = "1.6.2";
|
||||
function findConfigFile(searchPath) {
|
||||
var fileName = "tsconfig.json";
|
||||
while (true) {
|
||||
@@ -35143,10 +35179,12 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(containingDirectory, moduleName));
|
||||
var resolvedFileName = loadNodeModuleFromFile(candidate, /* loadOnlyDts */ false, failedLookupLocations, host);
|
||||
if (resolvedFileName) {
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
resolvedFileName = loadNodeModuleFromDirectory(candidate, /* loadOnlyDts */ false, failedLookupLocations, host);
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return resolvedFileName
|
||||
? { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
return loadModuleFromNodeModules(moduleName, containingDirectory, host);
|
||||
@@ -35206,11 +35244,11 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(nodeModulesFolder, moduleName));
|
||||
var result = loadNodeModuleFromFile(candidate, /* loadOnlyDts */ true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
result = loadNodeModuleFromDirectory(candidate, /* loadOnlyDts */ true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
}
|
||||
var parentPath = ts.getDirectoryPath(directory);
|
||||
@@ -35219,39 +35257,16 @@ var ts;
|
||||
}
|
||||
directory = parentPath;
|
||||
}
|
||||
return { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
function baseUrlModuleNameResolver(moduleName, containingFile, baseUrl, host) {
|
||||
ts.Debug.assert(baseUrl !== undefined);
|
||||
var normalizedModuleName = ts.normalizeSlashes(moduleName);
|
||||
var basePart = useBaseUrl(moduleName) ? baseUrl : ts.getDirectoryPath(containingFile);
|
||||
var candidate = ts.normalizePath(ts.combinePaths(basePart, moduleName));
|
||||
var failedLookupLocations = [];
|
||||
return ts.forEach(ts.supportedExtensions, function (ext) { return tryLoadFile(candidate + ext); }) || { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
function tryLoadFile(location) {
|
||||
if (host.fileExists(location)) {
|
||||
return { resolvedFileName: location, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
failedLookupLocations.push(location);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
ts.baseUrlModuleNameResolver = baseUrlModuleNameResolver;
|
||||
function nameStartsWithDotSlashOrDotDotSlash(name) {
|
||||
var i = name.lastIndexOf("./", 1);
|
||||
return i === 0 || (i === 1 && name.charCodeAt(0) === 46 /* dot */);
|
||||
}
|
||||
function useBaseUrl(moduleName) {
|
||||
// path is not rooted
|
||||
// module name does not start with './' or '../'
|
||||
return ts.getRootLength(moduleName) === 0 && !nameStartsWithDotSlashOrDotDotSlash(moduleName);
|
||||
}
|
||||
function classicNameResolver(moduleName, containingFile, compilerOptions, host) {
|
||||
// module names that contain '!' are used to reference resources and are not resolved to actual files on disk
|
||||
if (moduleName.indexOf('!') != -1) {
|
||||
return { resolvedFileName: undefined, failedLookupLocations: [] };
|
||||
return { resolvedModule: undefined, failedLookupLocations: [] };
|
||||
}
|
||||
var searchPath = ts.getDirectoryPath(containingFile);
|
||||
var searchName;
|
||||
@@ -35282,7 +35297,9 @@ var ts;
|
||||
}
|
||||
searchPath = parentPath;
|
||||
}
|
||||
return { resolvedFileName: referencedSourceFile, failedLookupLocations: failedLookupLocations };
|
||||
return referencedSourceFile
|
||||
? { resolvedModule: { resolvedFileName: referencedSourceFile }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
ts.classicNameResolver = classicNameResolver;
|
||||
/* @internal */
|
||||
@@ -35399,7 +35416,8 @@ var ts;
|
||||
function createProgram(rootNames, options, host, oldProgram) {
|
||||
var program;
|
||||
var files = [];
|
||||
var diagnostics = ts.createDiagnosticCollection();
|
||||
var fileProcessingDiagnostics = ts.createDiagnosticCollection();
|
||||
var programDiagnostics = ts.createDiagnosticCollection();
|
||||
var commonSourceDirectory;
|
||||
var diagnosticsProducingTypeChecker;
|
||||
var noDiagnosticsTypeChecker;
|
||||
@@ -35407,8 +35425,9 @@ var ts;
|
||||
var skipDefaultLib = options.noLib;
|
||||
var start = new Date().getTime();
|
||||
host = host || createCompilerHost(options);
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames ||
|
||||
(function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedFileName; }); });
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames
|
||||
? (function (moduleNames, containingFile) { return host.resolveModuleNames(moduleNames, containingFile); })
|
||||
: (function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedModule; }); });
|
||||
var filesByName = ts.createFileMap(function (fileName) { return host.getCanonicalFileName(fileName); });
|
||||
if (oldProgram) {
|
||||
// check properties that can affect structure of the program or module resolution strategy
|
||||
@@ -35455,7 +35474,8 @@ var ts;
|
||||
getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); },
|
||||
getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); },
|
||||
getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); },
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); }
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); },
|
||||
getFileProcessingDiagnostics: function () { return fileProcessingDiagnostics; }
|
||||
};
|
||||
return program;
|
||||
function getClassifiableNames() {
|
||||
@@ -35482,6 +35502,7 @@ var ts;
|
||||
}
|
||||
// check if program source files has changed in the way that can affect structure of the program
|
||||
var newSourceFiles = [];
|
||||
var modifiedSourceFiles = [];
|
||||
for (var _i = 0, _a = oldProgram.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var oldSourceFile = _a[_i];
|
||||
var newSourceFile = host.getSourceFile(oldSourceFile.fileName, options.target);
|
||||
@@ -35510,14 +35531,21 @@ var ts;
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, newSourceFile.fileName);
|
||||
// ensure that module resolution results are still correct
|
||||
for (var i = 0; i < moduleNames.length; ++i) {
|
||||
var oldResolution = ts.getResolvedModuleFileName(oldSourceFile, moduleNames[i]);
|
||||
if (oldResolution !== resolutions[i]) {
|
||||
var newResolution = resolutions[i];
|
||||
var oldResolution = ts.getResolvedModule(oldSourceFile, moduleNames[i]);
|
||||
var resolutionChanged = oldResolution
|
||||
? !newResolution ||
|
||||
oldResolution.resolvedFileName !== newResolution.resolvedFileName ||
|
||||
!!oldResolution.isExternalLibraryImport !== !!newResolution.isExternalLibraryImport
|
||||
: newResolution;
|
||||
if (resolutionChanged) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// pass the cache of module resolutions from the old source file
|
||||
newSourceFile.resolvedModules = oldSourceFile.resolvedModules;
|
||||
modifiedSourceFiles.push(newSourceFile);
|
||||
}
|
||||
else {
|
||||
// file has no changes - use it as is
|
||||
@@ -35532,6 +35560,11 @@ var ts;
|
||||
filesByName.set(file.fileName, file);
|
||||
}
|
||||
files = newSourceFiles;
|
||||
fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics();
|
||||
for (var _c = 0; _c < modifiedSourceFiles.length; _c++) {
|
||||
var modifiedFile = modifiedSourceFiles[_c];
|
||||
fileProcessingDiagnostics.reattachFileDiagnostics(modifiedFile);
|
||||
}
|
||||
oldProgram.structureIsReused = true;
|
||||
return true;
|
||||
}
|
||||
@@ -35633,8 +35666,9 @@ var ts;
|
||||
ts.Debug.assert(!!sourceFile.bindDiagnostics);
|
||||
var bindDiagnostics = sourceFile.bindDiagnostics;
|
||||
var checkDiagnostics = typeChecker.getDiagnostics(sourceFile, cancellationToken);
|
||||
var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics);
|
||||
var fileProcessingDiagnosticsInFile = fileProcessingDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
var programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(fileProcessingDiagnosticsInFile).concat(programDiagnosticsInFile);
|
||||
});
|
||||
}
|
||||
function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) {
|
||||
@@ -35649,7 +35683,8 @@ var ts;
|
||||
}
|
||||
function getOptionsDiagnostics() {
|
||||
var allDiagnostics = [];
|
||||
ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, fileProcessingDiagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, programDiagnostics.getGlobalDiagnostics());
|
||||
return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
|
||||
}
|
||||
function getGlobalDiagnostics() {
|
||||
@@ -35747,10 +35782,10 @@ var ts;
|
||||
}
|
||||
if (diagnostic) {
|
||||
if (refFile !== undefined && refEnd !== undefined && refPos !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35770,10 +35805,10 @@ var ts;
|
||||
// We haven't looked for this file, do so now and cache result
|
||||
var file = host.getSourceFile(fileName, options.target, function (hostErrorMessage) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
});
|
||||
filesByName.set(canonicalName, file);
|
||||
@@ -35803,10 +35838,10 @@ var ts;
|
||||
var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName;
|
||||
if (canonicalName !== sourceFileName) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35827,9 +35862,23 @@ var ts;
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, file.fileName);
|
||||
for (var i = 0; i < file.imports.length; ++i) {
|
||||
var resolution = resolutions[i];
|
||||
ts.setResolvedModuleName(file, moduleNames[i], resolution);
|
||||
ts.setResolvedModule(file, moduleNames[i], resolution);
|
||||
if (resolution && !options.noResolve) {
|
||||
findModuleSourceFile(resolution, file.imports[i]);
|
||||
var importedFile = findModuleSourceFile(resolution.resolvedFileName, file.imports[i]);
|
||||
if (importedFile && resolution.isExternalLibraryImport) {
|
||||
if (!ts.isExternalModule(importedFile)) {
|
||||
var start_2 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_2, file.imports[i].end - start_2, ts.Diagnostics.File_0_is_not_a_module, importedFile.fileName));
|
||||
}
|
||||
else if (!ts.fileExtensionIs(importedFile.fileName, ".d.ts")) {
|
||||
var start_3 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_3, file.imports[i].end - start_3, ts.Diagnostics.Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
else if (importedFile.referencedFiles.length) {
|
||||
var firstRef = importedFile.referencedFiles[0];
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(importedFile, firstRef.pos, firstRef.end - firstRef.pos, ts.Diagnostics.Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35839,7 +35888,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
function findModuleSourceFile(fileName, nameLiteral) {
|
||||
return findSourceFile(fileName, /* isDefaultLib */ false, file, nameLiteral.pos, nameLiteral.end);
|
||||
return findSourceFile(fileName, /* isDefaultLib */ false, file, ts.skipTrivia(file.text, nameLiteral.pos), nameLiteral.end);
|
||||
}
|
||||
}
|
||||
function computeCommonSourceDirectory(sourceFiles) {
|
||||
@@ -35860,7 +35909,7 @@ var ts;
|
||||
for (var i = 0, n = Math.min(commonPathComponents.length, sourcePathComponents.length); i < n; i++) {
|
||||
if (commonPathComponents[i] !== sourcePathComponents[i]) {
|
||||
if (i === 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
return;
|
||||
}
|
||||
// New common path found that is 0 -> i-1
|
||||
@@ -35885,7 +35934,7 @@ var ts;
|
||||
if (!ts.isDeclarationFile(sourceFile)) {
|
||||
var absoluteSourceFilePath = host.getCanonicalFileName(ts.getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));
|
||||
if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
allFilesBelongToPath = false;
|
||||
}
|
||||
}
|
||||
@@ -35896,44 +35945,44 @@ var ts;
|
||||
function verifyCompilerOptions() {
|
||||
if (options.isolatedModules) {
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
}
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSources) {
|
||||
if (!options.sourceMap && !options.inlineSourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
}
|
||||
}
|
||||
if (options.out && options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
}
|
||||
if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) {
|
||||
// Error to specify --mapRoot or --sourceRoot without mapSourceFiles
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -35942,22 +35991,22 @@ var ts;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2 /* ES6 */) {
|
||||
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));
|
||||
programDiagnostics.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_isolatedModules_flag_is_provided));
|
||||
programDiagnostics.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) {
|
||||
// We cannot use createDiagnosticFromNode because nodes do not have parents yet
|
||||
var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
programDiagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
}
|
||||
// Cannot specify module gen target when in es6 or above
|
||||
if (options.module && languageVersion >= 2 /* ES6 */) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
}
|
||||
// there has to be common source directory if user specified --outdir || --sourceRoot
|
||||
// if user specified --mapRoot, there needs to be common source directory if there would be multiple files being emitted
|
||||
@@ -35982,25 +36031,25 @@ var ts;
|
||||
}
|
||||
if (options.noEmit) {
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
}
|
||||
if (options.outDir) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
}
|
||||
}
|
||||
if (options.emitDecoratorMetadata &&
|
||||
!options.experimentalDecorators) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
}
|
||||
if (options.experimentalAsyncFunctions &&
|
||||
options.target !== 2 /* ES6 */) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36251,8 +36300,8 @@ var ts;
|
||||
"node": 2 /* NodeJs */,
|
||||
"classic": 1 /* Classic */
|
||||
},
|
||||
experimental: true,
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6,
|
||||
error: ts.Diagnostics.Argument_for_moduleResolution_option_must_be_node_or_classic
|
||||
}
|
||||
];
|
||||
var optionNameMapCache;
|
||||
@@ -38721,7 +38770,7 @@ var ts;
|
||||
function findPrecedingToken(position, sourceFile, startNode) {
|
||||
return find(startNode || sourceFile);
|
||||
function findRightmostToken(n) {
|
||||
if (isToken(n)) {
|
||||
if (isToken(n) || n.kind === 234 /* JsxText */) {
|
||||
return n;
|
||||
}
|
||||
var children = n.getChildren();
|
||||
@@ -38729,23 +38778,32 @@ var ts;
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
function find(n) {
|
||||
if (isToken(n)) {
|
||||
if (isToken(n) || n.kind === 234 /* JsxText */) {
|
||||
return n;
|
||||
}
|
||||
var children = n.getChildren();
|
||||
for (var i = 0, len = children.length; i < len; i++) {
|
||||
var child = children[i];
|
||||
if (nodeHasTokens(child)) {
|
||||
if (position <= child.end) {
|
||||
if (child.getStart(sourceFile) >= position) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i);
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
else {
|
||||
// candidate should be in this node
|
||||
return find(child);
|
||||
}
|
||||
// condition 'position < child.end' checks if child node end after the position
|
||||
// in the example below this condition will be false for 'aaaa' and 'bbbb' and true for 'ccc'
|
||||
// aaaa___bbbb___$__ccc
|
||||
// after we found child node with end after the position we check if start of the node is after the position.
|
||||
// if yes - then position is in the trivia and we need to look into the previous child to find the token in question.
|
||||
// if no - position is in the node itself so we should recurse in it.
|
||||
// NOTE: JsxText is a weird kind of node that can contain only whitespaces (since they are not counted as trivia).
|
||||
// if this is the case - then we should assume that token in question is located in previous child.
|
||||
if (position < child.end && (nodeHasTokens(child) || child.kind === 234 /* JsxText */)) {
|
||||
var start = child.getStart(sourceFile);
|
||||
var lookInPreviousChild = (start >= position) ||
|
||||
(child.kind === 234 /* JsxText */ && start === child.end); // whitespace only JsxText
|
||||
if (lookInPreviousChild) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i);
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
else {
|
||||
// candidate should be in this node
|
||||
return find(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39162,6 +39220,7 @@ var ts;
|
||||
ScanAction[ScanAction["RescanGreaterThanToken"] = 1] = "RescanGreaterThanToken";
|
||||
ScanAction[ScanAction["RescanSlashToken"] = 2] = "RescanSlashToken";
|
||||
ScanAction[ScanAction["RescanTemplateToken"] = 3] = "RescanTemplateToken";
|
||||
ScanAction[ScanAction["RescanJsxIdentifier"] = 4] = "RescanJsxIdentifier";
|
||||
})(ScanAction || (ScanAction = {}));
|
||||
function getFormattingScanner(sourceFile, startPos, endPos) {
|
||||
scanner.setText(sourceFile.text);
|
||||
@@ -39235,6 +39294,18 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function shouldRescanJsxIdentifier(node) {
|
||||
if (node.parent) {
|
||||
switch (node.parent.kind) {
|
||||
case 236 /* JsxAttribute */:
|
||||
case 233 /* JsxOpeningElement */:
|
||||
case 235 /* JsxClosingElement */:
|
||||
case 232 /* JsxSelfClosingElement */:
|
||||
return node.kind === 67 /* Identifier */;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function shouldRescanSlashToken(container) {
|
||||
return container.kind === 10 /* RegularExpressionLiteral */;
|
||||
}
|
||||
@@ -39262,7 +39333,9 @@ var ts;
|
||||
? 2 /* RescanSlashToken */
|
||||
: shouldRescanTemplateToken(n)
|
||||
? 3 /* RescanTemplateToken */
|
||||
: 0 /* Scan */;
|
||||
: shouldRescanJsxIdentifier(n)
|
||||
? 4 /* RescanJsxIdentifier */
|
||||
: 0 /* Scan */;
|
||||
if (lastTokenInfo && expectedScanAction === lastScanAction) {
|
||||
// readTokenInfo was called before with the same expected scan action.
|
||||
// No need to re-scan text, return existing 'lastTokenInfo'
|
||||
@@ -39293,6 +39366,10 @@ var ts;
|
||||
currentToken = scanner.reScanTemplateToken();
|
||||
lastScanAction = 3 /* RescanTemplateToken */;
|
||||
}
|
||||
else if (expectedScanAction === 4 /* RescanJsxIdentifier */ && currentToken === 67 /* Identifier */) {
|
||||
currentToken = scanner.scanJsxIdentifier();
|
||||
lastScanAction = 4 /* RescanJsxIdentifier */;
|
||||
}
|
||||
else {
|
||||
lastScanAction = 0 /* Scan */;
|
||||
}
|
||||
@@ -39633,7 +39710,7 @@ var ts;
|
||||
this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments;
|
||||
this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 15 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */);
|
||||
// Place a space before open brace in a TypeScript declaration that has braces as children (class, module, enum, etc)
|
||||
this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([67 /* Identifier */, 3 /* MultiLineCommentTrivia */]);
|
||||
this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([67 /* Identifier */, 3 /* MultiLineCommentTrivia */, 71 /* ClassKeyword */]);
|
||||
this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 15 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */);
|
||||
// Place a space before open brace in a control flow construct
|
||||
this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([18 /* CloseParenToken */, 3 /* MultiLineCommentTrivia */, 77 /* DoKeyword */, 98 /* TryKeyword */, 83 /* FinallyKeyword */, 78 /* ElseKeyword */]);
|
||||
@@ -39727,11 +39804,13 @@ var ts;
|
||||
// template string
|
||||
this.SpaceBetweenTagAndTemplateString = new formatting.Rule(formatting.RuleDescriptor.create3(67 /* Identifier */, formatting.Shared.TokenRange.FromTokens([11 /* NoSubstitutionTemplateLiteral */, 12 /* TemplateHead */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.NoSpaceBetweenTagAndTemplateString = new formatting.Rule(formatting.RuleDescriptor.create3(67 /* Identifier */, formatting.Shared.TokenRange.FromTokens([11 /* NoSubstitutionTemplateLiteral */, 12 /* TemplateHead */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */));
|
||||
// union type
|
||||
// type operation
|
||||
this.SpaceBeforeBar = new formatting.Rule(formatting.RuleDescriptor.create3(46 /* BarToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.NoSpaceBeforeBar = new formatting.Rule(formatting.RuleDescriptor.create3(46 /* BarToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */));
|
||||
this.SpaceAfterBar = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 46 /* BarToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.NoSpaceAfterBar = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 46 /* BarToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */));
|
||||
this.SpaceBeforeAmpersand = new formatting.Rule(formatting.RuleDescriptor.create3(45 /* AmpersandToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.SpaceAfterAmpersand = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 45 /* AmpersandToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
// These rules are higher in priority than user-configurable rules.
|
||||
this.HighPriorityCommonRules =
|
||||
[
|
||||
@@ -39763,6 +39842,7 @@ var ts;
|
||||
this.SpaceAfterTypeKeyword, this.NoSpaceAfterTypeKeyword,
|
||||
this.SpaceBetweenTagAndTemplateString, this.NoSpaceBetweenTagAndTemplateString,
|
||||
this.SpaceBeforeBar, this.NoSpaceBeforeBar, this.SpaceAfterBar, this.NoSpaceAfterBar,
|
||||
this.SpaceBeforeAmpersand, this.SpaceAfterAmpersand,
|
||||
// TypeScript-specific rules
|
||||
this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport,
|
||||
this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords,
|
||||
@@ -39967,6 +40047,7 @@ var ts;
|
||||
Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) {
|
||||
switch (node.kind) {
|
||||
case 212 /* ClassDeclaration */:
|
||||
case 184 /* ClassExpression */:
|
||||
case 213 /* InterfaceDeclaration */:
|
||||
case 215 /* EnumDeclaration */:
|
||||
case 153 /* TypeLiteral */:
|
||||
@@ -41704,6 +41785,7 @@ var ts;
|
||||
function nodeContentIsAlwaysIndented(kind) {
|
||||
switch (kind) {
|
||||
case 212 /* ClassDeclaration */:
|
||||
case 184 /* ClassExpression */:
|
||||
case 213 /* InterfaceDeclaration */:
|
||||
case 215 /* EnumDeclaration */:
|
||||
case 214 /* TypeAliasDeclaration */:
|
||||
@@ -41728,13 +41810,13 @@ var ts;
|
||||
case 160 /* ArrayBindingPattern */:
|
||||
case 159 /* ObjectBindingPattern */:
|
||||
case 231 /* JsxElement */:
|
||||
case 232 /* JsxSelfClosingElement */:
|
||||
case 140 /* MethodSignature */:
|
||||
case 145 /* CallSignature */:
|
||||
case 146 /* ConstructSignature */:
|
||||
case 136 /* Parameter */:
|
||||
case 150 /* FunctionType */:
|
||||
case 151 /* ConstructorType */:
|
||||
case 156 /* UnionType */:
|
||||
case 158 /* ParenthesizedType */:
|
||||
case 168 /* TaggedTemplateExpression */:
|
||||
case 176 /* AwaitExpression */:
|
||||
@@ -42858,7 +42940,7 @@ var ts;
|
||||
var sourceMapText;
|
||||
// Create a compilerHost object to allow the compiler to read and write files
|
||||
var compilerHost = {
|
||||
getSourceFile: function (fileName, target) { return fileName === inputFileName ? sourceFile : undefined; },
|
||||
getSourceFile: function (fileName, target) { return fileName === ts.normalizeSlashes(inputFileName) ? sourceFile : undefined; },
|
||||
writeFile: function (name, text, writeByteOrderMark) {
|
||||
if (ts.fileExtensionIs(name, ".map")) {
|
||||
ts.Debug.assert(sourceMapText === undefined, "Unexpected multiple source map outputs for the file '" + name + "'");
|
||||
@@ -43106,6 +43188,7 @@ var ts;
|
||||
//
|
||||
// export * from "mod"
|
||||
// export {a as b} from "mod"
|
||||
// export import i = require("mod")
|
||||
while (token !== 1 /* EndOfFileToken */) {
|
||||
if (token === 120 /* DeclareKeyword */) {
|
||||
// declare module "mod"
|
||||
@@ -43226,6 +43309,25 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token === 87 /* ImportKeyword */) {
|
||||
token = scanner.scan();
|
||||
if (token === 67 /* Identifier */ || ts.isKeyword(token)) {
|
||||
token = scanner.scan();
|
||||
if (token === 55 /* EqualsToken */) {
|
||||
token = scanner.scan();
|
||||
if (token === 125 /* RequireKeyword */) {
|
||||
token = scanner.scan();
|
||||
if (token === 17 /* OpenParenToken */) {
|
||||
token = scanner.scan();
|
||||
if (token === 9 /* StringLiteral */) {
|
||||
// export import i = require("mod");
|
||||
recordModuleName();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
token = scanner.scan();
|
||||
}
|
||||
@@ -43929,9 +44031,9 @@ var ts;
|
||||
// Check if the caret is at the end of an identifier; this is a partial identifier that we want to complete: e.g. a.toS|
|
||||
// Skip this partial identifier and adjust the contextToken to the token that precedes it.
|
||||
if (contextToken && position <= contextToken.end && ts.isWord(contextToken.kind)) {
|
||||
var start_2 = new Date().getTime();
|
||||
var start_4 = new Date().getTime();
|
||||
contextToken = ts.findPrecedingToken(contextToken.getFullStart(), sourceFile);
|
||||
log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_2));
|
||||
log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_4));
|
||||
}
|
||||
// Find the node where completion is requested on.
|
||||
// Also determine whether we are trying to complete with members of that node
|
||||
@@ -44179,13 +44281,13 @@ var ts;
|
||||
if (contextToken.kind === 9 /* StringLiteral */
|
||||
|| contextToken.kind === 10 /* RegularExpressionLiteral */
|
||||
|| ts.isTemplateLiteralKind(contextToken.kind)) {
|
||||
var start_3 = contextToken.getStart();
|
||||
var start_5 = contextToken.getStart();
|
||||
var end = contextToken.getEnd();
|
||||
// To be "in" one of these literals, the position has to be:
|
||||
// 1. entirely within the token text.
|
||||
// 2. at the end position of an unterminated token.
|
||||
// 3. at the end of a regular expression (due to trailing flags like '/foo/g').
|
||||
if (start_3 < position && position < end) {
|
||||
if (start_5 < position && position < end) {
|
||||
return true;
|
||||
}
|
||||
if (position === end) {
|
||||
@@ -48557,7 +48659,10 @@ var ts;
|
||||
if ("getModuleResolutionsForFile" in this.shimHost) {
|
||||
this.resolveModuleNames = function (moduleNames, containingFile) {
|
||||
var resolutionsInFile = JSON.parse(_this.shimHost.getModuleResolutionsForFile(containingFile));
|
||||
return ts.map(moduleNames, function (name) { return ts.lookUp(resolutionsInFile, name); });
|
||||
return ts.map(moduleNames, function (name) {
|
||||
var result = ts.lookUp(resolutionsInFile, name);
|
||||
return result ? { resolvedFileName: result } : undefined;
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -49104,7 +49209,11 @@ var ts;
|
||||
var _this = this;
|
||||
return this.forwardJSONCall("resolveModuleName('" + fileName + "')", function () {
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
return ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
return {
|
||||
resolvedFileName: result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
};
|
||||
});
|
||||
};
|
||||
CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) {
|
||||
|
||||
Vendored
+9
-7
@@ -1382,9 +1382,12 @@ declare namespace ts {
|
||||
}
|
||||
interface ResolvedModule {
|
||||
resolvedFileName: string;
|
||||
isExternalLibraryImport?: boolean;
|
||||
}
|
||||
interface ResolvedModuleWithFailedLookupLocations {
|
||||
resolvedModule: ResolvedModule;
|
||||
failedLookupLocations: string[];
|
||||
}
|
||||
type ModuleNameResolver = (moduleName: string, containingFile: string, options: CompilerOptions, host: ModuleResolutionHost) => ResolvedModule;
|
||||
interface CompilerHost extends ModuleResolutionHost {
|
||||
getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile;
|
||||
getCancellationToken?(): CancellationToken;
|
||||
@@ -1394,7 +1397,7 @@ declare namespace ts {
|
||||
getCanonicalFileName(fileName: string): string;
|
||||
useCaseSensitiveFileNames(): boolean;
|
||||
getNewLine(): string;
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): string[];
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
|
||||
}
|
||||
interface TextSpan {
|
||||
start: number;
|
||||
@@ -1515,10 +1518,9 @@ declare namespace ts {
|
||||
const version: string;
|
||||
function findConfigFile(searchPath: string): string;
|
||||
function resolveTripleslashReference(moduleName: string, containingFile: string): string;
|
||||
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModule;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, host: ModuleResolutionHost): ResolvedModule;
|
||||
function baseUrlModuleNameResolver(moduleName: string, containingFile: string, baseUrl: string, host: ModuleResolutionHost): ResolvedModule;
|
||||
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModule;
|
||||
function resolveModuleName(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function nodeModuleNameResolver(moduleName: string, containingFile: string, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function classicNameResolver(moduleName: string, containingFile: string, compilerOptions: CompilerOptions, host: ModuleResolutionHost): ResolvedModuleWithFailedLookupLocations;
|
||||
function createCompilerHost(options: CompilerOptions, setParentNodes?: boolean): CompilerHost;
|
||||
function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile, cancellationToken?: CancellationToken): Diagnostic[];
|
||||
function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string;
|
||||
@@ -1649,7 +1651,7 @@ declare namespace ts {
|
||||
trace?(s: string): void;
|
||||
error?(s: string): void;
|
||||
useCaseSensitiveFileNames?(): boolean;
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): string[];
|
||||
resolveModuleNames?(moduleNames: string[], containingFile: string): ResolvedModule[];
|
||||
}
|
||||
interface LanguageService {
|
||||
cleanupSemanticCache(): void;
|
||||
|
||||
+287
-178
@@ -2300,6 +2300,8 @@ var ts;
|
||||
Cannot_emit_namespaced_JSX_elements_in_React: { code: 2650, category: ts.DiagnosticCategory.Error, key: "Cannot emit namespaced JSX elements in React" },
|
||||
A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: { code: 2651, category: ts.DiagnosticCategory.Error, key: "A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums." },
|
||||
Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: { code: 2652, category: ts.DiagnosticCategory.Error, key: "Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead." },
|
||||
Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition: { code: 2654, category: ts.DiagnosticCategory.Error, key: "Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition." },
|
||||
Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition: { code: 2655, category: ts.DiagnosticCategory.Error, key: "Exported external package typings can only be in '.d.ts' files. Please contact the package author to update the package definition." },
|
||||
Import_declaration_0_is_using_private_name_1: { code: 4000, category: ts.DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." },
|
||||
Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: ts.DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." },
|
||||
@@ -2433,13 +2435,14 @@ var ts;
|
||||
Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: { code: 6060, category: ts.DiagnosticCategory.Message, key: "Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)." },
|
||||
NEWLINE: { code: 6061, category: ts.DiagnosticCategory.Message, key: "NEWLINE" },
|
||||
Argument_for_newLine_option_must_be_CRLF_or_LF: { code: 6062, category: ts.DiagnosticCategory.Error, key: "Argument for '--newLine' option must be 'CRLF' or 'LF'." },
|
||||
Argument_for_moduleResolution_option_must_be_node_or_classic: { code: 6063, category: ts.DiagnosticCategory.Error, key: "Argument for '--moduleResolution' option must be 'node' or 'classic'." },
|
||||
Specify_JSX_code_generation_Colon_preserve_or_react: { code: 6080, category: ts.DiagnosticCategory.Message, key: "Specify JSX code generation: 'preserve' or 'react'" },
|
||||
Argument_for_jsx_must_be_preserve_or_react: { code: 6081, category: ts.DiagnosticCategory.Message, key: "Argument for '--jsx' must be 'preserve' or 'react'." },
|
||||
Enables_experimental_support_for_ES7_decorators: { code: 6065, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 decorators." },
|
||||
Enables_experimental_support_for_emitting_type_metadata_for_decorators: { code: 6066, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for emitting type metadata for decorators." },
|
||||
Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower: { code: 6067, category: ts.DiagnosticCategory.Message, key: "Option 'experimentalAsyncFunctions' cannot be specified when targeting ES5 or lower." },
|
||||
Enables_experimental_support_for_ES7_async_functions: { code: 6068, category: ts.DiagnosticCategory.Message, key: "Enables experimental support for ES7 async functions." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) ." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6: { code: 6069, category: ts.DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)." },
|
||||
Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: { code: 6070, category: ts.DiagnosticCategory.Message, key: "Initializes a TypeScript project and creates a tsconfig.json file." },
|
||||
Successfully_created_a_tsconfig_json_file: { code: 6071, category: ts.DiagnosticCategory.Message, key: "Successfully created a tsconfig.json file." },
|
||||
Suppress_excess_property_checks_for_object_literals: { code: 6072, category: ts.DiagnosticCategory.Message, key: "Suppress excess property checks for object literals." },
|
||||
@@ -5011,21 +5014,21 @@ var ts;
|
||||
return true;
|
||||
}
|
||||
ts.arrayIsEqualTo = arrayIsEqualTo;
|
||||
function hasResolvedModuleName(sourceFile, moduleNameText) {
|
||||
function hasResolvedModule(sourceFile, moduleNameText) {
|
||||
return sourceFile.resolvedModules && ts.hasProperty(sourceFile.resolvedModules, moduleNameText);
|
||||
}
|
||||
ts.hasResolvedModuleName = hasResolvedModuleName;
|
||||
function getResolvedModuleFileName(sourceFile, moduleNameText) {
|
||||
return hasResolvedModuleName(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
ts.hasResolvedModule = hasResolvedModule;
|
||||
function getResolvedModule(sourceFile, moduleNameText) {
|
||||
return hasResolvedModule(sourceFile, moduleNameText) ? sourceFile.resolvedModules[moduleNameText] : undefined;
|
||||
}
|
||||
ts.getResolvedModuleFileName = getResolvedModuleFileName;
|
||||
function setResolvedModuleName(sourceFile, moduleNameText, resolvedFileName) {
|
||||
ts.getResolvedModule = getResolvedModule;
|
||||
function setResolvedModule(sourceFile, moduleNameText, resolvedModule) {
|
||||
if (!sourceFile.resolvedModules) {
|
||||
sourceFile.resolvedModules = {};
|
||||
}
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedFileName;
|
||||
sourceFile.resolvedModules[moduleNameText] = resolvedModule;
|
||||
}
|
||||
ts.setResolvedModuleName = setResolvedModuleName;
|
||||
ts.setResolvedModule = setResolvedModule;
|
||||
// Returns true if this node contains a parse error anywhere underneath it.
|
||||
function containsParseError(node) {
|
||||
aggregateChildData(node);
|
||||
@@ -6362,11 +6365,21 @@ var ts;
|
||||
add: add,
|
||||
getGlobalDiagnostics: getGlobalDiagnostics,
|
||||
getDiagnostics: getDiagnostics,
|
||||
getModificationCount: getModificationCount
|
||||
getModificationCount: getModificationCount,
|
||||
reattachFileDiagnostics: reattachFileDiagnostics
|
||||
};
|
||||
function getModificationCount() {
|
||||
return modificationCount;
|
||||
}
|
||||
function reattachFileDiagnostics(newFile) {
|
||||
if (!ts.hasProperty(fileDiagnostics, newFile.fileName)) {
|
||||
return;
|
||||
}
|
||||
for (var _i = 0, _a = fileDiagnostics[newFile.fileName]; _i < _a.length; _i++) {
|
||||
var diagnostic = _a[_i];
|
||||
diagnostic.file = newFile;
|
||||
}
|
||||
}
|
||||
function add(diagnostic) {
|
||||
var diagnostics;
|
||||
if (diagnostic.file) {
|
||||
@@ -13744,8 +13757,8 @@ var ts;
|
||||
return symbol;
|
||||
}
|
||||
}
|
||||
var fileName = ts.getResolvedModuleFileName(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = fileName && host.getSourceFile(fileName);
|
||||
var resolvedModule = ts.getResolvedModule(getSourceFile(location), moduleReferenceLiteral.text);
|
||||
var sourceFile = resolvedModule && host.getSourceFile(resolvedModule.resolvedFileName);
|
||||
if (sourceFile) {
|
||||
if (sourceFile.symbol) {
|
||||
return sourceFile.symbol;
|
||||
@@ -17021,7 +17034,7 @@ var ts;
|
||||
* @param target The right-hand-side of the relation.
|
||||
* @param relation The relation considered. One of 'identityRelation', 'assignableRelation', or 'subTypeRelation'.
|
||||
* Used as both to determine which checks are performed and as a cache of previously computed results.
|
||||
* @param errorNode The node upon which all errors will be reported, if defined.
|
||||
* @param errorNode The suggested node upon which all errors will be reported, if defined. This may or may not be the actual node used.
|
||||
* @param headMessage If the error chain should be prepended by a head message, then headMessage will be used.
|
||||
* @param containingMessageChain A chain of errors to prepend any new errors found.
|
||||
*/
|
||||
@@ -17228,6 +17241,10 @@ var ts;
|
||||
var prop = _a[_i];
|
||||
if (!isKnownProperty(target, prop.name)) {
|
||||
if (reportErrors) {
|
||||
// We know *exactly* where things went wrong when comparing the types.
|
||||
// Use this property as the error node as this will be more helpful in
|
||||
// reasoning about what went wrong.
|
||||
errorNode = prop.valueDeclaration;
|
||||
reportError(ts.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(target));
|
||||
}
|
||||
return true;
|
||||
@@ -25637,7 +25654,10 @@ var ts;
|
||||
var symbols = [];
|
||||
var name_15 = symbol.name;
|
||||
ts.forEach(getSymbolLinks(symbol).containingType.types, function (t) {
|
||||
symbols.push(getPropertyOfType(t, name_15));
|
||||
var symbol = getPropertyOfType(t, name_15);
|
||||
if (symbol) {
|
||||
symbols.push(symbol);
|
||||
}
|
||||
});
|
||||
return symbols;
|
||||
}
|
||||
@@ -29561,8 +29581,10 @@ var ts;
|
||||
function jsxEmitPreserve(node) {
|
||||
function emitJsxAttribute(node) {
|
||||
emit(node.name);
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
if (node.initializer) {
|
||||
write("=");
|
||||
emit(node.initializer);
|
||||
}
|
||||
}
|
||||
function emitJsxSpreadAttribute(node) {
|
||||
write("{...");
|
||||
@@ -31215,6 +31237,9 @@ var ts;
|
||||
}
|
||||
function emitExportSpecifierInSystemModule(specifier) {
|
||||
ts.Debug.assert(compilerOptions.module === 4 /* System */);
|
||||
if (!resolver.getReferencedValueDeclaration(specifier.propertyName || specifier.name) && !resolver.isValueAliasDeclaration(specifier)) {
|
||||
return;
|
||||
}
|
||||
writeLine();
|
||||
emitStart(specifier.name);
|
||||
write(exportFunctionForFile + "(\"");
|
||||
@@ -31270,21 +31295,30 @@ var ts;
|
||||
write(")");
|
||||
}
|
||||
}
|
||||
function ensureIdentifier(expr) {
|
||||
if (expr.kind !== 67 /* Identifier */) {
|
||||
var identifier = createTempVariable(0 /* Auto */);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
expr = identifier;
|
||||
/**
|
||||
* Ensures that there exists a declared identifier whose value holds the given expression.
|
||||
* This function is useful to ensure that the expression's value can be read from in subsequent expressions.
|
||||
* Unless 'reuseIdentifierExpressions' is false, 'expr' will be returned if it is just an identifier.
|
||||
*
|
||||
* @param expr the expression whose value needs to be bound.
|
||||
* @param reuseIdentifierExpressions true if identifier expressions can simply be returned;
|
||||
* false if it is necessary to always emit an identifier.
|
||||
*/
|
||||
function ensureIdentifier(expr, reuseIdentifierExpressions) {
|
||||
if (expr.kind === 67 /* Identifier */ && reuseIdentifierExpressions) {
|
||||
return expr;
|
||||
}
|
||||
return expr;
|
||||
var identifier = createTempVariable(0 /* Auto */);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
return identifier;
|
||||
}
|
||||
function createDefaultValueCheck(value, defaultValue) {
|
||||
// The value expression will be evaluated twice, so for anything but a simple identifier
|
||||
// we need to generate a temporary variable
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
// Return the expression 'value === void 0 ? defaultValue : value'
|
||||
var equals = ts.createSynthesizedNode(179 /* BinaryExpression */);
|
||||
equals.left = value;
|
||||
@@ -31330,7 +31364,7 @@ var ts;
|
||||
if (properties.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
}
|
||||
for (var _a = 0; _a < properties.length; _a++) {
|
||||
var p = properties[_a];
|
||||
@@ -31345,7 +31379,7 @@ var ts;
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var e = elements[i];
|
||||
@@ -31387,7 +31421,7 @@ var ts;
|
||||
if (root.parent.kind !== 170 /* ParenthesizedExpression */) {
|
||||
write("(");
|
||||
}
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
emitDestructuringAssignment(target, value);
|
||||
write(", ");
|
||||
emit(value);
|
||||
@@ -31408,12 +31442,15 @@ var ts;
|
||||
if (ts.isBindingPattern(target.name)) {
|
||||
var pattern = target.name;
|
||||
var elements = pattern.elements;
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
var numElements = elements.length;
|
||||
if (numElements !== 1) {
|
||||
// For anything other than a single-element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once. Additionally, if we have zero elements
|
||||
// we need to emit *something* to ensure that in case a 'var' keyword was already emitted,
|
||||
// so in that case, we'll intentionally create that temporary.
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ numElements !== 0);
|
||||
}
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
for (var i = 0; i < numElements; i++) {
|
||||
var element = elements[i];
|
||||
if (pattern.kind === 159 /* ObjectBindingPattern */) {
|
||||
// Rewrite element to a declaration with an initializer that fetches property
|
||||
@@ -31425,7 +31462,7 @@ var ts;
|
||||
// Rewrite element to a declaration that accesses array element at index i
|
||||
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
|
||||
}
|
||||
else if (i === elements.length - 1) {
|
||||
else if (i === numElements - 1) {
|
||||
emitBindingElement(element, createSliceCall(value, i));
|
||||
}
|
||||
}
|
||||
@@ -32840,50 +32877,49 @@ var ts;
|
||||
write("void 0");
|
||||
}
|
||||
function emitSerializedTypeNode(node) {
|
||||
if (!node) {
|
||||
return;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 101 /* VoidKeyword */:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158 /* ParenthesizedType */:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150 /* FunctionType */:
|
||||
case 151 /* ConstructorType */:
|
||||
write("Function");
|
||||
return;
|
||||
case 154 /* ArrayType */:
|
||||
case 155 /* TupleType */:
|
||||
write("Array");
|
||||
return;
|
||||
case 148 /* TypePredicate */:
|
||||
case 118 /* BooleanKeyword */:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128 /* StringKeyword */:
|
||||
case 9 /* StringLiteral */:
|
||||
write("String");
|
||||
return;
|
||||
case 126 /* NumberKeyword */:
|
||||
write("Number");
|
||||
return;
|
||||
case 129 /* SymbolKeyword */:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149 /* TypeReference */:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152 /* TypeQuery */:
|
||||
case 153 /* TypeLiteral */:
|
||||
case 156 /* UnionType */:
|
||||
case 157 /* IntersectionType */:
|
||||
case 115 /* AnyKeyword */:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
if (node) {
|
||||
switch (node.kind) {
|
||||
case 101 /* VoidKeyword */:
|
||||
write("void 0");
|
||||
return;
|
||||
case 158 /* ParenthesizedType */:
|
||||
emitSerializedTypeNode(node.type);
|
||||
return;
|
||||
case 150 /* FunctionType */:
|
||||
case 151 /* ConstructorType */:
|
||||
write("Function");
|
||||
return;
|
||||
case 154 /* ArrayType */:
|
||||
case 155 /* TupleType */:
|
||||
write("Array");
|
||||
return;
|
||||
case 148 /* TypePredicate */:
|
||||
case 118 /* BooleanKeyword */:
|
||||
write("Boolean");
|
||||
return;
|
||||
case 128 /* StringKeyword */:
|
||||
case 9 /* StringLiteral */:
|
||||
write("String");
|
||||
return;
|
||||
case 126 /* NumberKeyword */:
|
||||
write("Number");
|
||||
return;
|
||||
case 129 /* SymbolKeyword */:
|
||||
write("Symbol");
|
||||
return;
|
||||
case 149 /* TypeReference */:
|
||||
emitSerializedTypeReferenceNode(node);
|
||||
return;
|
||||
case 152 /* TypeQuery */:
|
||||
case 153 /* TypeLiteral */:
|
||||
case 156 /* UnionType */:
|
||||
case 157 /* IntersectionType */:
|
||||
case 115 /* AnyKeyword */:
|
||||
break;
|
||||
default:
|
||||
ts.Debug.fail("Cannot serialize unexpected type node.");
|
||||
break;
|
||||
}
|
||||
}
|
||||
write("Object");
|
||||
}
|
||||
@@ -33875,7 +33911,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node)) {
|
||||
if (ts.isInternalModuleImportEqualsDeclaration(node) && resolver.isValueAliasDeclaration(node)) {
|
||||
if (!hoistedVars) {
|
||||
hoistedVars = [];
|
||||
}
|
||||
@@ -35103,7 +35139,7 @@ var ts;
|
||||
/* @internal */ ts.ioWriteTime = 0;
|
||||
/** The version of the TypeScript compiler release */
|
||||
var emptyArray = [];
|
||||
ts.version = "1.6.0";
|
||||
ts.version = "1.6.2";
|
||||
function findConfigFile(searchPath) {
|
||||
var fileName = "tsconfig.json";
|
||||
while (true) {
|
||||
@@ -35143,10 +35179,12 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(containingDirectory, moduleName));
|
||||
var resolvedFileName = loadNodeModuleFromFile(candidate, /* loadOnlyDts */ false, failedLookupLocations, host);
|
||||
if (resolvedFileName) {
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
resolvedFileName = loadNodeModuleFromDirectory(candidate, /* loadOnlyDts */ false, failedLookupLocations, host);
|
||||
return { resolvedFileName: resolvedFileName, failedLookupLocations: failedLookupLocations };
|
||||
return resolvedFileName
|
||||
? { resolvedModule: { resolvedFileName: resolvedFileName }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
return loadModuleFromNodeModules(moduleName, containingDirectory, host);
|
||||
@@ -35206,11 +35244,11 @@ var ts;
|
||||
var candidate = ts.normalizePath(ts.combinePaths(nodeModulesFolder, moduleName));
|
||||
var result = loadNodeModuleFromFile(candidate, /* loadOnlyDts */ true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
result = loadNodeModuleFromDirectory(candidate, /* loadOnlyDts */ true, failedLookupLocations, host);
|
||||
if (result) {
|
||||
return { resolvedFileName: result, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: { resolvedFileName: result, isExternalLibraryImport: true }, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
}
|
||||
var parentPath = ts.getDirectoryPath(directory);
|
||||
@@ -35219,39 +35257,16 @@ var ts;
|
||||
}
|
||||
directory = parentPath;
|
||||
}
|
||||
return { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
return { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
function baseUrlModuleNameResolver(moduleName, containingFile, baseUrl, host) {
|
||||
ts.Debug.assert(baseUrl !== undefined);
|
||||
var normalizedModuleName = ts.normalizeSlashes(moduleName);
|
||||
var basePart = useBaseUrl(moduleName) ? baseUrl : ts.getDirectoryPath(containingFile);
|
||||
var candidate = ts.normalizePath(ts.combinePaths(basePart, moduleName));
|
||||
var failedLookupLocations = [];
|
||||
return ts.forEach(ts.supportedExtensions, function (ext) { return tryLoadFile(candidate + ext); }) || { resolvedFileName: undefined, failedLookupLocations: failedLookupLocations };
|
||||
function tryLoadFile(location) {
|
||||
if (host.fileExists(location)) {
|
||||
return { resolvedFileName: location, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
else {
|
||||
failedLookupLocations.push(location);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
ts.baseUrlModuleNameResolver = baseUrlModuleNameResolver;
|
||||
function nameStartsWithDotSlashOrDotDotSlash(name) {
|
||||
var i = name.lastIndexOf("./", 1);
|
||||
return i === 0 || (i === 1 && name.charCodeAt(0) === 46 /* dot */);
|
||||
}
|
||||
function useBaseUrl(moduleName) {
|
||||
// path is not rooted
|
||||
// module name does not start with './' or '../'
|
||||
return ts.getRootLength(moduleName) === 0 && !nameStartsWithDotSlashOrDotDotSlash(moduleName);
|
||||
}
|
||||
function classicNameResolver(moduleName, containingFile, compilerOptions, host) {
|
||||
// module names that contain '!' are used to reference resources and are not resolved to actual files on disk
|
||||
if (moduleName.indexOf('!') != -1) {
|
||||
return { resolvedFileName: undefined, failedLookupLocations: [] };
|
||||
return { resolvedModule: undefined, failedLookupLocations: [] };
|
||||
}
|
||||
var searchPath = ts.getDirectoryPath(containingFile);
|
||||
var searchName;
|
||||
@@ -35282,7 +35297,9 @@ var ts;
|
||||
}
|
||||
searchPath = parentPath;
|
||||
}
|
||||
return { resolvedFileName: referencedSourceFile, failedLookupLocations: failedLookupLocations };
|
||||
return referencedSourceFile
|
||||
? { resolvedModule: { resolvedFileName: referencedSourceFile }, failedLookupLocations: failedLookupLocations }
|
||||
: { resolvedModule: undefined, failedLookupLocations: failedLookupLocations };
|
||||
}
|
||||
ts.classicNameResolver = classicNameResolver;
|
||||
/* @internal */
|
||||
@@ -35399,7 +35416,8 @@ var ts;
|
||||
function createProgram(rootNames, options, host, oldProgram) {
|
||||
var program;
|
||||
var files = [];
|
||||
var diagnostics = ts.createDiagnosticCollection();
|
||||
var fileProcessingDiagnostics = ts.createDiagnosticCollection();
|
||||
var programDiagnostics = ts.createDiagnosticCollection();
|
||||
var commonSourceDirectory;
|
||||
var diagnosticsProducingTypeChecker;
|
||||
var noDiagnosticsTypeChecker;
|
||||
@@ -35407,8 +35425,9 @@ var ts;
|
||||
var skipDefaultLib = options.noLib;
|
||||
var start = new Date().getTime();
|
||||
host = host || createCompilerHost(options);
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames ||
|
||||
(function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedFileName; }); });
|
||||
var resolveModuleNamesWorker = host.resolveModuleNames
|
||||
? (function (moduleNames, containingFile) { return host.resolveModuleNames(moduleNames, containingFile); })
|
||||
: (function (moduleNames, containingFile) { return ts.map(moduleNames, function (moduleName) { return resolveModuleName(moduleName, containingFile, options, host).resolvedModule; }); });
|
||||
var filesByName = ts.createFileMap(function (fileName) { return host.getCanonicalFileName(fileName); });
|
||||
if (oldProgram) {
|
||||
// check properties that can affect structure of the program or module resolution strategy
|
||||
@@ -35455,7 +35474,8 @@ var ts;
|
||||
getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); },
|
||||
getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); },
|
||||
getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); },
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); }
|
||||
getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); },
|
||||
getFileProcessingDiagnostics: function () { return fileProcessingDiagnostics; }
|
||||
};
|
||||
return program;
|
||||
function getClassifiableNames() {
|
||||
@@ -35482,6 +35502,7 @@ var ts;
|
||||
}
|
||||
// check if program source files has changed in the way that can affect structure of the program
|
||||
var newSourceFiles = [];
|
||||
var modifiedSourceFiles = [];
|
||||
for (var _i = 0, _a = oldProgram.getSourceFiles(); _i < _a.length; _i++) {
|
||||
var oldSourceFile = _a[_i];
|
||||
var newSourceFile = host.getSourceFile(oldSourceFile.fileName, options.target);
|
||||
@@ -35510,14 +35531,21 @@ var ts;
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, newSourceFile.fileName);
|
||||
// ensure that module resolution results are still correct
|
||||
for (var i = 0; i < moduleNames.length; ++i) {
|
||||
var oldResolution = ts.getResolvedModuleFileName(oldSourceFile, moduleNames[i]);
|
||||
if (oldResolution !== resolutions[i]) {
|
||||
var newResolution = resolutions[i];
|
||||
var oldResolution = ts.getResolvedModule(oldSourceFile, moduleNames[i]);
|
||||
var resolutionChanged = oldResolution
|
||||
? !newResolution ||
|
||||
oldResolution.resolvedFileName !== newResolution.resolvedFileName ||
|
||||
!!oldResolution.isExternalLibraryImport !== !!newResolution.isExternalLibraryImport
|
||||
: newResolution;
|
||||
if (resolutionChanged) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// pass the cache of module resolutions from the old source file
|
||||
newSourceFile.resolvedModules = oldSourceFile.resolvedModules;
|
||||
modifiedSourceFiles.push(newSourceFile);
|
||||
}
|
||||
else {
|
||||
// file has no changes - use it as is
|
||||
@@ -35532,6 +35560,11 @@ var ts;
|
||||
filesByName.set(file.fileName, file);
|
||||
}
|
||||
files = newSourceFiles;
|
||||
fileProcessingDiagnostics = oldProgram.getFileProcessingDiagnostics();
|
||||
for (var _c = 0; _c < modifiedSourceFiles.length; _c++) {
|
||||
var modifiedFile = modifiedSourceFiles[_c];
|
||||
fileProcessingDiagnostics.reattachFileDiagnostics(modifiedFile);
|
||||
}
|
||||
oldProgram.structureIsReused = true;
|
||||
return true;
|
||||
}
|
||||
@@ -35633,8 +35666,9 @@ var ts;
|
||||
ts.Debug.assert(!!sourceFile.bindDiagnostics);
|
||||
var bindDiagnostics = sourceFile.bindDiagnostics;
|
||||
var checkDiagnostics = typeChecker.getDiagnostics(sourceFile, cancellationToken);
|
||||
var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics);
|
||||
var fileProcessingDiagnosticsInFile = fileProcessingDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
var programDiagnosticsInFile = programDiagnostics.getDiagnostics(sourceFile.fileName);
|
||||
return bindDiagnostics.concat(checkDiagnostics).concat(fileProcessingDiagnosticsInFile).concat(programDiagnosticsInFile);
|
||||
});
|
||||
}
|
||||
function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) {
|
||||
@@ -35649,7 +35683,8 @@ var ts;
|
||||
}
|
||||
function getOptionsDiagnostics() {
|
||||
var allDiagnostics = [];
|
||||
ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, fileProcessingDiagnostics.getGlobalDiagnostics());
|
||||
ts.addRange(allDiagnostics, programDiagnostics.getGlobalDiagnostics());
|
||||
return ts.sortAndDeduplicateDiagnostics(allDiagnostics);
|
||||
}
|
||||
function getGlobalDiagnostics() {
|
||||
@@ -35747,10 +35782,10 @@ var ts;
|
||||
}
|
||||
if (diagnostic) {
|
||||
if (refFile !== undefined && refEnd !== undefined && refPos !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic.apply(void 0, [refFile, refPos, refEnd - refPos, diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic.apply(void 0, [diagnostic].concat(diagnosticArgument)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35770,10 +35805,10 @@ var ts;
|
||||
// We haven't looked for this file, do so now and cache result
|
||||
var file = host.getSourceFile(fileName, options.target, function (hostErrorMessage) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage));
|
||||
}
|
||||
});
|
||||
filesByName.set(canonicalName, file);
|
||||
@@ -35803,10 +35838,10 @@ var ts;
|
||||
var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName;
|
||||
if (canonicalName !== sourceFileName) {
|
||||
if (refFile !== undefined && refPos !== undefined && refEnd !== undefined) {
|
||||
diagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(refFile, refPos, refEnd - refPos, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
else {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
fileProcessingDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35827,9 +35862,23 @@ var ts;
|
||||
var resolutions = resolveModuleNamesWorker(moduleNames, file.fileName);
|
||||
for (var i = 0; i < file.imports.length; ++i) {
|
||||
var resolution = resolutions[i];
|
||||
ts.setResolvedModuleName(file, moduleNames[i], resolution);
|
||||
ts.setResolvedModule(file, moduleNames[i], resolution);
|
||||
if (resolution && !options.noResolve) {
|
||||
findModuleSourceFile(resolution, file.imports[i]);
|
||||
var importedFile = findModuleSourceFile(resolution.resolvedFileName, file.imports[i]);
|
||||
if (importedFile && resolution.isExternalLibraryImport) {
|
||||
if (!ts.isExternalModule(importedFile)) {
|
||||
var start_2 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_2, file.imports[i].end - start_2, ts.Diagnostics.File_0_is_not_a_module, importedFile.fileName));
|
||||
}
|
||||
else if (!ts.fileExtensionIs(importedFile.fileName, ".d.ts")) {
|
||||
var start_3 = ts.getTokenPosOfNode(file.imports[i], file);
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(file, start_3, file.imports[i].end - start_3, ts.Diagnostics.Exported_external_package_typings_can_only_be_in_d_ts_files_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
else if (importedFile.referencedFiles.length) {
|
||||
var firstRef = importedFile.referencedFiles[0];
|
||||
fileProcessingDiagnostics.add(ts.createFileDiagnostic(importedFile, firstRef.pos, firstRef.end - firstRef.pos, ts.Diagnostics.Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35839,7 +35888,7 @@ var ts;
|
||||
}
|
||||
return;
|
||||
function findModuleSourceFile(fileName, nameLiteral) {
|
||||
return findSourceFile(fileName, /* isDefaultLib */ false, file, nameLiteral.pos, nameLiteral.end);
|
||||
return findSourceFile(fileName, /* isDefaultLib */ false, file, ts.skipTrivia(file.text, nameLiteral.pos), nameLiteral.end);
|
||||
}
|
||||
}
|
||||
function computeCommonSourceDirectory(sourceFiles) {
|
||||
@@ -35860,7 +35909,7 @@ var ts;
|
||||
for (var i = 0, n = Math.min(commonPathComponents.length, sourcePathComponents.length); i < n; i++) {
|
||||
if (commonPathComponents[i] !== sourcePathComponents[i]) {
|
||||
if (i === 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files));
|
||||
return;
|
||||
}
|
||||
// New common path found that is 0 -> i-1
|
||||
@@ -35885,7 +35934,7 @@ var ts;
|
||||
if (!ts.isDeclarationFile(sourceFile)) {
|
||||
var absoluteSourceFilePath = host.getCanonicalFileName(ts.getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));
|
||||
if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files, sourceFile.fileName, options.rootDir));
|
||||
allFilesBelongToPath = false;
|
||||
}
|
||||
}
|
||||
@@ -35896,44 +35945,44 @@ var ts;
|
||||
function verifyCompilerOptions() {
|
||||
if (options.isolatedModules) {
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"));
|
||||
}
|
||||
if (options.noEmitOnError) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmitOnError", "isolatedModules"));
|
||||
}
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "isolatedModules"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "outFile", "isolatedModules"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSourceMap) {
|
||||
if (options.sourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceMap", "inlineSourceMap"));
|
||||
}
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "mapRoot", "inlineSourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "sourceRoot", "inlineSourceMap"));
|
||||
}
|
||||
}
|
||||
if (options.inlineSources) {
|
||||
if (!options.sourceMap && !options.inlineSourceMap) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_inlineSources_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided));
|
||||
}
|
||||
}
|
||||
if (options.out && options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "out", "outFile"));
|
||||
}
|
||||
if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) {
|
||||
// Error to specify --mapRoot or --sourceRoot without mapSourceFiles
|
||||
if (options.mapRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "mapRoot", "sourceMap"));
|
||||
}
|
||||
if (options.sourceRoot) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "sourceRoot", "sourceMap"));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -35942,22 +35991,22 @@ var ts;
|
||||
var firstExternalModuleSourceFile = ts.forEach(files, function (f) { return ts.isExternalModule(f) ? f : undefined; });
|
||||
if (options.isolatedModules) {
|
||||
if (!options.module && languageVersion < 2 /* ES6 */) {
|
||||
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));
|
||||
programDiagnostics.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_isolatedModules_flag_is_provided));
|
||||
programDiagnostics.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) {
|
||||
// We cannot use createDiagnosticFromNode because nodes do not have parents yet
|
||||
var span = ts.getErrorSpanForNode(firstExternalModuleSourceFile, firstExternalModuleSourceFile.externalModuleIndicator);
|
||||
diagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
programDiagnostics.add(ts.createFileDiagnostic(firstExternalModuleSourceFile, span.start, span.length, ts.Diagnostics.Cannot_compile_modules_unless_the_module_flag_is_provided));
|
||||
}
|
||||
// Cannot specify module gen target when in es6 or above
|
||||
if (options.module && languageVersion >= 2 /* ES6 */) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_compile_modules_into_commonjs_amd_system_or_umd_when_targeting_ES6_or_higher));
|
||||
}
|
||||
// there has to be common source directory if user specified --outdir || --sourceRoot
|
||||
// if user specified --mapRoot, there needs to be common source directory if there would be multiple files being emitted
|
||||
@@ -35982,25 +36031,25 @@ var ts;
|
||||
}
|
||||
if (options.noEmit) {
|
||||
if (options.out) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out"));
|
||||
}
|
||||
if (options.outFile) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile"));
|
||||
}
|
||||
if (options.outDir) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir"));
|
||||
}
|
||||
if (options.declaration) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration"));
|
||||
}
|
||||
}
|
||||
if (options.emitDecoratorMetadata &&
|
||||
!options.experimentalDecorators) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "emitDecoratorMetadata", "experimentalDecorators"));
|
||||
}
|
||||
if (options.experimentalAsyncFunctions &&
|
||||
options.target !== 2 /* ES6 */) {
|
||||
diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
programDiagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36251,8 +36300,8 @@ var ts;
|
||||
"node": 2 /* NodeJs */,
|
||||
"classic": 1 /* Classic */
|
||||
},
|
||||
experimental: true,
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6
|
||||
description: ts.Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6,
|
||||
error: ts.Diagnostics.Argument_for_moduleResolution_option_must_be_node_or_classic
|
||||
}
|
||||
];
|
||||
var optionNameMapCache;
|
||||
@@ -38721,7 +38770,7 @@ var ts;
|
||||
function findPrecedingToken(position, sourceFile, startNode) {
|
||||
return find(startNode || sourceFile);
|
||||
function findRightmostToken(n) {
|
||||
if (isToken(n)) {
|
||||
if (isToken(n) || n.kind === 234 /* JsxText */) {
|
||||
return n;
|
||||
}
|
||||
var children = n.getChildren();
|
||||
@@ -38729,23 +38778,32 @@ var ts;
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
function find(n) {
|
||||
if (isToken(n)) {
|
||||
if (isToken(n) || n.kind === 234 /* JsxText */) {
|
||||
return n;
|
||||
}
|
||||
var children = n.getChildren();
|
||||
for (var i = 0, len = children.length; i < len; i++) {
|
||||
var child = children[i];
|
||||
if (nodeHasTokens(child)) {
|
||||
if (position <= child.end) {
|
||||
if (child.getStart(sourceFile) >= position) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i);
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
else {
|
||||
// candidate should be in this node
|
||||
return find(child);
|
||||
}
|
||||
// condition 'position < child.end' checks if child node end after the position
|
||||
// in the example below this condition will be false for 'aaaa' and 'bbbb' and true for 'ccc'
|
||||
// aaaa___bbbb___$__ccc
|
||||
// after we found child node with end after the position we check if start of the node is after the position.
|
||||
// if yes - then position is in the trivia and we need to look into the previous child to find the token in question.
|
||||
// if no - position is in the node itself so we should recurse in it.
|
||||
// NOTE: JsxText is a weird kind of node that can contain only whitespaces (since they are not counted as trivia).
|
||||
// if this is the case - then we should assume that token in question is located in previous child.
|
||||
if (position < child.end && (nodeHasTokens(child) || child.kind === 234 /* JsxText */)) {
|
||||
var start = child.getStart(sourceFile);
|
||||
var lookInPreviousChild = (start >= position) ||
|
||||
(child.kind === 234 /* JsxText */ && start === child.end); // whitespace only JsxText
|
||||
if (lookInPreviousChild) {
|
||||
// actual start of the node is past the position - previous token should be at the end of previous child
|
||||
var candidate = findRightmostChildNodeWithTokens(children, /*exclusiveStartPosition*/ i);
|
||||
return candidate && findRightmostToken(candidate);
|
||||
}
|
||||
else {
|
||||
// candidate should be in this node
|
||||
return find(child);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39162,6 +39220,7 @@ var ts;
|
||||
ScanAction[ScanAction["RescanGreaterThanToken"] = 1] = "RescanGreaterThanToken";
|
||||
ScanAction[ScanAction["RescanSlashToken"] = 2] = "RescanSlashToken";
|
||||
ScanAction[ScanAction["RescanTemplateToken"] = 3] = "RescanTemplateToken";
|
||||
ScanAction[ScanAction["RescanJsxIdentifier"] = 4] = "RescanJsxIdentifier";
|
||||
})(ScanAction || (ScanAction = {}));
|
||||
function getFormattingScanner(sourceFile, startPos, endPos) {
|
||||
scanner.setText(sourceFile.text);
|
||||
@@ -39235,6 +39294,18 @@ var ts;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function shouldRescanJsxIdentifier(node) {
|
||||
if (node.parent) {
|
||||
switch (node.parent.kind) {
|
||||
case 236 /* JsxAttribute */:
|
||||
case 233 /* JsxOpeningElement */:
|
||||
case 235 /* JsxClosingElement */:
|
||||
case 232 /* JsxSelfClosingElement */:
|
||||
return node.kind === 67 /* Identifier */;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function shouldRescanSlashToken(container) {
|
||||
return container.kind === 10 /* RegularExpressionLiteral */;
|
||||
}
|
||||
@@ -39262,7 +39333,9 @@ var ts;
|
||||
? 2 /* RescanSlashToken */
|
||||
: shouldRescanTemplateToken(n)
|
||||
? 3 /* RescanTemplateToken */
|
||||
: 0 /* Scan */;
|
||||
: shouldRescanJsxIdentifier(n)
|
||||
? 4 /* RescanJsxIdentifier */
|
||||
: 0 /* Scan */;
|
||||
if (lastTokenInfo && expectedScanAction === lastScanAction) {
|
||||
// readTokenInfo was called before with the same expected scan action.
|
||||
// No need to re-scan text, return existing 'lastTokenInfo'
|
||||
@@ -39293,6 +39366,10 @@ var ts;
|
||||
currentToken = scanner.reScanTemplateToken();
|
||||
lastScanAction = 3 /* RescanTemplateToken */;
|
||||
}
|
||||
else if (expectedScanAction === 4 /* RescanJsxIdentifier */ && currentToken === 67 /* Identifier */) {
|
||||
currentToken = scanner.scanJsxIdentifier();
|
||||
lastScanAction = 4 /* RescanJsxIdentifier */;
|
||||
}
|
||||
else {
|
||||
lastScanAction = 0 /* Scan */;
|
||||
}
|
||||
@@ -39633,7 +39710,7 @@ var ts;
|
||||
this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments;
|
||||
this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 15 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */);
|
||||
// Place a space before open brace in a TypeScript declaration that has braces as children (class, module, enum, etc)
|
||||
this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([67 /* Identifier */, 3 /* MultiLineCommentTrivia */]);
|
||||
this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([67 /* Identifier */, 3 /* MultiLineCommentTrivia */, 71 /* ClassKeyword */]);
|
||||
this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 15 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */);
|
||||
// Place a space before open brace in a control flow construct
|
||||
this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([18 /* CloseParenToken */, 3 /* MultiLineCommentTrivia */, 77 /* DoKeyword */, 98 /* TryKeyword */, 83 /* FinallyKeyword */, 78 /* ElseKeyword */]);
|
||||
@@ -39727,11 +39804,13 @@ var ts;
|
||||
// template string
|
||||
this.SpaceBetweenTagAndTemplateString = new formatting.Rule(formatting.RuleDescriptor.create3(67 /* Identifier */, formatting.Shared.TokenRange.FromTokens([11 /* NoSubstitutionTemplateLiteral */, 12 /* TemplateHead */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.NoSpaceBetweenTagAndTemplateString = new formatting.Rule(formatting.RuleDescriptor.create3(67 /* Identifier */, formatting.Shared.TokenRange.FromTokens([11 /* NoSubstitutionTemplateLiteral */, 12 /* TemplateHead */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */));
|
||||
// union type
|
||||
// type operation
|
||||
this.SpaceBeforeBar = new formatting.Rule(formatting.RuleDescriptor.create3(46 /* BarToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.NoSpaceBeforeBar = new formatting.Rule(formatting.RuleDescriptor.create3(46 /* BarToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */));
|
||||
this.SpaceAfterBar = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 46 /* BarToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.NoSpaceAfterBar = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 46 /* BarToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */));
|
||||
this.SpaceBeforeAmpersand = new formatting.Rule(formatting.RuleDescriptor.create3(45 /* AmpersandToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
this.SpaceAfterAmpersand = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 45 /* AmpersandToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */));
|
||||
// These rules are higher in priority than user-configurable rules.
|
||||
this.HighPriorityCommonRules =
|
||||
[
|
||||
@@ -39763,6 +39842,7 @@ var ts;
|
||||
this.SpaceAfterTypeKeyword, this.NoSpaceAfterTypeKeyword,
|
||||
this.SpaceBetweenTagAndTemplateString, this.NoSpaceBetweenTagAndTemplateString,
|
||||
this.SpaceBeforeBar, this.NoSpaceBeforeBar, this.SpaceAfterBar, this.NoSpaceAfterBar,
|
||||
this.SpaceBeforeAmpersand, this.SpaceAfterAmpersand,
|
||||
// TypeScript-specific rules
|
||||
this.NoSpaceAfterConstructor, this.NoSpaceAfterModuleImport,
|
||||
this.SpaceAfterCertainTypeScriptKeywords, this.SpaceBeforeCertainTypeScriptKeywords,
|
||||
@@ -39967,6 +40047,7 @@ var ts;
|
||||
Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) {
|
||||
switch (node.kind) {
|
||||
case 212 /* ClassDeclaration */:
|
||||
case 184 /* ClassExpression */:
|
||||
case 213 /* InterfaceDeclaration */:
|
||||
case 215 /* EnumDeclaration */:
|
||||
case 153 /* TypeLiteral */:
|
||||
@@ -41704,6 +41785,7 @@ var ts;
|
||||
function nodeContentIsAlwaysIndented(kind) {
|
||||
switch (kind) {
|
||||
case 212 /* ClassDeclaration */:
|
||||
case 184 /* ClassExpression */:
|
||||
case 213 /* InterfaceDeclaration */:
|
||||
case 215 /* EnumDeclaration */:
|
||||
case 214 /* TypeAliasDeclaration */:
|
||||
@@ -41728,13 +41810,13 @@ var ts;
|
||||
case 160 /* ArrayBindingPattern */:
|
||||
case 159 /* ObjectBindingPattern */:
|
||||
case 231 /* JsxElement */:
|
||||
case 232 /* JsxSelfClosingElement */:
|
||||
case 140 /* MethodSignature */:
|
||||
case 145 /* CallSignature */:
|
||||
case 146 /* ConstructSignature */:
|
||||
case 136 /* Parameter */:
|
||||
case 150 /* FunctionType */:
|
||||
case 151 /* ConstructorType */:
|
||||
case 156 /* UnionType */:
|
||||
case 158 /* ParenthesizedType */:
|
||||
case 168 /* TaggedTemplateExpression */:
|
||||
case 176 /* AwaitExpression */:
|
||||
@@ -42858,7 +42940,7 @@ var ts;
|
||||
var sourceMapText;
|
||||
// Create a compilerHost object to allow the compiler to read and write files
|
||||
var compilerHost = {
|
||||
getSourceFile: function (fileName, target) { return fileName === inputFileName ? sourceFile : undefined; },
|
||||
getSourceFile: function (fileName, target) { return fileName === ts.normalizeSlashes(inputFileName) ? sourceFile : undefined; },
|
||||
writeFile: function (name, text, writeByteOrderMark) {
|
||||
if (ts.fileExtensionIs(name, ".map")) {
|
||||
ts.Debug.assert(sourceMapText === undefined, "Unexpected multiple source map outputs for the file '" + name + "'");
|
||||
@@ -43106,6 +43188,7 @@ var ts;
|
||||
//
|
||||
// export * from "mod"
|
||||
// export {a as b} from "mod"
|
||||
// export import i = require("mod")
|
||||
while (token !== 1 /* EndOfFileToken */) {
|
||||
if (token === 120 /* DeclareKeyword */) {
|
||||
// declare module "mod"
|
||||
@@ -43226,6 +43309,25 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token === 87 /* ImportKeyword */) {
|
||||
token = scanner.scan();
|
||||
if (token === 67 /* Identifier */ || ts.isKeyword(token)) {
|
||||
token = scanner.scan();
|
||||
if (token === 55 /* EqualsToken */) {
|
||||
token = scanner.scan();
|
||||
if (token === 125 /* RequireKeyword */) {
|
||||
token = scanner.scan();
|
||||
if (token === 17 /* OpenParenToken */) {
|
||||
token = scanner.scan();
|
||||
if (token === 9 /* StringLiteral */) {
|
||||
// export import i = require("mod");
|
||||
recordModuleName();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
token = scanner.scan();
|
||||
}
|
||||
@@ -43929,9 +44031,9 @@ var ts;
|
||||
// Check if the caret is at the end of an identifier; this is a partial identifier that we want to complete: e.g. a.toS|
|
||||
// Skip this partial identifier and adjust the contextToken to the token that precedes it.
|
||||
if (contextToken && position <= contextToken.end && ts.isWord(contextToken.kind)) {
|
||||
var start_2 = new Date().getTime();
|
||||
var start_4 = new Date().getTime();
|
||||
contextToken = ts.findPrecedingToken(contextToken.getFullStart(), sourceFile);
|
||||
log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_2));
|
||||
log("getCompletionData: Get previous token 2: " + (new Date().getTime() - start_4));
|
||||
}
|
||||
// Find the node where completion is requested on.
|
||||
// Also determine whether we are trying to complete with members of that node
|
||||
@@ -44179,13 +44281,13 @@ var ts;
|
||||
if (contextToken.kind === 9 /* StringLiteral */
|
||||
|| contextToken.kind === 10 /* RegularExpressionLiteral */
|
||||
|| ts.isTemplateLiteralKind(contextToken.kind)) {
|
||||
var start_3 = contextToken.getStart();
|
||||
var start_5 = contextToken.getStart();
|
||||
var end = contextToken.getEnd();
|
||||
// To be "in" one of these literals, the position has to be:
|
||||
// 1. entirely within the token text.
|
||||
// 2. at the end position of an unterminated token.
|
||||
// 3. at the end of a regular expression (due to trailing flags like '/foo/g').
|
||||
if (start_3 < position && position < end) {
|
||||
if (start_5 < position && position < end) {
|
||||
return true;
|
||||
}
|
||||
if (position === end) {
|
||||
@@ -48557,7 +48659,10 @@ var ts;
|
||||
if ("getModuleResolutionsForFile" in this.shimHost) {
|
||||
this.resolveModuleNames = function (moduleNames, containingFile) {
|
||||
var resolutionsInFile = JSON.parse(_this.shimHost.getModuleResolutionsForFile(containingFile));
|
||||
return ts.map(moduleNames, function (name) { return ts.lookUp(resolutionsInFile, name); });
|
||||
return ts.map(moduleNames, function (name) {
|
||||
var result = ts.lookUp(resolutionsInFile, name);
|
||||
return result ? { resolvedFileName: result } : undefined;
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -49104,7 +49209,11 @@ var ts;
|
||||
var _this = this;
|
||||
return this.forwardJSONCall("resolveModuleName('" + fileName + "')", function () {
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
return ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
return {
|
||||
resolvedFileName: result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
};
|
||||
});
|
||||
};
|
||||
CoreServicesShimObject.prototype.getPreProcessedFileInfo = function (fileName, sourceTextSnapshot) {
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "typescript",
|
||||
"author": "Microsoft Corp.",
|
||||
"homepage": "http://typescriptlang.org/",
|
||||
"version": "1.6.0",
|
||||
"version": "1.6.2",
|
||||
"license": "Apache-2.0",
|
||||
"description": "TypeScript is a language for application scale JavaScript development",
|
||||
"keywords": [
|
||||
|
||||
@@ -14254,7 +14254,10 @@ namespace ts {
|
||||
let symbols: Symbol[] = [];
|
||||
let name = symbol.name;
|
||||
forEach(getSymbolLinks(symbol).containingType.types, t => {
|
||||
symbols.push(getPropertyOfType(t, name));
|
||||
let symbol = getPropertyOfType(t, name);
|
||||
if (symbol) {
|
||||
symbols.push(symbol);
|
||||
}
|
||||
});
|
||||
return symbols;
|
||||
}
|
||||
|
||||
@@ -243,8 +243,9 @@ namespace ts {
|
||||
"node": ModuleResolutionKind.NodeJs,
|
||||
"classic": ModuleResolutionKind.Classic
|
||||
},
|
||||
description: Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6
|
||||
}
|
||||
description: Diagnostics.Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6,
|
||||
error: Diagnostics.Argument_for_moduleResolution_option_must_be_node_or_classic,
|
||||
}
|
||||
];
|
||||
|
||||
/* @internal */
|
||||
@@ -327,7 +328,7 @@ namespace ts {
|
||||
options[opt.name] = map[key];
|
||||
}
|
||||
else {
|
||||
errors.push(createCompilerDiagnostic(opt.error));
|
||||
errors.push(createCompilerDiagnostic((<CommandLineOptionOfCustomType>opt).error));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -440,7 +441,7 @@ namespace ts {
|
||||
value = optType[key];
|
||||
}
|
||||
else {
|
||||
errors.push(createCompilerDiagnostic(opt.error));
|
||||
errors.push(createCompilerDiagnostic((<CommandLineOptionOfCustomType>opt).error));
|
||||
value = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -565,13 +565,14 @@ namespace ts {
|
||||
Specifies_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: { code: 6060, category: DiagnosticCategory.Message, key: "Specifies the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)." },
|
||||
NEWLINE: { code: 6061, category: DiagnosticCategory.Message, key: "NEWLINE" },
|
||||
Argument_for_newLine_option_must_be_CRLF_or_LF: { code: 6062, category: DiagnosticCategory.Error, key: "Argument for '--newLine' option must be 'CRLF' or 'LF'." },
|
||||
Argument_for_moduleResolution_option_must_be_node_or_classic: { code: 6063, category: DiagnosticCategory.Error, key: "Argument for '--moduleResolution' option must be 'node' or 'classic'." },
|
||||
Specify_JSX_code_generation_Colon_preserve_or_react: { code: 6080, category: DiagnosticCategory.Message, key: "Specify JSX code generation: 'preserve' or 'react'" },
|
||||
Argument_for_jsx_must_be_preserve_or_react: { code: 6081, category: DiagnosticCategory.Message, key: "Argument for '--jsx' must be 'preserve' or 'react'." },
|
||||
Enables_experimental_support_for_ES7_decorators: { code: 6065, category: DiagnosticCategory.Message, key: "Enables experimental support for ES7 decorators." },
|
||||
Enables_experimental_support_for_emitting_type_metadata_for_decorators: { code: 6066, category: DiagnosticCategory.Message, key: "Enables experimental support for emitting type metadata for decorators." },
|
||||
Option_experimentalAsyncFunctions_cannot_be_specified_when_targeting_ES5_or_lower: { code: 6067, category: DiagnosticCategory.Message, key: "Option 'experimentalAsyncFunctions' cannot be specified when targeting ES5 or lower." },
|
||||
Enables_experimental_support_for_ES7_async_functions: { code: 6068, category: DiagnosticCategory.Message, key: "Enables experimental support for ES7 async functions." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_or_classic_TypeScript_pre_1_6: { code: 6069, category: DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) ." },
|
||||
Specifies_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6: { code: 6069, category: DiagnosticCategory.Message, key: "Specifies module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)." },
|
||||
Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: { code: 6070, category: DiagnosticCategory.Message, key: "Initializes a TypeScript project and creates a tsconfig.json file." },
|
||||
Successfully_created_a_tsconfig_json_file: { code: 6071, category: DiagnosticCategory.Message, key: "Successfully created a tsconfig.json file." },
|
||||
Suppress_excess_property_checks_for_object_literals: { code: 6072, category: DiagnosticCategory.Message, key: "Suppress excess property checks for object literals." },
|
||||
|
||||
@@ -1700,11 +1700,11 @@
|
||||
"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.": {
|
||||
"category": "Error",
|
||||
"code": 2652
|
||||
},
|
||||
},
|
||||
"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.": {
|
||||
"category": "Error",
|
||||
"code": 2653
|
||||
},
|
||||
},
|
||||
"Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition.": {
|
||||
"category": "Error",
|
||||
"code": 2654
|
||||
@@ -1712,11 +1712,11 @@
|
||||
"Exported external package typings can only be in '.d.ts' files. Please contact the package author to update the package definition.": {
|
||||
"category": "Error",
|
||||
"code": 2655
|
||||
},
|
||||
},
|
||||
"Exported external package typings file '{0}' is not a module. Please contact the package author to update the package definition.": {
|
||||
"category": "Error",
|
||||
"code": 2656
|
||||
},
|
||||
},
|
||||
"Import declaration '{0}' is using private name '{1}'.": {
|
||||
"category": "Error",
|
||||
"code": 4000
|
||||
@@ -2250,6 +2250,11 @@
|
||||
"category": "Error",
|
||||
"code": 6062
|
||||
},
|
||||
"Argument for '--moduleResolution' option must be 'node' or 'classic'.": {
|
||||
"category": "Error",
|
||||
"code": 6063
|
||||
},
|
||||
|
||||
"Specify JSX code generation: 'preserve' or 'react'": {
|
||||
"category": "Message",
|
||||
"code": 6080
|
||||
@@ -2274,7 +2279,7 @@
|
||||
"category": "Message",
|
||||
"code": 6068
|
||||
},
|
||||
"Specifies module resolution strategy: 'node' (Node) or 'classic' (TypeScript pre 1.6) .": {
|
||||
"Specifies module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6).": {
|
||||
"category": "Message",
|
||||
"code": 6069
|
||||
},
|
||||
|
||||
+37
-22
@@ -3220,22 +3220,32 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
}
|
||||
|
||||
function ensureIdentifier(expr: Expression): Expression {
|
||||
if (expr.kind !== SyntaxKind.Identifier) {
|
||||
let identifier = createTempVariable(TempFlags.Auto);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
expr = identifier;
|
||||
/**
|
||||
* Ensures that there exists a declared identifier whose value holds the given expression.
|
||||
* This function is useful to ensure that the expression's value can be read from in subsequent expressions.
|
||||
* Unless 'reuseIdentifierExpressions' is false, 'expr' will be returned if it is just an identifier.
|
||||
*
|
||||
* @param expr the expression whose value needs to be bound.
|
||||
* @param reuseIdentifierExpressions true if identifier expressions can simply be returned;
|
||||
* false if it is necessary to always emit an identifier.
|
||||
*/
|
||||
function ensureIdentifier(expr: Expression, reuseIdentifierExpressions: boolean): Expression {
|
||||
if (expr.kind === SyntaxKind.Identifier && reuseIdentifierExpressions) {
|
||||
return expr;
|
||||
}
|
||||
return expr;
|
||||
|
||||
let identifier = createTempVariable(TempFlags.Auto);
|
||||
if (!canDefineTempVariablesInPlace) {
|
||||
recordTempDeclaration(identifier);
|
||||
}
|
||||
emitAssignment(identifier, expr);
|
||||
return identifier;
|
||||
}
|
||||
|
||||
function createDefaultValueCheck(value: Expression, defaultValue: Expression): Expression {
|
||||
// The value expression will be evaluated twice, so for anything but a simple identifier
|
||||
// we need to generate a temporary variable
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
// Return the expression 'value === void 0 ? defaultValue : value'
|
||||
let equals = <BinaryExpression>createSynthesizedNode(SyntaxKind.BinaryExpression);
|
||||
equals.left = value;
|
||||
@@ -3286,7 +3296,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
if (properties.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
}
|
||||
for (let p of properties) {
|
||||
if (p.kind === SyntaxKind.PropertyAssignment || p.kind === SyntaxKind.ShorthandPropertyAssignment) {
|
||||
@@ -3301,7 +3311,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
}
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
let e = elements[i];
|
||||
@@ -3346,7 +3356,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
if (root.parent.kind !== SyntaxKind.ParenthesizedExpression) {
|
||||
write("(");
|
||||
}
|
||||
value = ensureIdentifier(value);
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ true);
|
||||
emitDestructuringAssignment(target, value);
|
||||
write(", ");
|
||||
emit(value);
|
||||
@@ -3356,7 +3366,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
}
|
||||
}
|
||||
|
||||
function emitBindingElement(target: BindingElement, value: Expression) {
|
||||
function emitBindingElement(target: BindingElement | VariableDeclaration, value: Expression) {
|
||||
if (target.initializer) {
|
||||
// Combine value and initializer
|
||||
value = value ? createDefaultValueCheck(value, target.initializer) : target.initializer;
|
||||
@@ -3366,14 +3376,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
value = createVoidZero();
|
||||
}
|
||||
if (isBindingPattern(target.name)) {
|
||||
let pattern = <BindingPattern>target.name;
|
||||
let elements = pattern.elements;
|
||||
if (elements.length !== 1) {
|
||||
// For anything but a single element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once.
|
||||
value = ensureIdentifier(value);
|
||||
const pattern = <BindingPattern>target.name;
|
||||
const elements = pattern.elements;
|
||||
const numElements = elements.length;
|
||||
|
||||
if (numElements !== 1) {
|
||||
// For anything other than a single-element destructuring we need to generate a temporary
|
||||
// to ensure value is evaluated exactly once. Additionally, if we have zero elements
|
||||
// we need to emit *something* to ensure that in case a 'var' keyword was already emitted,
|
||||
// so in that case, we'll intentionally create that temporary.
|
||||
value = ensureIdentifier(value, /*reuseIdentifierExpressions*/ numElements !== 0);
|
||||
}
|
||||
for (let i = 0; i < elements.length; i++) {
|
||||
|
||||
for (let i = 0; i < numElements; i++) {
|
||||
let element = elements[i];
|
||||
if (pattern.kind === SyntaxKind.ObjectBindingPattern) {
|
||||
// Rewrite element to a declaration with an initializer that fetches property
|
||||
@@ -3385,7 +3400,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi
|
||||
// Rewrite element to a declaration that accesses array element at index i
|
||||
emitBindingElement(element, createElementAccessExpression(value, createNumericLiteral(i)));
|
||||
}
|
||||
else if (i === elements.length - 1) {
|
||||
else if (i === numElements - 1) {
|
||||
emitBindingElement(element, createSliceCall(value, i));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace ts {
|
||||
|
||||
let emptyArray: any[] = [];
|
||||
|
||||
export const version = "1.6.0";
|
||||
export const version = "1.6.2";
|
||||
|
||||
export function findConfigFile(searchPath: string): string {
|
||||
let fileName = "tsconfig.json";
|
||||
@@ -862,8 +862,8 @@ namespace ts {
|
||||
const importedFile = findModuleSourceFile(resolution.resolvedFileName, file.imports[i]);
|
||||
if (importedFile && resolution.isExternalLibraryImport) {
|
||||
if (!isExternalModule(importedFile)) {
|
||||
let start = getTokenPosOfNode(file.imports[i], file)
|
||||
fileProcessingDiagnostics.add(createFileDiagnostic(file, start, file.imports[i].end - start, Diagnostics.Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition, importedFile.fileName));
|
||||
let start = getTokenPosOfNode(file.imports[i], file)
|
||||
fileProcessingDiagnostics.add(createFileDiagnostic(file, start, file.imports[i].end - start, Diagnostics.Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition, importedFile.fileName));
|
||||
}
|
||||
else if (!fileExtensionIs(importedFile.fileName, ".d.ts")) {
|
||||
let start = getTokenPosOfNode(file.imports[i], file)
|
||||
|
||||
+15
-2
@@ -2116,17 +2116,30 @@ namespace ts {
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export interface CommandLineOption {
|
||||
interface CommandLineOptionBase {
|
||||
name: string;
|
||||
type: string | Map<number>; // "string", "number", "boolean", or an object literal mapping named values to actual values
|
||||
isFilePath?: boolean; // True if option value is a path or fileName
|
||||
shortName?: string; // A short mnemonic for convenience - for instance, 'h' can be used in place of 'help'
|
||||
description?: DiagnosticMessage; // The message describing what the command line switch does
|
||||
paramType?: DiagnosticMessage; // The name to be used for a non-boolean option's parameter
|
||||
error?: DiagnosticMessage; // The error given when the argument does not fit a customized 'type'
|
||||
experimental?: boolean;
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export interface CommandLineOptionOfPrimitiveType extends CommandLineOptionBase {
|
||||
type: string; // "string" | "number" | "boolean"
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export interface CommandLineOptionOfCustomType extends CommandLineOptionBase {
|
||||
type: Map<number>; // an object literal mapping named values to actual values
|
||||
error: DiagnosticMessage; // The error given when the argument does not fit a customized 'type'
|
||||
}
|
||||
|
||||
/* @internal */
|
||||
export type CommandLineOption = CommandLineOptionOfCustomType | CommandLineOptionOfPrimitiveType;
|
||||
|
||||
/* @internal */
|
||||
export const enum CharacterCodes {
|
||||
nullCharacter = 0,
|
||||
|
||||
@@ -2152,6 +2152,7 @@ namespace ts {
|
||||
//
|
||||
// export * from "mod"
|
||||
// export {a as b} from "mod"
|
||||
// export import i = require("mod")
|
||||
|
||||
while (token !== SyntaxKind.EndOfFileToken) {
|
||||
if (token === SyntaxKind.DeclareKeyword) {
|
||||
@@ -2276,6 +2277,25 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (token === SyntaxKind.ImportKeyword) {
|
||||
token = scanner.scan();
|
||||
if (token === SyntaxKind.Identifier || isKeyword(token)) {
|
||||
token = scanner.scan();
|
||||
if (token === SyntaxKind.EqualsToken) {
|
||||
token = scanner.scan();
|
||||
if (token === SyntaxKind.RequireKeyword) {
|
||||
token = scanner.scan();
|
||||
if (token === SyntaxKind.OpenParenToken) {
|
||||
token = scanner.scan();
|
||||
if (token === SyntaxKind.StringLiteral) {
|
||||
// export import i = require("mod");
|
||||
recordModuleName();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
token = scanner.scan();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyArrayBindingPatternParameter01.ts]
|
||||
|
||||
|
||||
function f([]) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -9,3 +8,7 @@ function f([]) {
|
||||
function f(_a) {
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyArrayBindingPatternParameter01.d.ts]
|
||||
declare function f([]: any[]): void;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter01.ts ===
|
||||
|
||||
|
||||
function f([]) {
|
||||
>f : Symbol(f, Decl(emptyArrayBindingPatternParameter01.ts, 0, 0))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter01.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter01.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter01.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter01.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter01.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter01.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter01.ts ===
|
||||
|
||||
|
||||
function f([]) {
|
||||
>f : ([]: any[]) => void
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyArrayBindingPatternParameter02.ts]
|
||||
|
||||
|
||||
function f(a, []) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -9,3 +8,7 @@ function f(a, []) {
|
||||
function f(a, _a) {
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyArrayBindingPatternParameter02.d.ts]
|
||||
declare function f(a: any, []: any[]): void;
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter02.ts ===
|
||||
|
||||
|
||||
function f(a, []) {
|
||||
>f : Symbol(f, Decl(emptyArrayBindingPatternParameter02.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(emptyArrayBindingPatternParameter02.ts, 2, 11))
|
||||
>a : Symbol(a, Decl(emptyArrayBindingPatternParameter02.ts, 1, 11))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter02.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter02.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter02.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter02.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter02.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter02.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter02.ts ===
|
||||
|
||||
|
||||
function f(a, []) {
|
||||
>f : (a: any, []: any[]) => void
|
||||
>a : any
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyArrayBindingPatternParameter03.ts]
|
||||
|
||||
|
||||
function f(a, []) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -9,3 +8,7 @@ function f(a, []) {
|
||||
function f(a, _a) {
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyArrayBindingPatternParameter03.d.ts]
|
||||
declare function f(a: any, []: any[]): void;
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter03.ts ===
|
||||
|
||||
|
||||
function f(a, []) {
|
||||
>f : Symbol(f, Decl(emptyArrayBindingPatternParameter03.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(emptyArrayBindingPatternParameter03.ts, 2, 11))
|
||||
>a : Symbol(a, Decl(emptyArrayBindingPatternParameter03.ts, 1, 11))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter03.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter03.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter03.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter03.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter03.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter03.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter03.ts ===
|
||||
|
||||
|
||||
function f(a, []) {
|
||||
>f : (a: any, []: any[]) => void
|
||||
>a : any
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyArrayBindingPatternParameter04.ts]
|
||||
|
||||
|
||||
function f([] = [1,2,3,4]) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -10,3 +9,7 @@ function f(_a) {
|
||||
var _a = [1, 2, 3, 4];
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyArrayBindingPatternParameter04.d.ts]
|
||||
declare function f([]?: number[]): void;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter04.ts ===
|
||||
|
||||
|
||||
function f([] = [1,2,3,4]) {
|
||||
>f : Symbol(f, Decl(emptyArrayBindingPatternParameter04.ts, 0, 0))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter04.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter04.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter04.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyArrayBindingPatternParameter04.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyArrayBindingPatternParameter04.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyArrayBindingPatternParameter04.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyArrayBindingPatternParameter04.ts ===
|
||||
|
||||
|
||||
function f([] = [1,2,3,4]) {
|
||||
>f : ([]?: number[]) => void
|
||||
>[1,2,3,4] : number[]
|
||||
|
||||
@@ -9,3 +9,7 @@ var a: any;
|
||||
var a;
|
||||
(a);
|
||||
(a);
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns01_ES5.d.ts]
|
||||
declare var a: any;
|
||||
|
||||
@@ -9,3 +9,7 @@ var a: any;
|
||||
var a;
|
||||
({} = a);
|
||||
([] = a);
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns01_ES6.d.ts]
|
||||
declare var a: any;
|
||||
|
||||
@@ -11,3 +11,8 @@ var a;
|
||||
var x, y, z, a1, a2, a3;
|
||||
((x = a.x, y = a.y, z = a.z, a));
|
||||
((a1 = a[0], a2 = a[1], a3 = a[2], a));
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns02_ES5.d.ts]
|
||||
declare var a: any;
|
||||
declare let x: any, y: any, z: any, a1: any, a2: any, a3: any;
|
||||
|
||||
@@ -11,3 +11,8 @@ var a;
|
||||
let x, y, z, a1, a2, a3;
|
||||
({} = { x, y, z } = a);
|
||||
([] = [a1, a2, a3] = a);
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns02_ES6.d.ts]
|
||||
declare var a: any;
|
||||
declare let x: any, y: any, z: any, a1: any, a2: any, a3: any;
|
||||
|
||||
@@ -9,3 +9,7 @@ var a: any;
|
||||
var a;
|
||||
(a);
|
||||
(a);
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns03_ES5.d.ts]
|
||||
declare var a: any;
|
||||
|
||||
@@ -9,3 +9,7 @@ var a: any;
|
||||
var a;
|
||||
({} = {} = a);
|
||||
([] = [] = a);
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns03_ES6.d.ts]
|
||||
declare var a: any;
|
||||
|
||||
@@ -12,3 +12,8 @@ var x, y, z, a1, a2, a3;
|
||||
(_a = a, x = _a.x, y = _a.y, z = _a.z, _a);
|
||||
(_b = a, a1 = _b[0], a2 = _b[1], a3 = _b[2], _b);
|
||||
var _a, _b;
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns04_ES5.d.ts]
|
||||
declare var a: any;
|
||||
declare let x: any, y: any, z: any, a1: any, a2: any, a3: any;
|
||||
|
||||
@@ -11,3 +11,8 @@ var a;
|
||||
let x, y, z, a1, a2, a3;
|
||||
({ x, y, z } = {} = a);
|
||||
([a1, a2, a3] = [] = a);
|
||||
|
||||
|
||||
//// [emptyAssignmentPatterns04_ES6.d.ts]
|
||||
declare var a: any;
|
||||
declare let x: any, y: any, z: any, a1: any, a2: any, a3: any;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyObjectBindingPatternParameter01.ts]
|
||||
|
||||
|
||||
function f({}) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -9,3 +8,7 @@ function f({}) {
|
||||
function f(_a) {
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyObjectBindingPatternParameter01.d.ts]
|
||||
declare function f({}: {}): void;
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter01.ts ===
|
||||
|
||||
|
||||
function f({}) {
|
||||
>f : Symbol(f, Decl(emptyObjectBindingPatternParameter01.ts, 0, 0))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter01.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter01.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter01.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter01.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter01.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter01.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter01.ts ===
|
||||
|
||||
|
||||
function f({}) {
|
||||
>f : ({}: {}) => void
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyObjectBindingPatternParameter02.ts]
|
||||
|
||||
|
||||
function f(a, {}) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -9,3 +8,7 @@ function f(a, {}) {
|
||||
function f(a, _a) {
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyObjectBindingPatternParameter02.d.ts]
|
||||
declare function f(a: any, {}: {}): void;
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter02.ts ===
|
||||
|
||||
|
||||
function f(a, {}) {
|
||||
>f : Symbol(f, Decl(emptyObjectBindingPatternParameter02.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(emptyObjectBindingPatternParameter02.ts, 2, 11))
|
||||
>a : Symbol(a, Decl(emptyObjectBindingPatternParameter02.ts, 1, 11))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter02.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter02.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter02.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter02.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter02.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter02.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter02.ts ===
|
||||
|
||||
|
||||
function f(a, {}) {
|
||||
>f : (a: any, {}: {}) => void
|
||||
>a : any
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyObjectBindingPatternParameter03.ts]
|
||||
|
||||
|
||||
function f({}, a) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -9,3 +8,7 @@ function f({}, a) {
|
||||
function f(_a, a) {
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyObjectBindingPatternParameter03.d.ts]
|
||||
declare function f({}: {}, a: any): void;
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter03.ts ===
|
||||
|
||||
|
||||
function f({}, a) {
|
||||
>f : Symbol(f, Decl(emptyObjectBindingPatternParameter03.ts, 0, 0))
|
||||
>a : Symbol(a, Decl(emptyObjectBindingPatternParameter03.ts, 2, 14))
|
||||
>a : Symbol(a, Decl(emptyObjectBindingPatternParameter03.ts, 1, 14))
|
||||
|
||||
var x, y, z;
|
||||
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter03.ts, 3, 7))
|
||||
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter03.ts, 3, 10))
|
||||
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter03.ts, 3, 13))
|
||||
>x : Symbol(x, Decl(emptyObjectBindingPatternParameter03.ts, 2, 7))
|
||||
>y : Symbol(y, Decl(emptyObjectBindingPatternParameter03.ts, 2, 10))
|
||||
>z : Symbol(z, Decl(emptyObjectBindingPatternParameter03.ts, 2, 13))
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter03.ts ===
|
||||
|
||||
|
||||
function f({}, a) {
|
||||
>f : ({}: {}, a: any) => void
|
||||
>a : any
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(3,18): error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{}'.
|
||||
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(3,24): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type '{}'.
|
||||
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(3,32): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{}'.
|
||||
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(2,18): error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{}'.
|
||||
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(2,24): error TS2353: Object literal may only specify known properties, and 'b' does not exist in type '{}'.
|
||||
tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts(2,32): error TS2353: Object literal may only specify known properties, and 'c' does not exist in type '{}'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/emptyObjectBindingPatternParameter04.ts (3 errors) ====
|
||||
|
||||
|
||||
function f({} = {a: 1, b: "2", c: true}) {
|
||||
~
|
||||
!!! error TS2353: Object literal may only specify known properties, and 'a' does not exist in type '{}'.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
//// [emptyObjectBindingPatternParameter04.ts]
|
||||
|
||||
|
||||
function f({} = {a: 1, b: "2", c: true}) {
|
||||
var x, y, z;
|
||||
}
|
||||
@@ -10,3 +9,11 @@ function f(_a) {
|
||||
var _a = { a: 1, b: "2", c: true };
|
||||
var x, y, z;
|
||||
}
|
||||
|
||||
|
||||
//// [emptyObjectBindingPatternParameter04.d.ts]
|
||||
declare function f({}?: {
|
||||
a: number;
|
||||
b: string;
|
||||
c: boolean;
|
||||
}): void;
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
//// [emptyVariableDeclarationBindingPatterns01_ES5.ts]
|
||||
|
||||
(function () {
|
||||
var a: any;
|
||||
|
||||
var {} = a;
|
||||
let {} = a;
|
||||
const {} = a;
|
||||
|
||||
var [] = a;
|
||||
let [] = a;
|
||||
const [] = a;
|
||||
|
||||
var {} = a, [] = a;
|
||||
let {} = a, [] = a;
|
||||
const {} = a, [] = a;
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
let { p1: {}, p2: [] } = a;
|
||||
const { p1: {}, p2: [] } = a;
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
const ns: number[][] = [];
|
||||
|
||||
for (var {} of ns) {
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
}
|
||||
})();
|
||||
|
||||
//// [emptyVariableDeclarationBindingPatterns01_ES5.js]
|
||||
(function () {
|
||||
var a;
|
||||
var _a = a;
|
||||
var _b = a;
|
||||
var _c = a;
|
||||
var _d = a;
|
||||
var _e = a;
|
||||
var _f = a;
|
||||
var _g = a, _h = a;
|
||||
var _j = a, _k = a;
|
||||
var _l = a, _m = a;
|
||||
var _o = a.p1, _p = a.p2;
|
||||
var _q = a.p1, _r = a.p2;
|
||||
var _s = a.p1, _t = a.p2;
|
||||
for (var _u = {}, _v = {}; false; void 0) {
|
||||
}
|
||||
function f(_a, _b, _c) {
|
||||
var _a = a;
|
||||
var _b = a;
|
||||
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
|
||||
return function (_a, _b, _c) {
|
||||
var _a = a;
|
||||
var _b = a;
|
||||
var _d = (_c === void 0 ? a : _c).p, _e = _d === void 0 ? a : _d;
|
||||
return a;
|
||||
};
|
||||
}
|
||||
})();
|
||||
(function () {
|
||||
var ns = [];
|
||||
for (var _i = 0; _i < ns.length; _i++) {
|
||||
var _a = ns[_i];
|
||||
}
|
||||
for (var _b = 0; _b < ns.length; _b++) {
|
||||
var _c = ns[_b];
|
||||
}
|
||||
for (var _d = 0; _d < ns.length; _d++) {
|
||||
var _e = ns[_d];
|
||||
}
|
||||
for (var _f = 0; _f < ns.length; _f++) {
|
||||
var _g = ns[_f];
|
||||
}
|
||||
for (var _h = 0; _h < ns.length; _h++) {
|
||||
var _j = ns[_h];
|
||||
}
|
||||
for (var _k = 0; _k < ns.length; _k++) {
|
||||
var _l = ns[_k];
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,92 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES5.ts ===
|
||||
|
||||
(function () {
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
var {} = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
let {} = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
const {} = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
var [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
let [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
const [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
var {} = a, [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
let {} = a, [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
const {} = a, [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
let { p1: {}, p2: [] } = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
const { p1: {}, p2: [] } = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
>f : Symbol(f, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 21, 5))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 2, 7))
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
const ns: number[][] = [];
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
|
||||
for (var {} of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES5.ts, 29, 9))
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,115 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES5.ts ===
|
||||
|
||||
(function () {
|
||||
>(function () { var a: any; var {} = a; let {} = a; const {} = a; var [] = a; let [] = a; const [] = a; var {} = a, [] = a; let {} = a, [] = a; const {} = a, [] = a; var { p1: {}, p2: [] } = a; let { p1: {}, p2: [] } = a; const { p1: {}, p2: [] } = a; for (var {} = {}, {} = {}; false; void 0) { } function f({} = a, [] = a, { p: {} = a} = a) { return ({} = a, [] = a, { p: {} = a } = a) => a; }})() : void
|
||||
>(function () { var a: any; var {} = a; let {} = a; const {} = a; var [] = a; let [] = a; const [] = a; var {} = a, [] = a; let {} = a, [] = a; const {} = a, [] = a; var { p1: {}, p2: [] } = a; let { p1: {}, p2: [] } = a; const { p1: {}, p2: [] } = a; for (var {} = {}, {} = {}; false; void 0) { } function f({} = a, [] = a, { p: {} = a} = a) { return ({} = a, [] = a, { p: {} = a } = a) => a; }}) : () => void
|
||||
>function () { var a: any; var {} = a; let {} = a; const {} = a; var [] = a; let [] = a; const [] = a; var {} = a, [] = a; let {} = a, [] = a; const {} = a, [] = a; var { p1: {}, p2: [] } = a; let { p1: {}, p2: [] } = a; const { p1: {}, p2: [] } = a; for (var {} = {}, {} = {}; false; void 0) { } function f({} = a, [] = a, { p: {} = a} = a) { return ({} = a, [] = a, { p: {} = a } = a) => a; }} : () => void
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
var {} = a;
|
||||
>a : any
|
||||
|
||||
let {} = a;
|
||||
>a : any
|
||||
|
||||
const {} = a;
|
||||
>a : any
|
||||
|
||||
var [] = a;
|
||||
>a : any
|
||||
|
||||
let [] = a;
|
||||
>a : any
|
||||
|
||||
const [] = a;
|
||||
>a : any
|
||||
|
||||
var {} = a, [] = a;
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
let {} = a, [] = a;
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
const {} = a, [] = a;
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
>p1 : any
|
||||
>p2 : any
|
||||
>a : any
|
||||
|
||||
let { p1: {}, p2: [] } = a;
|
||||
>p1 : any
|
||||
>p2 : any
|
||||
>a : any
|
||||
|
||||
const { p1: {}, p2: [] } = a;
|
||||
>p1 : any
|
||||
>p2 : any
|
||||
>a : any
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
>{} : {}
|
||||
>{} : {}
|
||||
>false : boolean
|
||||
>void 0 : undefined
|
||||
>0 : number
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
>f : ({}?: any, []?: any, { p: {} = a}?: any) => ({}?: any, []?: any, { p: {} = a }?: any) => any
|
||||
>a : any
|
||||
>a : any
|
||||
>p : any
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
>({} = a, [] = a, { p: {} = a } = a) => a : ({}?: any, []?: any, { p: {} = a }?: any) => any
|
||||
>a : any
|
||||
>a : any
|
||||
>p : any
|
||||
>a : any
|
||||
>a : any
|
||||
>a : any
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
>(function () { const ns: number[][] = []; for (var {} of ns) { } for (let {} of ns) { } for (const {} of ns) { } for (var [] of ns) { } for (let [] of ns) { } for (const [] of ns) { }})() : void
|
||||
>(function () { const ns: number[][] = []; for (var {} of ns) { } for (let {} of ns) { } for (const {} of ns) { } for (var [] of ns) { } for (let [] of ns) { } for (const [] of ns) { }}) : () => void
|
||||
>function () { const ns: number[][] = []; for (var {} of ns) { } for (let {} of ns) { } for (const {} of ns) { } for (var [] of ns) { } for (let [] of ns) { } for (const [] of ns) { }} : () => void
|
||||
|
||||
const ns: number[][] = [];
|
||||
>ns : number[][]
|
||||
>[] : undefined[]
|
||||
|
||||
for (var {} of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,87 @@
|
||||
//// [emptyVariableDeclarationBindingPatterns01_ES6.ts]
|
||||
|
||||
(function () {
|
||||
var a: any;
|
||||
|
||||
var {} = a;
|
||||
let {} = a;
|
||||
const {} = a;
|
||||
|
||||
var [] = a;
|
||||
let [] = a;
|
||||
const [] = a;
|
||||
|
||||
var {} = a, [] = a;
|
||||
let {} = a, [] = a;
|
||||
const {} = a, [] = a;
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
let { p1: {}, p2: [] } = a;
|
||||
const { p1: {}, p2: [] } = a;
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
const ns: number[][] = [];
|
||||
|
||||
for (var {} of ns) {
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
}
|
||||
})();
|
||||
|
||||
//// [emptyVariableDeclarationBindingPatterns01_ES6.js]
|
||||
(function () {
|
||||
var a;
|
||||
var { } = a;
|
||||
let { } = a;
|
||||
const { } = a;
|
||||
var [] = a;
|
||||
let [] = a;
|
||||
const [] = a;
|
||||
var { } = a, [] = a;
|
||||
let { } = a, [] = a;
|
||||
const { } = a, [] = a;
|
||||
var { p1: { }, p2: [] } = a;
|
||||
let { p1: { }, p2: [] } = a;
|
||||
const { p1: { }, p2: [] } = a;
|
||||
for (var { } = {}, { } = {}; false; void 0) {
|
||||
}
|
||||
function f({ } = a, [] = a, { p: { } = a } = a) {
|
||||
return ({ } = a, [] = a, { p: { } = a } = a) => a;
|
||||
}
|
||||
})();
|
||||
(function () {
|
||||
const ns = [];
|
||||
for (var { } of ns) {
|
||||
}
|
||||
for (let { } of ns) {
|
||||
}
|
||||
for (const { } of ns) {
|
||||
}
|
||||
for (var [] of ns) {
|
||||
}
|
||||
for (let [] of ns) {
|
||||
}
|
||||
for (const [] of ns) {
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,92 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES6.ts ===
|
||||
|
||||
(function () {
|
||||
var a: any;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
var {} = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
let {} = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
const {} = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
var [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
let [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
const [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
var {} = a, [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
let {} = a, [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
const {} = a, [] = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
let { p1: {}, p2: [] } = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
const { p1: {}, p2: [] } = a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
>f : Symbol(f, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 21, 5))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
>a : Symbol(a, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 2, 7))
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
const ns: number[][] = [];
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
|
||||
for (var {} of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
>ns : Symbol(ns, Decl(emptyVariableDeclarationBindingPatterns01_ES6.ts, 29, 9))
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,115 @@
|
||||
=== tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns01_ES6.ts ===
|
||||
|
||||
(function () {
|
||||
>(function () { var a: any; var {} = a; let {} = a; const {} = a; var [] = a; let [] = a; const [] = a; var {} = a, [] = a; let {} = a, [] = a; const {} = a, [] = a; var { p1: {}, p2: [] } = a; let { p1: {}, p2: [] } = a; const { p1: {}, p2: [] } = a; for (var {} = {}, {} = {}; false; void 0) { } function f({} = a, [] = a, { p: {} = a} = a) { return ({} = a, [] = a, { p: {} = a } = a) => a; }})() : void
|
||||
>(function () { var a: any; var {} = a; let {} = a; const {} = a; var [] = a; let [] = a; const [] = a; var {} = a, [] = a; let {} = a, [] = a; const {} = a, [] = a; var { p1: {}, p2: [] } = a; let { p1: {}, p2: [] } = a; const { p1: {}, p2: [] } = a; for (var {} = {}, {} = {}; false; void 0) { } function f({} = a, [] = a, { p: {} = a} = a) { return ({} = a, [] = a, { p: {} = a } = a) => a; }}) : () => void
|
||||
>function () { var a: any; var {} = a; let {} = a; const {} = a; var [] = a; let [] = a; const [] = a; var {} = a, [] = a; let {} = a, [] = a; const {} = a, [] = a; var { p1: {}, p2: [] } = a; let { p1: {}, p2: [] } = a; const { p1: {}, p2: [] } = a; for (var {} = {}, {} = {}; false; void 0) { } function f({} = a, [] = a, { p: {} = a} = a) { return ({} = a, [] = a, { p: {} = a } = a) => a; }} : () => void
|
||||
|
||||
var a: any;
|
||||
>a : any
|
||||
|
||||
var {} = a;
|
||||
>a : any
|
||||
|
||||
let {} = a;
|
||||
>a : any
|
||||
|
||||
const {} = a;
|
||||
>a : any
|
||||
|
||||
var [] = a;
|
||||
>a : any
|
||||
|
||||
let [] = a;
|
||||
>a : any
|
||||
|
||||
const [] = a;
|
||||
>a : any
|
||||
|
||||
var {} = a, [] = a;
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
let {} = a, [] = a;
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
const {} = a, [] = a;
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
>p1 : any
|
||||
>p2 : any
|
||||
>a : any
|
||||
|
||||
let { p1: {}, p2: [] } = a;
|
||||
>p1 : any
|
||||
>p2 : any
|
||||
>a : any
|
||||
|
||||
const { p1: {}, p2: [] } = a;
|
||||
>p1 : any
|
||||
>p2 : any
|
||||
>a : any
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
>{} : {}
|
||||
>{} : {}
|
||||
>false : boolean
|
||||
>void 0 : undefined
|
||||
>0 : number
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
>f : ({}?: any, []?: any, { p: {} = a}?: any) => ({}?: any, []?: any, { p: {} = a }?: any) => any
|
||||
>a : any
|
||||
>a : any
|
||||
>p : any
|
||||
>a : any
|
||||
>a : any
|
||||
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
>({} = a, [] = a, { p: {} = a } = a) => a : ({}?: any, []?: any, { p: {} = a }?: any) => any
|
||||
>a : any
|
||||
>a : any
|
||||
>p : any
|
||||
>a : any
|
||||
>a : any
|
||||
>a : any
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
>(function () { const ns: number[][] = []; for (var {} of ns) { } for (let {} of ns) { } for (const {} of ns) { } for (var [] of ns) { } for (let [] of ns) { } for (const [] of ns) { }})() : void
|
||||
>(function () { const ns: number[][] = []; for (var {} of ns) { } for (let {} of ns) { } for (const {} of ns) { } for (var [] of ns) { } for (let [] of ns) { } for (const [] of ns) { }}) : () => void
|
||||
>function () { const ns: number[][] = []; for (var {} of ns) { } for (let {} of ns) { } for (const {} of ns) { } for (var [] of ns) { } for (let [] of ns) { } for (const [] of ns) { }} : () => void
|
||||
|
||||
const ns: number[][] = [];
|
||||
>ns : number[][]
|
||||
>[] : undefined[]
|
||||
|
||||
for (var {} of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
>ns : number[][]
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,31 @@
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts(3,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts(4,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts(5,11): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts(7,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts(8,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts(9,11): error TS1182: A destructuring declaration must have an initializer.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES5.ts (6 errors) ====
|
||||
|
||||
(function () {
|
||||
var {};
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
let {};
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
const {};
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
|
||||
var [];
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
let [];
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
const [];
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
})();
|
||||
@@ -0,0 +1,24 @@
|
||||
//// [emptyVariableDeclarationBindingPatterns02_ES5.ts]
|
||||
|
||||
(function () {
|
||||
var {};
|
||||
let {};
|
||||
const {};
|
||||
|
||||
var [];
|
||||
let [];
|
||||
const [];
|
||||
})();
|
||||
|
||||
//// [emptyVariableDeclarationBindingPatterns02_ES5.js]
|
||||
(function () {
|
||||
var _a = void 0;
|
||||
var _b = void 0;
|
||||
var _c = void 0;
|
||||
var _d = void 0;
|
||||
var _e = void 0;
|
||||
var _f = void 0;
|
||||
})();
|
||||
|
||||
|
||||
//// [emptyVariableDeclarationBindingPatterns02_ES5.d.ts]
|
||||
@@ -0,0 +1,31 @@
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts(3,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts(4,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts(5,11): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts(7,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts(8,9): error TS1182: A destructuring declaration must have an initializer.
|
||||
tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts(9,11): error TS1182: A destructuring declaration must have an initializer.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/destructuring/emptyVariableDeclarationBindingPatterns02_ES6.ts (6 errors) ====
|
||||
|
||||
(function () {
|
||||
var {};
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
let {};
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
const {};
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
|
||||
var [];
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
let [];
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
const [];
|
||||
~~
|
||||
!!! error TS1182: A destructuring declaration must have an initializer.
|
||||
})();
|
||||
@@ -0,0 +1,24 @@
|
||||
//// [emptyVariableDeclarationBindingPatterns02_ES6.ts]
|
||||
|
||||
(function () {
|
||||
var {};
|
||||
let {};
|
||||
const {};
|
||||
|
||||
var [];
|
||||
let [];
|
||||
const [];
|
||||
})();
|
||||
|
||||
//// [emptyVariableDeclarationBindingPatterns02_ES6.js]
|
||||
(function () {
|
||||
var { };
|
||||
let { };
|
||||
const { };
|
||||
var [];
|
||||
let [];
|
||||
const [];
|
||||
})();
|
||||
|
||||
|
||||
//// [emptyVariableDeclarationBindingPatterns02_ES6.d.ts]
|
||||
@@ -1,5 +1,5 @@
|
||||
// @module: commonjs
|
||||
// @includebuiltfile: typescript.d.ts
|
||||
// @includebuiltfile: typescript_standalone.d.ts
|
||||
// @stripInternal:true
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @module: commonjs
|
||||
// @includebuiltfile: typescript.d.ts
|
||||
// @includebuiltfile: typescript_standalone.d.ts
|
||||
// @stripInternal:true
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @module: commonjs
|
||||
// @includebuiltfile: typescript.d.ts
|
||||
// @includebuiltfile: typescript_standalone.d.ts
|
||||
// @stripInternal:true
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// @module: commonjs
|
||||
// @includebuiltfile: typescript.d.ts
|
||||
// @includebuiltfile: typescript_standalone.d.ts
|
||||
// @stripInternal:true
|
||||
|
||||
/*
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f([]) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f(a, []) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f(a, []) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f([] = [1,2,3,4]) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es5
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es6
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es5
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es6
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es5
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es6
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es5
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// @target: es6
|
||||
// @declaration: true
|
||||
|
||||
var a: any;
|
||||
let x, y, z, a1, a2, a3;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f({}) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f(a, {}) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f({}, a) {
|
||||
var x, y, z;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
|
||||
// @declaration: true
|
||||
|
||||
function f({} = {a: 1, b: "2", c: true}) {
|
||||
var x, y, z;
|
||||
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
// @target: es5
|
||||
|
||||
(function () {
|
||||
var a: any;
|
||||
|
||||
var {} = a;
|
||||
let {} = a;
|
||||
const {} = a;
|
||||
|
||||
var [] = a;
|
||||
let [] = a;
|
||||
const [] = a;
|
||||
|
||||
var {} = a, [] = a;
|
||||
let {} = a, [] = a;
|
||||
const {} = a, [] = a;
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
let { p1: {}, p2: [] } = a;
|
||||
const { p1: {}, p2: [] } = a;
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
const ns: number[][] = [];
|
||||
|
||||
for (var {} of ns) {
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
}
|
||||
})();
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
// @target: es6
|
||||
|
||||
(function () {
|
||||
var a: any;
|
||||
|
||||
var {} = a;
|
||||
let {} = a;
|
||||
const {} = a;
|
||||
|
||||
var [] = a;
|
||||
let [] = a;
|
||||
const [] = a;
|
||||
|
||||
var {} = a, [] = a;
|
||||
let {} = a, [] = a;
|
||||
const {} = a, [] = a;
|
||||
|
||||
var { p1: {}, p2: [] } = a;
|
||||
let { p1: {}, p2: [] } = a;
|
||||
const { p1: {}, p2: [] } = a;
|
||||
|
||||
for (var {} = {}, {} = {}; false; void 0) {
|
||||
}
|
||||
|
||||
function f({} = a, [] = a, { p: {} = a} = a) {
|
||||
return ({} = a, [] = a, { p: {} = a } = a) => a;
|
||||
}
|
||||
})();
|
||||
|
||||
(function () {
|
||||
const ns: number[][] = [];
|
||||
|
||||
for (var {} of ns) {
|
||||
}
|
||||
|
||||
for (let {} of ns) {
|
||||
}
|
||||
|
||||
for (const {} of ns) {
|
||||
}
|
||||
|
||||
for (var [] of ns) {
|
||||
}
|
||||
|
||||
for (let [] of ns) {
|
||||
}
|
||||
|
||||
for (const [] of ns) {
|
||||
}
|
||||
})();
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// @target: es5
|
||||
// @declaration: true
|
||||
|
||||
(function () {
|
||||
var {};
|
||||
let {};
|
||||
const {};
|
||||
|
||||
var [];
|
||||
let [];
|
||||
const [];
|
||||
})();
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// @target: es6
|
||||
// @declaration: true
|
||||
|
||||
(function () {
|
||||
var {};
|
||||
let {};
|
||||
const {};
|
||||
|
||||
var [];
|
||||
let [];
|
||||
const [];
|
||||
})();
|
||||
@@ -0,0 +1,33 @@
|
||||
/// <reference path="fourslash.ts" />
|
||||
|
||||
//// type MixinCtor<A, B> = new () => A & B & { constructor: MixinCtor<A, B> };
|
||||
//// function merge<A, B>(a: { prototype: A }, b: { prototype: B }): MixinCtor<A, B> {
|
||||
//// let merged = function() { }
|
||||
//// Object.assign(merged.prototype, a.prototype, b.prototype);
|
||||
//// return <MixinCtor<A, B>><any>merged;
|
||||
//// }
|
||||
////
|
||||
//// class TreeNode {
|
||||
//// value: any;
|
||||
//// }
|
||||
////
|
||||
//// abstract class LeftSideNode extends TreeNode {
|
||||
//// abstract right(): TreeNode;
|
||||
//// left(): TreeNode {
|
||||
//// return null;
|
||||
//// }
|
||||
//// }
|
||||
////
|
||||
//// abstract class RightSideNode extends TreeNode {
|
||||
//// abstract left(): TreeNode;
|
||||
//// right(): TreeNode {
|
||||
//// return null;
|
||||
//// };
|
||||
//// }
|
||||
////
|
||||
//// var obj = new (merge(LeftSideNode, RightSideNode))();
|
||||
//// obj./**/
|
||||
|
||||
goTo.marker();
|
||||
verify.completionListContains("left");
|
||||
verify.completionListContains("right");
|
||||
@@ -173,6 +173,20 @@ describe('PreProcessFile:', function () {
|
||||
isLibFile: false
|
||||
})
|
||||
});
|
||||
|
||||
it("Correctly handeles export import declarations", function () {
|
||||
test("export import a = require(\"m1\");",
|
||||
true,
|
||||
{
|
||||
referencedFiles: [],
|
||||
importedFiles: [
|
||||
{ fileName: "m1", pos: 26, end: 28 }
|
||||
],
|
||||
ambientExternalModules: undefined,
|
||||
isLibFile: false
|
||||
})
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user