From 58bf08c7fc6de390f9f95f3f887c7b4844bcffe6 Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 24 May 2018 10:10:39 +0000 Subject: [PATCH 01/21] LEGO: check in for master to temporary branch. --- .../diagnosticMessages.generated.json.lcl | 49 ++++++++++++++++++- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl index 3bc6e8db18b..1308cb03128 100644 --- a/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ptb/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1000,10 +1000,13 @@ - + - + + + + @@ -1124,6 +1127,15 @@ + + + + + + + + + @@ -2537,6 +2549,12 @@ + + + + + + @@ -6560,6 +6578,15 @@ + + + + + + + + + @@ -6599,6 +6626,24 @@ + + + + + + + + + + + + + + + + + + From 0047802022dbacb1bff181437be7ec8139fb9604 Mon Sep 17 00:00:00 2001 From: Jordi Oliveras Rovira Date: Thu, 24 May 2018 14:49:51 +0200 Subject: [PATCH 02/21] Update issue_template.md ts version to 3.0.0 --- .github/issue_template.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/issue_template.md b/.github/issue_template.md index 2e3895d4d7d..891d574568d 100644 --- a/.github/issue_template.md +++ b/.github/issue_template.md @@ -24,7 +24,7 @@ Please help us by doing the following steps before logging an issue: --> -**TypeScript Version:** 2.9.0-dev.201xxxxx +**TypeScript Version:** 3.0.0-dev.201xxxxx **Search Terms:** From a8ce9a29c3d62405048a8446e7d6d420055ffc3d Mon Sep 17 00:00:00 2001 From: Jordi Oliveras Rovira Date: Thu, 24 May 2018 14:50:41 +0200 Subject: [PATCH 03/21] Update Bug_report.md ts version to 3.0.0 --- .github/ISSUE_TEMPLATE/Bug_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/Bug_report.md b/.github/ISSUE_TEMPLATE/Bug_report.md index 58c1ba6f351..735bf90b9ba 100644 --- a/.github/ISSUE_TEMPLATE/Bug_report.md +++ b/.github/ISSUE_TEMPLATE/Bug_report.md @@ -16,7 +16,7 @@ Please fill in the *entire* template below. --> -**TypeScript Version:** 2.9.0-dev.201xxxxx +**TypeScript Version:** 3.0.0-dev.201xxxxx **Search Terms:** From ee8337d8e45d0da0a872b4a0e7ee8ca6e88081d7 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 24 May 2018 07:46:39 -0700 Subject: [PATCH 04/21] Minor cleanups in importFixes (#23995) --- src/compiler/core.ts | 3 +- src/services/codefixes/importFixes.ts | 114 ++++++++++++-------------- 2 files changed, 53 insertions(+), 64 deletions(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index cf07ee26b8b..1c38222b4b5 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -965,7 +965,8 @@ namespace ts { export function append(to: T[], value: T | undefined): T[]; export function append(to: T[] | undefined, value: T): T[]; export function append(to: T[] | undefined, value: T | undefined): T[] | undefined; - export function append(to: T[] | undefined, value: T | undefined): T[] | undefined { + export function append(to: Push, value: T | undefined): void; + export function append(to: T[], value: T | undefined): T[] | undefined { if (value === undefined) return to; if (to === undefined) return [value]; to.push(value); diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts index cc526a53b14..ecd2393418b 100644 --- a/src/services/codefixes/importFixes.ts +++ b/src/services/codefixes/importFixes.ts @@ -10,15 +10,14 @@ namespace ts.codefix { Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code, ], - getCodeActions: getImportCodeActions, + getCodeActions: context => context.errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code + ? getActionsForUMDImport(context) + : getActionsForNonUMDImport(context), // TODO: GH#20315 fixIds: [], getAllCodeActions: notImplemented, }); - // Map from module Id to an array of import declarations in that module. - type ImportDeclarationMap = ExistingImportInfo[][]; - interface SymbolContext extends textChanges.TextChangesContext { sourceFile: SourceFile; symbolName: string; @@ -30,7 +29,6 @@ namespace ts.codefix { checker: TypeChecker; compilerOptions: CompilerOptions; getCanonicalFileName: GetCanonicalFileName; - cachedImportDeclarations?: ImportDeclarationMap; preferences: UserPreferences; } @@ -50,7 +48,6 @@ namespace ts.codefix { program, checker, compilerOptions: program.getCompilerOptions(), - cachedImportDeclarations: [], getCanonicalFileName: createGetCanonicalFileName(hostUsesCaseSensitiveFileNames(context.host)), symbolName, symbolToken, @@ -130,8 +127,19 @@ namespace ts.codefix { } function getCodeActionsForImport_separateExistingAndNew(exportInfos: ReadonlyArray, context: ImportCodeFixContext, useExisting: Push, addNew: Push): void { - const existingImports = flatMap(exportInfos, info => - getImportDeclarations(info, context.checker, context.sourceFile, context.cachedImportDeclarations)); + const existingImports = flatMap(exportInfos, info => getExistingImportDeclarations(info, context.checker, context.sourceFile)); + + append(useExisting, tryUseExistingNamespaceImport(existingImports, context, context.symbolToken, context.checker)); + const addToExisting = tryAddToExistingImport(existingImports, context); + + if (addToExisting) { + useExisting.push(addToExisting); + } + else { // Don't bother providing an action to add a new import if we can add to an existing one. + getCodeActionsForAddImport(exportInfos, context, existingImports, addNew); + } + } + function tryUseExistingNamespaceImport(existingImports: ReadonlyArray, context: SymbolContext, symbolToken: Node | undefined, checker: TypeChecker): CodeFixAction | undefined { // It is possible that multiple import statements with the same specifier exist in the file. // e.g. // @@ -144,18 +152,26 @@ namespace ts.codefix { // 1. change "member3" to "ns.member3" // 2. add "member3" to the second import statement's import list // and it is up to the user to decide which one fits best. - if (context.symbolToken && isIdentifier(context.symbolToken)) { - for (const { declaration } of existingImports) { - const namespace = getNamespaceImportName(declaration); - if (namespace) { - const moduleSymbol = context.checker.getAliasedSymbol(context.checker.getSymbolAtLocation(namespace)!); - if (moduleSymbol && moduleSymbol.exports!.has(escapeLeadingUnderscores(context.symbolName))) { - useExisting.push(getCodeActionForUseExistingNamespaceImport(namespace.text, context, context.symbolToken)); - } + return !symbolToken || !isIdentifier(symbolToken) ? undefined : firstDefined(existingImports, ({ declaration }) => { + const namespace = getNamespaceImportName(declaration); + if (namespace) { + const moduleSymbol = namespace && checker.getAliasedSymbol(checker.getSymbolAtLocation(namespace)!); + if (moduleSymbol && moduleSymbol.exports!.has(escapeLeadingUnderscores(context.symbolName))) { + return getCodeActionForUseExistingNamespaceImport(namespace.text, context, symbolToken); } } - } - getCodeActionsForAddImport(exportInfos, context, existingImports, useExisting, addNew); + }); + } + function tryAddToExistingImport(existingImports: ReadonlyArray, context: SymbolContext): CodeFixAction | undefined { + return firstDefined(existingImports, ({ declaration, importKind }) => { + if (declaration.kind === SyntaxKind.ImportDeclaration && declaration.importClause) { + const changes = tryUpdateExistingImport(context, declaration.importClause, importKind); + if (changes) { + const moduleSpecifierWithoutQuotes = stripQuotes(declaration.moduleSpecifier.getText()); + return createCodeAction(Diagnostics.Add_0_to_existing_import_declaration_from_1, [context.symbolName, moduleSpecifierWithoutQuotes], changes); + } + } + }); } function getNamespaceImportName(declaration: AnyImportSyntax): Identifier | undefined { @@ -168,18 +184,12 @@ namespace ts.codefix { } } - // TODO(anhans): This doesn't seem important to cache... just use an iterator instead of creating a new array? - function getImportDeclarations({ moduleSymbol, importKind }: SymbolExportInfo, checker: TypeChecker, { imports }: SourceFile, cachedImportDeclarations: ImportDeclarationMap = []): ReadonlyArray { - const moduleSymbolId = getUniqueSymbolId(moduleSymbol, checker); - let cached = cachedImportDeclarations[moduleSymbolId]; - if (!cached) { - cached = cachedImportDeclarations[moduleSymbolId] = mapDefined(imports, moduleSpecifier => { - const i = importFromModuleSpecifier(moduleSpecifier); - return (i.kind === SyntaxKind.ImportDeclaration || i.kind === SyntaxKind.ImportEqualsDeclaration) - && checker.getSymbolAtLocation(moduleSpecifier) === moduleSymbol ? { declaration: i, importKind } : undefined; - }); - } - return cached; + function getExistingImportDeclarations({ moduleSymbol, importKind }: SymbolExportInfo, checker: TypeChecker, { imports }: SourceFile): ReadonlyArray { + return mapDefined(imports, moduleSpecifier => { + const i = importFromModuleSpecifier(moduleSpecifier); + return (i.kind === SyntaxKind.ImportDeclaration || i.kind === SyntaxKind.ImportEqualsDeclaration) + && checker.getSymbolAtLocation(moduleSpecifier) === moduleSymbol ? { declaration: i, importKind } : undefined; + }); } function getCodeActionForNewImport(context: SymbolContext & { preferences: UserPreferences }, { moduleSpecifier, importKind }: NewImportInfo): CodeFixAction { @@ -258,23 +268,8 @@ namespace ts.codefix { exportInfos: ReadonlyArray, ctx: ImportCodeFixContext, existingImports: ReadonlyArray, - useExisting: Push, addNew: Push, ): void { - const fromExistingImport = firstDefined(existingImports, ({ declaration, importKind }) => { - if (declaration.kind === SyntaxKind.ImportDeclaration && declaration.importClause) { - const changes = tryUpdateExistingImport(ctx, (isImportClause(declaration.importClause) && declaration.importClause || undefined)!, importKind); // TODO: GH#18217 - if (changes) { - const moduleSpecifierWithoutQuotes = stripQuotes(declaration.moduleSpecifier.getText()); - return createCodeAction(Diagnostics.Add_0_to_existing_import_declaration_from_1, [ctx.symbolName, moduleSpecifierWithoutQuotes], changes); - } - } - }); - if (fromExistingImport) { - useExisting.push(fromExistingImport); - return; - } - const existingDeclaration = firstDefined(existingImports, newImportInfoFromExistingSpecifier); const newImportInfos = existingDeclaration ? [existingDeclaration] @@ -348,12 +343,6 @@ namespace ts.codefix { return createCodeAction(Diagnostics.Change_0_to_1, [symbolName, `${namespacePrefix}.${symbolName}`], changes); } - function getImportCodeActions(context: CodeFixContext): CodeFixAction[] | undefined { - return context.errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code - ? getActionsForUMDImport(context) - : getActionsForNonUMDImport(context); - } - function getActionsForUMDImport(context: CodeFixContext): CodeFixAction[] | undefined { const token = getTokenAtPosition(context.sourceFile, context.span.start, /*includeJsDocComment*/ false); const checker = context.program.getTypeChecker(); @@ -422,11 +411,18 @@ namespace ts.codefix { ? checker.getJsxNamespace() : isIdentifier(symbolToken) ? symbolToken.text : undefined; if (!symbolName) return undefined; - // "default" is a keyword and not a legal identifier for the import, so we don't expect it here Debug.assert(symbolName !== "default"); - const currentTokenMeaning = getMeaningFromLocation(symbolToken); + const addToExistingDeclaration: CodeFixAction[] = []; + const addNewDeclaration: CodeFixAction[] = []; + getExportInfos(symbolName, getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, checker, program).forEach(exportInfos => { + getCodeActionsForImport_separateExistingAndNew(exportInfos, convertToImportCodeFixContext(context, symbolToken, symbolName), addToExistingDeclaration, addNewDeclaration); + }); + return [...addToExistingDeclaration, ...addNewDeclaration]; + } + + function getExportInfos(symbolName: string, currentTokenMeaning: SemanticMeaning, cancellationToken: CancellationToken, sourceFile: SourceFile, checker: TypeChecker, program: Program): ReadonlyMap> { // For each original symbol, keep all re-exports of that symbol together so we can call `getCodeActionsForImport` on the whole group at once. // Maps symbol id to info for modules providing that symbol (original export + re-exports). const originalSymbolToExportInfos = createMultiMap(); @@ -464,20 +460,12 @@ namespace ts.codefix { } else if (isExportSpecifier(declaration)) { Debug.assert(declaration.name.escapedText === InternalSymbolName.Default); - if (declaration.propertyName) { - return declaration.propertyName.escapedText; - } + return declaration.propertyName && declaration.propertyName.escapedText; } }); } }); - - const addToExistingDeclaration: CodeFixAction[] = []; - const addNewDeclaration: CodeFixAction[] = []; - originalSymbolToExportInfos.forEach(exportInfos => { - getCodeActionsForImport_separateExistingAndNew(exportInfos, convertToImportCodeFixContext(context, symbolToken, symbolName), addToExistingDeclaration, addNewDeclaration); - }); - return [...addToExistingDeclaration, ...addNewDeclaration]; + return originalSymbolToExportInfos; } function checkSymbolHasMeaning({ declarations }: Symbol, meaning: SemanticMeaning): boolean { From 749f7bccf83d654e936c51345482bdb91b28482a Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 24 May 2018 16:10:29 +0000 Subject: [PATCH 05/21] LEGO: check in for master to temporary branch. --- .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl index 50dcbfc1f8e..9d9522d2d38 100644 --- a/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/plk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -998,6 +998,15 @@ + + + + + + + + + @@ -1115,6 +1124,15 @@ + + + + + + + + + @@ -2528,6 +2546,12 @@ + + + + + + @@ -6551,6 +6575,15 @@ + + + + + + + + + @@ -6590,6 +6623,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl index e279a6d066c..9480e932325 100644 --- a/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/trk/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1001,6 +1001,15 @@ + + + + + + + + + @@ -1118,6 +1127,15 @@ + + + + + + + + + @@ -2531,6 +2549,12 @@ + + + + + + @@ -6557,6 +6581,15 @@ + + + + + + + + + @@ -6596,6 +6629,24 @@ + + + + + + + + + + + + + + + + + + From bc570cd85fe931d1e600c48327398232e5534a95 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 24 May 2018 09:36:37 -0700 Subject: [PATCH 06/21] moveToNewFile: Respect UserPreferences#quote (#24365) --- src/harness/fourslash.ts | 3 +- src/services/codefixes/convertToEs6Module.ts | 49 ++++++++++--------- .../codefixes/fixInvalidImportSyntax.ts | 2 +- src/services/codefixes/useDefaultImport.ts | 8 +-- src/services/refactors/moveToNewFile.ts | 23 ++++----- src/services/utilities.ts | 8 +-- tests/cases/fourslash/fourslash.ts | 1 + tests/cases/fourslash/moveToNewFile.ts | 18 ++++--- 8 files changed, 60 insertions(+), 52 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 4bc53455c9e..369709c31e5 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -3130,7 +3130,7 @@ Actual: ${stringify(fullActual)}`); const action = ts.first(refactor.actions); assert(action.name === "Move to a new file" && action.description === "Move to a new file"); - const editInfo = this.languageService.getEditsForRefactor(this.activeFile.fileName, this.formatCodeSettings, range, refactor.name, action.name, ts.defaultPreferences)!; + const editInfo = this.languageService.getEditsForRefactor(this.activeFile.fileName, this.formatCodeSettings, range, refactor.name, action.name, options.preferences || ts.defaultPreferences)!; for (const edit of editInfo.edits) { const newContent = options.newFileContents[edit.fileName]; if (newContent === undefined) { @@ -4836,5 +4836,6 @@ namespace FourSlashInterface { export interface MoveToNewFileOptions { readonly newFileContents: { readonly [fileName: string]: string }; + readonly preferences?: ts.UserPreferences; } } diff --git a/src/services/codefixes/convertToEs6Module.ts b/src/services/codefixes/convertToEs6Module.ts index c0a444b42e0..8eadbc3a306 100644 --- a/src/services/codefixes/convertToEs6Module.ts +++ b/src/services/codefixes/convertToEs6Module.ts @@ -3,12 +3,12 @@ namespace ts.codefix { registerCodeFix({ errorCodes: [Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module.code], getCodeActions(context) { - const { sourceFile, program } = context; + const { sourceFile, program, preferences } = context; const changes = textChanges.ChangeTracker.with(context, changes => { - const moduleExportsChangedToDefault = convertFileToEs6Module(sourceFile, program.getTypeChecker(), changes, program.getCompilerOptions().target!); + const moduleExportsChangedToDefault = convertFileToEs6Module(sourceFile, program.getTypeChecker(), changes, program.getCompilerOptions().target!, preferences); if (moduleExportsChangedToDefault) { for (const importingFile of program.getSourceFiles()) { - fixImportOfModuleExports(importingFile, sourceFile, changes); + fixImportOfModuleExports(importingFile, sourceFile, changes, preferences); } } }); @@ -17,7 +17,7 @@ namespace ts.codefix { }, }); - function fixImportOfModuleExports(importingFile: SourceFile, exportingFile: SourceFile, changes: textChanges.ChangeTracker) { + function fixImportOfModuleExports(importingFile: SourceFile, exportingFile: SourceFile, changes: textChanges.ChangeTracker, preferences: UserPreferences) { for (const moduleSpecifier of importingFile.imports) { const imported = getResolvedModule(importingFile, moduleSpecifier.text); if (!imported || imported.resolvedFileName !== exportingFile.fileName) { @@ -27,7 +27,7 @@ namespace ts.codefix { const importNode = importFromModuleSpecifier(moduleSpecifier); switch (importNode.kind) { case SyntaxKind.ImportEqualsDeclaration: - changes.replaceNode(importingFile, importNode, makeImport(importNode.name, /*namedImports*/ undefined, moduleSpecifier)); + changes.replaceNode(importingFile, importNode, makeImport(importNode.name, /*namedImports*/ undefined, moduleSpecifier, preferences)); break; case SyntaxKind.CallExpression: if (isRequireCall(importNode, /*checkArgumentIsStringLiteralLike*/ false)) { @@ -39,13 +39,13 @@ namespace ts.codefix { } /** @returns Whether we converted a `module.exports =` to a default export. */ - function convertFileToEs6Module(sourceFile: SourceFile, checker: TypeChecker, changes: textChanges.ChangeTracker, target: ScriptTarget): ModuleExportsChanged { + function convertFileToEs6Module(sourceFile: SourceFile, checker: TypeChecker, changes: textChanges.ChangeTracker, target: ScriptTarget, preferences: UserPreferences): ModuleExportsChanged { const identifiers: Identifiers = { original: collectFreeIdentifiers(sourceFile), additional: createMap() }; const exports = collectExportRenames(sourceFile, checker, identifiers); convertExportsAccesses(sourceFile, exports, changes); let moduleExportsChangedToDefault = false; for (const statement of sourceFile.statements) { - const moduleExportsChanged = convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports); + const moduleExportsChanged = convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports, preferences); moduleExportsChangedToDefault = moduleExportsChangedToDefault || moduleExportsChanged; } return moduleExportsChangedToDefault; @@ -98,10 +98,10 @@ namespace ts.codefix { /** Whether `module.exports =` was changed to `export default` */ type ModuleExportsChanged = boolean; - function convertStatement(sourceFile: SourceFile, statement: Statement, checker: TypeChecker, changes: textChanges.ChangeTracker, identifiers: Identifiers, target: ScriptTarget, exports: ExportRenames): ModuleExportsChanged { + function convertStatement(sourceFile: SourceFile, statement: Statement, checker: TypeChecker, changes: textChanges.ChangeTracker, identifiers: Identifiers, target: ScriptTarget, exports: ExportRenames, preferences: UserPreferences): ModuleExportsChanged { switch (statement.kind) { case SyntaxKind.VariableStatement: - convertVariableStatement(sourceFile, statement as VariableStatement, changes, checker, identifiers, target); + convertVariableStatement(sourceFile, statement as VariableStatement, changes, checker, identifiers, target, preferences); return false; case SyntaxKind.ExpressionStatement: { const { expression } = statement as ExpressionStatement; @@ -109,7 +109,7 @@ namespace ts.codefix { case SyntaxKind.CallExpression: { if (isRequireCall(expression, /*checkArgumentIsStringLiteralLike*/ true)) { // For side-effecting require() call, just make a side-effecting import. - changes.replaceNode(sourceFile, statement, makeImport(/*name*/ undefined, /*namedImports*/ undefined, expression.arguments[0])); + changes.replaceNode(sourceFile, statement, makeImport(/*name*/ undefined, /*namedImports*/ undefined, expression.arguments[0], preferences)); } return false; } @@ -125,7 +125,7 @@ namespace ts.codefix { } } - function convertVariableStatement(sourceFile: SourceFile, statement: VariableStatement, changes: textChanges.ChangeTracker, checker: TypeChecker, identifiers: Identifiers, target: ScriptTarget): void { + function convertVariableStatement(sourceFile: SourceFile, statement: VariableStatement, changes: textChanges.ChangeTracker, checker: TypeChecker, identifiers: Identifiers, target: ScriptTarget, preferences: UserPreferences): void { const { declarationList } = statement; let foundImport = false; const newNodes = flatMap(declarationList.declarations, decl => { @@ -138,11 +138,11 @@ namespace ts.codefix { } else if (isRequireCall(initializer, /*checkArgumentIsStringLiteralLike*/ true)) { foundImport = true; - return convertSingleImport(sourceFile, name, initializer.arguments[0], changes, checker, identifiers, target); + return convertSingleImport(sourceFile, name, initializer.arguments[0], changes, checker, identifiers, target, preferences); } else if (isPropertyAccessExpression(initializer) && isRequireCall(initializer.expression, /*checkArgumentIsStringLiteralLike*/ true)) { foundImport = true; - return convertPropertyAccessImport(name, initializer.name.text, initializer.expression.arguments[0], identifiers); + return convertPropertyAccessImport(name, initializer.name.text, initializer.expression.arguments[0], identifiers, preferences); } } // Move it out to its own variable statement. (This will not be used if `!foundImport`) @@ -155,20 +155,20 @@ namespace ts.codefix { } /** Converts `const name = require("moduleSpecifier").propertyName` */ - function convertPropertyAccessImport(name: BindingName, propertyName: string, moduleSpecifier: StringLiteralLike, identifiers: Identifiers): ReadonlyArray { + function convertPropertyAccessImport(name: BindingName, propertyName: string, moduleSpecifier: StringLiteralLike, identifiers: Identifiers, preferences: UserPreferences): ReadonlyArray { switch (name.kind) { case SyntaxKind.ObjectBindingPattern: case SyntaxKind.ArrayBindingPattern: { // `const [a, b] = require("c").d` --> `import { d } from "c"; const [a, b] = d;` const tmp = makeUniqueName(propertyName, identifiers); return [ - makeSingleImport(tmp, propertyName, moduleSpecifier), + makeSingleImport(tmp, propertyName, moduleSpecifier, preferences), makeConst(/*modifiers*/ undefined, name, createIdentifier(tmp)), ]; } case SyntaxKind.Identifier: // `const a = require("b").c` --> `import { c as a } from "./b"; - return [makeSingleImport(name.text, propertyName, moduleSpecifier)]; + return [makeSingleImport(name.text, propertyName, moduleSpecifier, preferences)]; default: return Debug.assertNever(name); } @@ -340,6 +340,7 @@ namespace ts.codefix { checker: TypeChecker, identifiers: Identifiers, target: ScriptTarget, + preferences: UserPreferences, ): ReadonlyArray { switch (name.kind) { case SyntaxKind.ObjectBindingPattern: { @@ -348,7 +349,7 @@ namespace ts.codefix { ? undefined : makeImportSpecifier(e.propertyName && (e.propertyName as Identifier).text, e.name.text)); // tslint:disable-line no-unnecessary-type-assertion (TODO: GH#18217) if (importSpecifiers) { - return [makeImport(/*name*/ undefined, importSpecifiers, moduleSpecifier)]; + return [makeImport(/*name*/ undefined, importSpecifiers, moduleSpecifier, preferences)]; } } // falls through -- object destructuring has an interesting pattern and must be a variable declaration @@ -359,12 +360,12 @@ namespace ts.codefix { */ const tmp = makeUniqueName(moduleSpecifierToValidIdentifier(moduleSpecifier.text, target), identifiers); return [ - makeImport(createIdentifier(tmp), /*namedImports*/ undefined, moduleSpecifier), + makeImport(createIdentifier(tmp), /*namedImports*/ undefined, moduleSpecifier, preferences), makeConst(/*modifiers*/ undefined, getSynthesizedDeepClone(name), createIdentifier(tmp)), ]; } case SyntaxKind.Identifier: - return convertSingleIdentifierImport(file, name, moduleSpecifier, changes, checker, identifiers); + return convertSingleIdentifierImport(file, name, moduleSpecifier, changes, checker, identifiers, preferences); default: return Debug.assertNever(name); } @@ -374,7 +375,7 @@ namespace ts.codefix { * Convert `import x = require("x").` * Also converts uses like `x.y()` to `y()` and uses a named import. */ - function convertSingleIdentifierImport(file: SourceFile, name: Identifier, moduleSpecifier: StringLiteralLike, changes: textChanges.ChangeTracker, checker: TypeChecker, identifiers: Identifiers): ReadonlyArray { + function convertSingleIdentifierImport(file: SourceFile, name: Identifier, moduleSpecifier: StringLiteralLike, changes: textChanges.ChangeTracker, checker: TypeChecker, identifiers: Identifiers, preferences: UserPreferences): ReadonlyArray { const nameSymbol = checker.getSymbolAtLocation(name); // Maps from module property name to name actually used. (The same if there isn't shadowing.) const namedBindingsNames = createMap(); @@ -409,7 +410,7 @@ namespace ts.codefix { // If it was unused, ensure that we at least import *something*. needDefaultImport = true; } - return [makeImport(needDefaultImport ? getSynthesizedDeepClone(name) : undefined, namedBindings, moduleSpecifier)]; + return [makeImport(needDefaultImport ? getSynthesizedDeepClone(name) : undefined, namedBindings, moduleSpecifier, preferences)]; } // Identifiers helpers @@ -481,10 +482,10 @@ namespace ts.codefix { getSynthesizedDeepClones(cls.members)); } - function makeSingleImport(localName: string, propertyName: string, moduleSpecifier: StringLiteralLike): ImportDeclaration { + function makeSingleImport(localName: string, propertyName: string, moduleSpecifier: StringLiteralLike, preferences: UserPreferences): ImportDeclaration { return propertyName === "default" - ? makeImport(createIdentifier(localName), /*namedImports*/ undefined, moduleSpecifier) - : makeImport(/*name*/ undefined, [makeImportSpecifier(propertyName, localName)], moduleSpecifier); + ? makeImport(createIdentifier(localName), /*namedImports*/ undefined, moduleSpecifier, preferences) + : makeImport(/*name*/ undefined, [makeImportSpecifier(propertyName, localName)], moduleSpecifier, preferences); } function makeImportSpecifier(propertyName: string | undefined, name: string): ImportSpecifier { diff --git a/src/services/codefixes/fixInvalidImportSyntax.ts b/src/services/codefixes/fixInvalidImportSyntax.ts index 192375791ce..728a8b5663c 100644 --- a/src/services/codefixes/fixInvalidImportSyntax.ts +++ b/src/services/codefixes/fixInvalidImportSyntax.ts @@ -28,7 +28,7 @@ namespace ts.codefix { const variations: CodeFixAction[] = []; // import Bluebird from "bluebird"; - variations.push(createAction(context, sourceFile, node, makeImport(namespace.name, /*namedImports*/ undefined, node.moduleSpecifier))); + variations.push(createAction(context, sourceFile, node, makeImport(namespace.name, /*namedImports*/ undefined, node.moduleSpecifier, context.preferences))); if (getEmitModuleKind(opts) === ModuleKind.CommonJS) { // import Bluebird = require("bluebird"); diff --git a/src/services/codefixes/useDefaultImport.ts b/src/services/codefixes/useDefaultImport.ts index 3fe451c41fb..34e3d40e514 100644 --- a/src/services/codefixes/useDefaultImport.ts +++ b/src/services/codefixes/useDefaultImport.ts @@ -8,13 +8,13 @@ namespace ts.codefix { const { sourceFile, span: { start } } = context; const info = getInfo(sourceFile, start); if (!info) return undefined; - const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, info)); + const changes = textChanges.ChangeTracker.with(context, t => doChange(t, sourceFile, info, context.preferences)); return [createCodeFixAction(fixId, changes, Diagnostics.Convert_to_default_import, fixId, Diagnostics.Convert_all_to_default_imports)]; }, fixIds: [fixId], getAllCodeActions: context => codeFixAll(context, errorCodes, (changes, diag) => { const info = getInfo(diag.file, diag.start); - if (info) doChange(changes, diag.file, info); + if (info) doChange(changes, diag.file, info, context.preferences); }), }); @@ -36,7 +36,7 @@ namespace ts.codefix { } } - function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, info: Info): void { - changes.replaceNode(sourceFile, info.importNode, makeImport(info.name, /*namedImports*/ undefined, info.moduleSpecifier)); + function doChange(changes: textChanges.ChangeTracker, sourceFile: SourceFile, info: Info, preferences: UserPreferences): void { + changes.replaceNode(sourceFile, info.importNode, makeImport(info.name, /*namedImports*/ undefined, info.moduleSpecifier, preferences)); } } diff --git a/src/services/refactors/moveToNewFile.ts b/src/services/refactors/moveToNewFile.ts index b415b9048ef..d04588e01d5 100644 --- a/src/services/refactors/moveToNewFile.ts +++ b/src/services/refactors/moveToNewFile.ts @@ -10,7 +10,7 @@ namespace ts.refactor { getEditsForAction(context, actionName): RefactorEditInfo { Debug.assert(actionName === refactorName); const statements = Debug.assertDefined(getStatementsToMove(context)); - const edits = textChanges.ChangeTracker.with(context, t => doChange(context.file, context.program, statements, t, context.host)); + const edits = textChanges.ChangeTracker.with(context, t => doChange(context.file, context.program, statements, t, context.host, context.preferences)); return { edits, renameFilename: undefined, renameLocation: undefined }; } }); @@ -37,7 +37,7 @@ namespace ts.refactor { return statements.slice(startNodeIndex, afterEndNodeIndex === -1 ? statements.length : afterEndNodeIndex); } - function doChange(oldFile: SourceFile, program: Program, toMove: ToMove, changes: textChanges.ChangeTracker, host: LanguageServiceHost): void { + function doChange(oldFile: SourceFile, program: Program, toMove: ToMove, changes: textChanges.ChangeTracker, host: LanguageServiceHost, preferences: UserPreferences): void { const checker = program.getTypeChecker(); const usage = getUsageInfo(oldFile, toMove.all, checker); @@ -47,7 +47,7 @@ namespace ts.refactor { const newFileNameWithExtension = newModuleName + extension; // If previous file was global, this is easy. - changes.createNewFile(oldFile, combinePaths(currentDirectory, newFileNameWithExtension), getNewStatements(oldFile, usage, changes, toMove, program, newModuleName)); + changes.createNewFile(oldFile, combinePaths(currentDirectory, newFileNameWithExtension), getNewStatements(oldFile, usage, changes, toMove, program, newModuleName, preferences)); addNewFileToTsconfig(program, changes, oldFile.fileName, newFileNameWithExtension, hostGetCanonicalFileName(host)); } @@ -103,7 +103,7 @@ namespace ts.refactor { } function getNewStatements( - oldFile: SourceFile, usage: UsageInfo, changes: textChanges.ChangeTracker, toMove: ToMove, program: Program, newModuleName: string, + oldFile: SourceFile, usage: UsageInfo, changes: textChanges.ChangeTracker, toMove: ToMove, program: Program, newModuleName: string, preferences: UserPreferences, ): ReadonlyArray { const checker = program.getTypeChecker(); @@ -113,7 +113,7 @@ namespace ts.refactor { } const useEs6ModuleSyntax = !!oldFile.externalModuleIndicator; - const importsFromNewFile = createOldFileImportsFromNewFile(usage.oldFileImportsFromNewFile, newModuleName, useEs6ModuleSyntax); + const importsFromNewFile = createOldFileImportsFromNewFile(usage.oldFileImportsFromNewFile, newModuleName, useEs6ModuleSyntax, preferences); if (importsFromNewFile) { changes.insertNodeBefore(oldFile, oldFile.statements[0], importsFromNewFile, /*blankLineBetween*/ true); } @@ -124,7 +124,7 @@ namespace ts.refactor { updateImportsInOtherFiles(changes, program, oldFile, usage.movedSymbols, newModuleName); return [ - ...getNewFileImportsAndAddExportInOldFile(oldFile, usage.oldImportsNeededByNewFile, usage.newFileImportsFromOldFile, changes, checker, useEs6ModuleSyntax), + ...getNewFileImportsAndAddExportInOldFile(oldFile, usage.oldImportsNeededByNewFile, usage.newFileImportsFromOldFile, changes, checker, useEs6ModuleSyntax, preferences), ...addExports(oldFile, toMove.all, usage.oldFileImportsFromNewFile, useEs6ModuleSyntax), ]; } @@ -196,7 +196,7 @@ namespace ts.refactor { | ImportEqualsDeclaration | VariableStatement; - function createOldFileImportsFromNewFile(newFileNeedExport: ReadonlySymbolSet, newFileNameWithExtension: string, useEs6Imports: boolean): Statement | undefined { + function createOldFileImportsFromNewFile(newFileNeedExport: ReadonlySymbolSet, newFileNameWithExtension: string, useEs6Imports: boolean, preferences: UserPreferences): Statement | undefined { let defaultImport: Identifier | undefined; const imports: string[] = []; newFileNeedExport.forEach(symbol => { @@ -207,14 +207,14 @@ namespace ts.refactor { imports.push(symbol.name); } }); - return makeImportOrRequire(defaultImport, imports, newFileNameWithExtension, useEs6Imports); + return makeImportOrRequire(defaultImport, imports, newFileNameWithExtension, useEs6Imports, preferences); } - function makeImportOrRequire(defaultImport: Identifier | undefined, imports: ReadonlyArray, path: string, useEs6Imports: boolean): Statement | undefined { + function makeImportOrRequire(defaultImport: Identifier | undefined, imports: ReadonlyArray, path: string, useEs6Imports: boolean, preferences: UserPreferences): Statement | undefined { path = ensurePathIsNonModuleName(path); if (useEs6Imports) { const specifiers = imports.map(i => createImportSpecifier(/*propertyName*/ undefined, createIdentifier(i))); - return makeImportIfNecessary(defaultImport, specifiers, path); + return makeImportIfNecessary(defaultImport, specifiers, path, preferences); } else { Debug.assert(!defaultImport); // If there's a default export, it should have been an es6 module. @@ -320,6 +320,7 @@ namespace ts.refactor { changes: textChanges.ChangeTracker, checker: TypeChecker, useEs6ModuleSyntax: boolean, + preferences: UserPreferences, ): ReadonlyArray { const copiedOldImports: SupportedImportStatement[] = []; for (const oldStatement of oldFile.statements) { @@ -351,7 +352,7 @@ namespace ts.refactor { } }); - append(copiedOldImports, makeImportOrRequire(oldFileDefault, oldFileNamedImports, removeFileExtension(getBaseFileName(oldFile.fileName)), useEs6ModuleSyntax)); + append(copiedOldImports, makeImportOrRequire(oldFileDefault, oldFileNamedImports, removeFileExtension(getBaseFileName(oldFile.fileName)), useEs6ModuleSyntax, preferences)); return copiedOldImports; } diff --git a/src/services/utilities.ts b/src/services/utilities.ts index e6ebdb78447..cfbfcf261c6 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -1252,18 +1252,18 @@ namespace ts { return createGetCanonicalFileName(hostUsesCaseSensitiveFileNames(host)); } - export function makeImportIfNecessary(defaultImport: Identifier | undefined, namedImports: ReadonlyArray | undefined, moduleSpecifier: string): ImportDeclaration | undefined { - return defaultImport || namedImports && namedImports.length ? makeImport(defaultImport, namedImports, moduleSpecifier) : undefined; + export function makeImportIfNecessary(defaultImport: Identifier | undefined, namedImports: ReadonlyArray | undefined, moduleSpecifier: string, preferences: UserPreferences): ImportDeclaration | undefined { + return defaultImport || namedImports && namedImports.length ? makeImport(defaultImport, namedImports, moduleSpecifier, preferences) : undefined; } - export function makeImport(defaultImport: Identifier | undefined, namedImports: ReadonlyArray | undefined, moduleSpecifier: string | Expression): ImportDeclaration { + export function makeImport(defaultImport: Identifier | undefined, namedImports: ReadonlyArray | undefined, moduleSpecifier: string | Expression, preferences: UserPreferences): ImportDeclaration { return createImportDeclaration( /*decorators*/ undefined, /*modifiers*/ undefined, defaultImport || namedImports ? createImportClause(defaultImport, namedImports && namedImports.length ? createNamedImports(namedImports) : undefined) : undefined, - typeof moduleSpecifier === "string" ? createLiteral(moduleSpecifier) : moduleSpecifier); + typeof moduleSpecifier === "string" ? createLiteral(moduleSpecifier, preferences.quotePreference === "single") : moduleSpecifier); } export function symbolNameNoDefault(symbol: Symbol): string | undefined { diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 98180182ad8..e9ca57c0445 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -340,6 +340,7 @@ declare namespace FourSlashInterface { }): void; moveToNewFile(options: { readonly newFileContents: { readonly [fileName: string]: string }; + readonly preferences?: UserPreferences; }): void; noMoveToNewFile(): void; } diff --git a/tests/cases/fourslash/moveToNewFile.ts b/tests/cases/fourslash/moveToNewFile.ts index a4d243e4a03..8caa8538a13 100644 --- a/tests/cases/fourslash/moveToNewFile.ts +++ b/tests/cases/fourslash/moveToNewFile.ts @@ -1,8 +1,8 @@ /// // @Filename: /a.ts -////import "./foo"; -////import { a, b, alreadyUnused } from "./other"; +////import './foo'; +////import { a, b, alreadyUnused } from './other'; ////const p = 0; ////[|const y = p + b;|] ////a; y; @@ -10,16 +10,20 @@ verify.moveToNewFile({ newFileContents: { "/a.ts": -`import { y } from "./y"; +`import { y } from './y'; -import "./foo"; -import { a, alreadyUnused } from "./other"; +import './foo'; +import { a, alreadyUnused } from './other'; export const p = 0; a; y;`, "/y.ts": -`import { b } from "./other"; -import { p } from "./a"; +`import { b } from './other'; +import { p } from './a'; export const y = p + b;`, }, + + preferences: { + quotePreference: "single", + } }); From 16af96b006dbd688162e1aa30e3b4b4f63a297a8 Mon Sep 17 00:00:00 2001 From: Andy Date: Thu, 24 May 2018 11:08:32 -0700 Subject: [PATCH 07/21] moveToNewFile: Format the new file (#24379) --- src/services/textChanges.ts | 10 ++++++--- tests/cases/fourslash/fourslash.ts | 2 -- tests/cases/fourslash/moveToNewFile_format.ts | 21 +++++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 tests/cases/fourslash/moveToNewFile_format.ts diff --git a/src/services/textChanges.ts b/src/services/textChanges.ts index b14806c9571..af32b88e9a1 100644 --- a/src/services/textChanges.ts +++ b/src/services/textChanges.ts @@ -687,7 +687,7 @@ namespace ts.textChanges { this.finishTrailingCommaAfterDeletingNodesInList(); const changes = changesToText.getTextChangesFromChanges(this.changes, this.newLineCharacter, this.formatContext, validate); for (const { oldFile, fileName, statements } of this.newFiles) { - changes.push(changesToText.newFileChanges(oldFile, fileName, statements, this.newLineCharacter)); + changes.push(changesToText.newFileChanges(oldFile, fileName, statements, this.newLineCharacter, this.formatContext)); } return changes; } @@ -726,8 +726,12 @@ namespace ts.textChanges { }); } - export function newFileChanges(oldFile: SourceFile, fileName: string, statements: ReadonlyArray, newLineCharacter: string): FileTextChanges { - const text = statements.map(s => getNonformattedText(s, oldFile, newLineCharacter).text).join(newLineCharacter); + export function newFileChanges(oldFile: SourceFile, fileName: string, statements: ReadonlyArray, newLineCharacter: string, formatContext: formatting.FormatContext): FileTextChanges { + // TODO: this emits the file, parses it back, then formats it that -- may be a less roundabout way to do this + const nonFormattedText = statements.map(s => getNonformattedText(s, oldFile, newLineCharacter).text).join(newLineCharacter); + const sourceFile = createSourceFile(fileName, nonFormattedText, ScriptTarget.ESNext); + const changes = formatting.formatDocument(sourceFile, formatContext); + const text = applyChanges(nonFormattedText, changes); return { fileName, textChanges: [createTextChange(createTextSpan(0, 0), text)], isNewFile: true }; } diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index e9ca57c0445..de1ca0afd8c 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -69,9 +69,7 @@ declare module ts { writeByteOrderMark: boolean; text: string; } -} -declare namespace ts { function flatMap(array: ReadonlyArray, mapfn: (x: T, i: number) => U | ReadonlyArray | undefined): U[]; } diff --git a/tests/cases/fourslash/moveToNewFile_format.ts b/tests/cases/fourslash/moveToNewFile_format.ts new file mode 100644 index 00000000000..821e0ebae7e --- /dev/null +++ b/tests/cases/fourslash/moveToNewFile_format.ts @@ -0,0 +1,21 @@ +/// + +// @Filename: /a.ts +////[|function f() { +//// const x = 0; +////}|] + +var copy = format.copyFormatOptions(); +copy.ConvertTabsToSpaces = false; +format.setFormatOptions(copy); + +verify.moveToNewFile({ + newFileContents: { + "/a.ts": +``, + "/f.ts": +`function f() { + const x = 0; +}`, + }, +}); From a0b57808d05feebdb07b64ccc6e9b4819b22eeb6 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 24 May 2018 12:23:43 -0700 Subject: [PATCH 08/21] Dont count duplicated errors in case-insensitive duped files in rwc (#24383) --- src/harness/harness.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 2d2c90dcb5e..d57de0cb910 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1469,7 +1469,14 @@ namespace Harness { // Verify we didn't miss any errors in this file assert.equal(markedErrorCount, fileErrors.length, "count of errors in " + inputFile.unitName); + const isDupe = dupeCase.has(sanitizeTestFilePath(inputFile.unitName)); yield [checkDuplicatedFileName(inputFile.unitName, dupeCase), outputLines, errorsReported]; + if (isDupe && !(options && options.caseSensitive)) { + // Case-duplicated files on a case-insensitive build will have errors reported in both the dupe and the original + // thanks to the canse-insensitive path comparison on the error file path - We only want to count those errors once + // for the assert below, so we subtract them here. + totalErrorsReportedInNonLibraryFiles -= errorsReported; + } outputLines = ""; errorsReported = 0; } From 4be4e565797cd81e3e22452064abde8d126f2b19 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 24 May 2018 12:49:02 -0700 Subject: [PATCH 09/21] Hoisted declarations should occur after prologue directives (#24386) --- src/compiler/core.ts | 15 --------------- src/compiler/transformers/es2015.ts | 10 +++++----- src/compiler/transformers/es2017.ts | 2 +- src/compiler/transformers/esnext.ts | 4 ++-- src/compiler/transformers/generators.ts | 2 +- src/compiler/transformers/module/module.ts | 4 ++-- src/compiler/transformers/module/system.ts | 2 +- src/compiler/transformers/ts.ts | 6 +++--- src/compiler/utilities.ts | 19 +++++++++++++++++++ src/compiler/visitor.ts | 2 +- .../SystemModuleForStatementNoInitializer.js | 2 +- .../reference/aliasesInSystemModule1.js | 2 +- .../reference/aliasesInSystemModule2.js | 2 +- .../allowSyntheticDefaultImports2.js | 2 +- .../allowSyntheticDefaultImports3.js | 4 ++-- .../allowSyntheticDefaultImports5.js | 2 +- .../allowSyntheticDefaultImports6.js | 2 +- .../allowSyntheticDefaultImports7.js | 2 +- .../allowSyntheticDefaultImports8.js | 2 +- .../anonymousDefaultExportsSystem.js | 2 +- .../reference/capturedLetConstInLoop4.js | 2 +- .../reference/decoratedClassExportsSystem1.js | 2 +- .../reference/decoratedClassExportsSystem2.js | 2 +- ...ecoratedDefaultExportsGetExportedSystem.js | 4 ++-- .../reference/deduplicateImportsInSystem.js | 2 +- .../defaultExportsGetExportedSystem.js | 2 +- ...destructuringAssignmentWithExportedName.js | 2 +- .../destructuringInVariableDeclarations7.js | 2 +- .../destructuringInVariableDeclarations8.js | 2 +- .../reference/dottedNamesInSystem.js | 2 +- tests/baselines/reference/es5-system.js | 2 +- tests/baselines/reference/es5-system2.js | 2 +- .../exportNonInitializedVariablesSystem.js | 2 +- .../reference/exportStarForValues10.js | 4 ++-- .../reference/exportStarForValues6.js | 2 +- .../reference/exportStarForValuesInSystem.js | 2 +- .../importCallExpressionAsyncES3System.js | 2 +- .../importCallExpressionAsyncES5System.js | 2 +- .../importCallExpressionAsyncES6System.js | 2 +- .../importCallExpressionES5System.js | 2 +- .../importCallExpressionES6System.js | 2 +- .../importCallExpressionInSystem1.js | 2 +- .../importCallExpressionInSystem2.js | 2 +- .../importCallExpressionInSystem3.js | 2 +- .../importCallExpressionInSystem4.js | 4 ++-- .../reference/importHelpersSystem.js | 4 ++-- .../invalidSyntaxNamespaceImportWithSystem.js | 4 ++-- .../reference/modulePrologueSystem.js | 2 +- .../outFilerootDirModuleNamesSystem.js | 4 ++-- .../reference/outModuleConcatSystem.js | 4 ++-- .../outModuleConcatSystem.sourcemap.txt | 4 ++-- ...prefixUnaryOperatorsOnExportedVariables.js | 2 +- .../systemDefaultExportCommentValidity.js | 2 +- .../reference/systemDefaultImportCallable.js | 2 +- .../reference/systemExportAssignment2.js | 2 +- .../reference/systemJsForInNoException.js | 2 +- tests/baselines/reference/systemModule1.js | 2 +- tests/baselines/reference/systemModule10.js | 2 +- .../baselines/reference/systemModule10_ES5.js | 2 +- tests/baselines/reference/systemModule11.js | 6 +++--- tests/baselines/reference/systemModule13.js | 2 +- tests/baselines/reference/systemModule14.js | 2 +- tests/baselines/reference/systemModule15.js | 8 ++++---- tests/baselines/reference/systemModule16.js | 2 +- tests/baselines/reference/systemModule17.js | 4 ++-- tests/baselines/reference/systemModule2.js | 2 +- tests/baselines/reference/systemModule3.js | 4 ++-- tests/baselines/reference/systemModule4.js | 2 +- tests/baselines/reference/systemModule6.js | 2 +- tests/baselines/reference/systemModule7.js | 2 +- tests/baselines/reference/systemModule8.js | 2 +- tests/baselines/reference/systemModule9.js | 2 +- .../systemModuleAmbientDeclarations.js | 2 +- ...stemModuleConstEnumsSeparateCompilation.js | 2 +- .../systemModuleDeclarationMerging.js | 2 +- .../reference/systemModuleExportDefault.js | 4 ++-- .../systemModuleNonTopLevelModuleMembers.js | 2 +- .../reference/systemModuleTargetES6.js | 2 +- .../reference/systemModuleTrailingComments.js | 2 +- .../reference/systemModuleWithSuperClass.js | 4 ++-- .../reference/systemNamespaceAliasEmit.js | 2 +- .../reference/systemObjectShorthandRename.js | 4 ++-- ...adata when transpile with System option.js | 2 +- ...anspile with System option.oldTranspile.js | 2 +- .../transpile/Rename dependencies - System.js | 2 +- 85 files changed, 129 insertions(+), 125 deletions(-) diff --git a/src/compiler/core.ts b/src/compiler/core.ts index 1c38222b4b5..350272db44a 100644 --- a/src/compiler/core.ts +++ b/src/compiler/core.ts @@ -1006,21 +1006,6 @@ namespace ts { return to; } - /** - * Appends a range of value to begin of an array, returning the array. - * - * @param to The array to which `value` is to be appended. If `to` is `undefined`, a new array - * is created if `value` was appended. - * @param from The values to append to the array. If `from` is `undefined`, nothing is - * appended. If an element of `from` is `undefined`, that element is not appended. - */ - export function prependRange(to: T[], from: ReadonlyArray | undefined): T[] | undefined { - if (from === undefined || from.length === 0) return to; - if (to === undefined) return from.slice(); - to.unshift(...from); - return to; - } - /** * @return Whether the value was added. */ diff --git a/src/compiler/transformers/es2015.ts b/src/compiler/transformers/es2015.ts index 3a632bb5ec3..b05cabcd85a 100644 --- a/src/compiler/transformers/es2015.ts +++ b/src/compiler/transformers/es2015.ts @@ -529,7 +529,7 @@ namespace ts { createVariableStatement(/*modifiers*/ undefined, createVariableDeclarationList(taggedTemplateStringDeclarations))); } - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); exitSubtree(ancestorFacts, HierarchyFacts.None, HierarchyFacts.None); return updateSourceFileNode( node, @@ -837,7 +837,7 @@ namespace ts { setEmitFlags(statement, EmitFlags.NoComments | EmitFlags.NoTokenSourceMaps); statements.push(statement); - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); const block = createBlock(setTextRange(createNodeArray(statements), /*location*/ node.members), /*multiLine*/ true); setEmitFlags(block, EmitFlags.NoComments); @@ -980,7 +980,7 @@ namespace ts { ); } - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); if (constructor) { prependCaptureNewTargetIfNeeded(statements, constructor, /*copyOnWrite*/ false); @@ -1896,7 +1896,7 @@ namespace ts { } const lexicalEnvironment = context.endLexicalEnvironment(); - prependRange(statements, lexicalEnvironment); + prependStatements(statements, lexicalEnvironment); prependCaptureNewTargetIfNeeded(statements, node, /*copyOnWrite*/ false); @@ -2712,7 +2712,7 @@ namespace ts { if (loopOutParameters.length) { copyOutParameters(loopOutParameters, CopyDirection.ToOutParameter, statements); } - prependRange(statements, lexicalEnvironment); + prependStatements(statements, lexicalEnvironment); loopBody = createBlock(statements, /*multiline*/ true); } diff --git a/src/compiler/transformers/es2017.ts b/src/compiler/transformers/es2017.ts index 8cc9cf3a3a0..a118e349ac3 100644 --- a/src/compiler/transformers/es2017.ts +++ b/src/compiler/transformers/es2017.ts @@ -413,7 +413,7 @@ namespace ts { ) ); - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); const block = createBlock(statements, /*multiLine*/ true); setTextRange(block, node.body); diff --git a/src/compiler/transformers/esnext.ts b/src/compiler/transformers/esnext.ts index a1d6631072f..a0ab03a9731 100644 --- a/src/compiler/transformers/esnext.ts +++ b/src/compiler/transformers/esnext.ts @@ -663,7 +663,7 @@ namespace ts { ) ); - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); const block = updateBlock(node.body!, statements); // Minor optimization, emit `_super` helper to capture `super` access in an arrow. @@ -695,7 +695,7 @@ namespace ts { const leadingStatements = endLexicalEnvironment(); if (statementOffset > 0 || some(statements) || some(leadingStatements)) { const block = convertToFunctionBody(body, /*multiLine*/ true); - prependRange(statements, leadingStatements); + prependStatements(statements, leadingStatements); addRange(statements, block.statements.slice(statementOffset)); return updateBlock(block, setTextRange(createNodeArray(statements), block.statements)); } diff --git a/src/compiler/transformers/generators.ts b/src/compiler/transformers/generators.ts index f796d64d03d..4752f4e4574 100644 --- a/src/compiler/transformers/generators.ts +++ b/src/compiler/transformers/generators.ts @@ -587,7 +587,7 @@ namespace ts { transformAndEmitStatements(body.statements, statementOffset); const buildResult = build(); - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); statements.push(createReturn(buildResult)); // Restore previous generator state diff --git a/src/compiler/transformers/module/module.ts b/src/compiler/transformers/module/module.ts index 86d0a6bc952..50595d960e1 100644 --- a/src/compiler/transformers/module/module.ts +++ b/src/compiler/transformers/module/module.ts @@ -97,7 +97,7 @@ namespace ts { append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, sourceElementVisitor, isStatement)); addRange(statements, visitNodes(node.statements, sourceElementVisitor, isStatement, statementOffset)); addExportEqualsIfNeeded(statements, /*emitAsReturn*/ false); - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); const updated = updateSourceFileNode(node, setTextRange(createNodeArray(statements), node.statements)); if (currentModuleInfo.hasExportStarsToExportValues && !compilerOptions.importHelpers) { @@ -426,7 +426,7 @@ namespace ts { // End the lexical environment for the module body // and merge any new lexical declarations. - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); const body = createBlock(statements, /*multiLine*/ true); if (currentModuleInfo.hasExportStarsToExportValues && !compilerOptions.importHelpers) { diff --git a/src/compiler/transformers/module/system.ts b/src/compiler/transformers/module/system.ts index 4ff4d5b4e7f..9cad3cbb97c 100644 --- a/src/compiler/transformers/module/system.ts +++ b/src/compiler/transformers/module/system.ts @@ -257,7 +257,7 @@ namespace ts { // We emit hoisted variables early to align roughly with our previous emit output. // Two key differences in this approach are: // - Temporary variables will appear at the top rather than at the bottom of the file - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); const exportStarFunction = addExportStarIfNeeded(statements)!; // TODO: GH#18217 const moduleObject = createObjectLiteral([ diff --git a/src/compiler/transformers/ts.ts b/src/compiler/transformers/ts.ts index 4198de8d0db..5ae6bcb8b32 100644 --- a/src/compiler/transformers/ts.ts +++ b/src/compiler/transformers/ts.ts @@ -669,7 +669,7 @@ namespace ts { setEmitFlags(statement, EmitFlags.NoComments | EmitFlags.NoTokenSourceMaps); statements.push(statement); - prependRange(statements, context.endLexicalEnvironment()); + prependStatements(statements, context.endLexicalEnvironment()); const iife = createImmediatelyInvokedArrowFunction(statements); setEmitFlags(iife, EmitFlags.TypeScriptClassWrapper); @@ -2693,7 +2693,7 @@ namespace ts { const statements: Statement[] = []; startLexicalEnvironment(); const members = map(node.members, transformEnumMember); - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); addRange(statements, members); currentNamespaceContainerName = savedCurrentNamespaceLocalName; @@ -3008,7 +3008,7 @@ namespace ts { statementsLocation = moveRangePos(moduleBlock.statements, -1); } - prependRange(statements, endLexicalEnvironment()); + prependStatements(statements, endLexicalEnvironment()); currentNamespaceContainerName = savedCurrentNamespaceContainerName; currentNamespace = savedCurrentNamespace; currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName; diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index d25d41e6bba..a3da44c5b1f 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -254,6 +254,25 @@ namespace ts { return !nodeIsMissing(node); } + /** + * Appends a range of value to begin of an array, returning the array. + * + * @param to The array to which `value` is to be appended. If `to` is `undefined`, a new array + * is created if `value` was appended. + * @param from The values to append to the array. If `from` is `undefined`, nothing is + * appended. If an element of `from` is `undefined`, that element is not appended. + */ + export function prependStatements(to: T[], from: ReadonlyArray | undefined): T[] | undefined { + if (from === undefined || from.length === 0) return to; + if (to === undefined) return from.slice(); + const prologue = to.length && isPrologueDirective(to[0]) && to.shift(); + to.unshift(...from); + if (prologue) { + to.unshift(prologue); + } + return to; + } + /** * Determine if the given comment is a triple-slash * diff --git a/src/compiler/visitor.ts b/src/compiler/visitor.ts index 1b9853e9f86..5f35a3027dc 100644 --- a/src/compiler/visitor.ts +++ b/src/compiler/visitor.ts @@ -1469,7 +1469,7 @@ namespace ts { return isNodeArray(statements) ? setTextRange(createNodeArray(concatenate(declarations, statements)), statements) - : prependRange(statements, declarations); + : prependStatements(statements, declarations); } /** diff --git a/tests/baselines/reference/SystemModuleForStatementNoInitializer.js b/tests/baselines/reference/SystemModuleForStatementNoInitializer.js index 059e6175b30..ff31b3c73e2 100644 --- a/tests/baselines/reference/SystemModuleForStatementNoInitializer.js +++ b/tests/baselines/reference/SystemModuleForStatementNoInitializer.js @@ -19,8 +19,8 @@ for (; ;) { //// [SystemModuleForStatementNoInitializer.js] System.register([], function (exports_1, context_1) { - var i, limit; "use strict"; + var i, limit; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/aliasesInSystemModule1.js b/tests/baselines/reference/aliasesInSystemModule1.js index 340a8f53e3c..468ff805b2d 100644 --- a/tests/baselines/reference/aliasesInSystemModule1.js +++ b/tests/baselines/reference/aliasesInSystemModule1.js @@ -17,8 +17,8 @@ module M { //// [aliasesInSystemModule1.js] System.register(["foo"], function (exports_1, context_1) { - var alias, cls, cls2, x, y, z, M; "use strict"; + var alias, cls, cls2, x, y, z, M; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/aliasesInSystemModule2.js b/tests/baselines/reference/aliasesInSystemModule2.js index 88875297b2f..af7208d5c99 100644 --- a/tests/baselines/reference/aliasesInSystemModule2.js +++ b/tests/baselines/reference/aliasesInSystemModule2.js @@ -16,8 +16,8 @@ module M { //// [aliasesInSystemModule2.js] System.register(["foo"], function (exports_1, context_1) { - var foo_1, cls, cls2, x, y, z, M; "use strict"; + var foo_1, cls, cls2, x, y, z, M; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/allowSyntheticDefaultImports2.js b/tests/baselines/reference/allowSyntheticDefaultImports2.js index 2ab6ae38c13..ea83065c884 100644 --- a/tests/baselines/reference/allowSyntheticDefaultImports2.js +++ b/tests/baselines/reference/allowSyntheticDefaultImports2.js @@ -11,8 +11,8 @@ export class Foo { //// [a.js] System.register(["./b"], function (exports_1, context_1) { - var b_1, x; "use strict"; + var b_1, x; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/allowSyntheticDefaultImports3.js b/tests/baselines/reference/allowSyntheticDefaultImports3.js index 0e8207eaf26..d7eca3ead88 100644 --- a/tests/baselines/reference/allowSyntheticDefaultImports3.js +++ b/tests/baselines/reference/allowSyntheticDefaultImports3.js @@ -12,8 +12,8 @@ export class Foo { //// [b.js] System.register([], function (exports_1, context_1) { - var Foo; "use strict"; + var Foo; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -29,8 +29,8 @@ System.register([], function (exports_1, context_1) { }); //// [a.js] System.register(["./b"], function (exports_1, context_1) { - var b_1, x; "use strict"; + var b_1, x; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/allowSyntheticDefaultImports5.js b/tests/baselines/reference/allowSyntheticDefaultImports5.js index 0ca15c82cde..81de76c395f 100644 --- a/tests/baselines/reference/allowSyntheticDefaultImports5.js +++ b/tests/baselines/reference/allowSyntheticDefaultImports5.js @@ -13,8 +13,8 @@ export var x = new Foo(); //// [a.js] System.register(["./b"], function (exports_1, context_1) { - var b_1, x; "use strict"; + var b_1, x; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/allowSyntheticDefaultImports6.js b/tests/baselines/reference/allowSyntheticDefaultImports6.js index 1d19b3fb46c..7d351b65081 100644 --- a/tests/baselines/reference/allowSyntheticDefaultImports6.js +++ b/tests/baselines/reference/allowSyntheticDefaultImports6.js @@ -13,8 +13,8 @@ export var x = new Foo(); //// [a.js] System.register(["./b"], function (exports_1, context_1) { - var b_1, x; "use strict"; + var b_1, x; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/allowSyntheticDefaultImports7.js b/tests/baselines/reference/allowSyntheticDefaultImports7.js index 6a3d45ba59e..39e6c2ae5e0 100644 --- a/tests/baselines/reference/allowSyntheticDefaultImports7.js +++ b/tests/baselines/reference/allowSyntheticDefaultImports7.js @@ -12,8 +12,8 @@ Foo.foo(); //// [a.js] System.register(["./b"], function (exports_1, context_1) { - var b_1; "use strict"; + var b_1; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/allowSyntheticDefaultImports8.js b/tests/baselines/reference/allowSyntheticDefaultImports8.js index dff56737805..e1157b8297a 100644 --- a/tests/baselines/reference/allowSyntheticDefaultImports8.js +++ b/tests/baselines/reference/allowSyntheticDefaultImports8.js @@ -12,8 +12,8 @@ Foo.foo(); //// [a.js] System.register(["./b"], function (exports_1, context_1) { - var b_1; "use strict"; + var b_1; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/anonymousDefaultExportsSystem.js b/tests/baselines/reference/anonymousDefaultExportsSystem.js index bc3d35cda90..48071da9e9b 100644 --- a/tests/baselines/reference/anonymousDefaultExportsSystem.js +++ b/tests/baselines/reference/anonymousDefaultExportsSystem.js @@ -8,8 +8,8 @@ export default function() {} //// [a.js] System.register([], function (exports_1, context_1) { - var default_1; "use strict"; + var default_1; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/capturedLetConstInLoop4.js b/tests/baselines/reference/capturedLetConstInLoop4.js index 874a1d4130e..ff6d32563a9 100644 --- a/tests/baselines/reference/capturedLetConstInLoop4.js +++ b/tests/baselines/reference/capturedLetConstInLoop4.js @@ -144,8 +144,8 @@ for (const y = 0; y < 1;) { //// [capturedLetConstInLoop4.js] System.register([], function (exports_1, context_1) { - var v0, v00, v1, v2, v3, v4, v5, v6, v7, v8, v0_c, v00_c, v1_c, v2_c, v3_c, v4_c, v5_c, v6_c, v7_c, v8_c; "use strict"; + var v0, v00, v1, v2, v3, v4, v5, v6, v7, v8, v0_c, v00_c, v1_c, v2_c, v3_c, v4_c, v5_c, v6_c, v7_c, v8_c; var __moduleName = context_1 && context_1.id; //======let function exportedFoo() { diff --git a/tests/baselines/reference/decoratedClassExportsSystem1.js b/tests/baselines/reference/decoratedClassExportsSystem1.js index 5921a424524..844a87fe093 100644 --- a/tests/baselines/reference/decoratedClassExportsSystem1.js +++ b/tests/baselines/reference/decoratedClassExportsSystem1.js @@ -9,6 +9,7 @@ export class Testing123 { //// [a.js] System.register([], function (exports_1, context_1) { + "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -16,7 +17,6 @@ System.register([], function (exports_1, context_1) { return c > 3 && r && Object.defineProperty(target, key, r), r; }; var Testing123_1, Testing123; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/decoratedClassExportsSystem2.js b/tests/baselines/reference/decoratedClassExportsSystem2.js index e3f0a97b64d..a9458e125b3 100644 --- a/tests/baselines/reference/decoratedClassExportsSystem2.js +++ b/tests/baselines/reference/decoratedClassExportsSystem2.js @@ -6,6 +6,7 @@ export class Testing123 { } //// [a.js] System.register([], function (exports_1, context_1) { + "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -13,7 +14,6 @@ System.register([], function (exports_1, context_1) { return c > 3 && r && Object.defineProperty(target, key, r), r; }; var Testing123_1, Testing123; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js index 837fdc103f8..63290f4176a 100644 --- a/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js +++ b/tests/baselines/reference/decoratedDefaultExportsGetExportedSystem.js @@ -14,6 +14,7 @@ export default class {} //// [a.js] System.register([], function (exports_1, context_1) { + "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -21,7 +22,6 @@ System.register([], function (exports_1, context_1) { return c > 3 && r && Object.defineProperty(target, key, r), r; }; var decorator, Foo; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -37,6 +37,7 @@ System.register([], function (exports_1, context_1) { }); //// [b.js] System.register([], function (exports_1, context_1) { + "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -44,7 +45,6 @@ System.register([], function (exports_1, context_1) { return c > 3 && r && Object.defineProperty(target, key, r), r; }; var decorator, default_1; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/deduplicateImportsInSystem.js b/tests/baselines/reference/deduplicateImportsInSystem.js index 8bf49a449cc..d96d5af80d3 100644 --- a/tests/baselines/reference/deduplicateImportsInSystem.js +++ b/tests/baselines/reference/deduplicateImportsInSystem.js @@ -10,8 +10,8 @@ console.log(A + B + C + D + E + F) //// [deduplicateImportsInSystem.js] System.register(["f1", "f2", "f3"], function (exports_1, context_1) { - var f1_1, f2_1, f3_1, f2_2, f2_3, f1_2; "use strict"; + var f1_1, f2_1, f3_1, f2_2, f2_3, f1_2; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/defaultExportsGetExportedSystem.js b/tests/baselines/reference/defaultExportsGetExportedSystem.js index 0269905baba..229c5d0aae6 100644 --- a/tests/baselines/reference/defaultExportsGetExportedSystem.js +++ b/tests/baselines/reference/defaultExportsGetExportedSystem.js @@ -9,8 +9,8 @@ export default function foo() {} //// [a.js] System.register([], function (exports_1, context_1) { - var Foo; "use strict"; + var Foo; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/destructuringAssignmentWithExportedName.js b/tests/baselines/reference/destructuringAssignmentWithExportedName.js index 81f38a383ab..4dc60ecff77 100644 --- a/tests/baselines/reference/destructuringAssignmentWithExportedName.js +++ b/tests/baselines/reference/destructuringAssignmentWithExportedName.js @@ -26,8 +26,8 @@ export { nonexportedFoo }; export { exportedFoo as foo, nonexportedFoo as nfoo }; //// [destructuringAssignmentWithExportedName.js] -var _a, _b, _c, _d, _e; "use strict"; +var _a, _b, _c, _d, _e; Object.defineProperty(exports, "__esModule", { value: true }); exports.foo = exports.exportedFoo; let nonexportedFoo; diff --git a/tests/baselines/reference/destructuringInVariableDeclarations7.js b/tests/baselines/reference/destructuringInVariableDeclarations7.js index aabbb822523..cc6f0799c6a 100644 --- a/tests/baselines/reference/destructuringInVariableDeclarations7.js +++ b/tests/baselines/reference/destructuringInVariableDeclarations7.js @@ -7,8 +7,8 @@ export let { toString } = 1; //// [destructuringInVariableDeclarations7.js] System.register([], function (exports_1, context_1) { - var toString; "use strict"; + var toString; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/destructuringInVariableDeclarations8.js b/tests/baselines/reference/destructuringInVariableDeclarations8.js index 5455061cbc3..d12fa807003 100644 --- a/tests/baselines/reference/destructuringInVariableDeclarations8.js +++ b/tests/baselines/reference/destructuringInVariableDeclarations8.js @@ -8,8 +8,8 @@ export {}; //// [destructuringInVariableDeclarations8.js] System.register([], function (exports_1, context_1) { - var toString; "use strict"; + var toString; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/dottedNamesInSystem.js b/tests/baselines/reference/dottedNamesInSystem.js index c2a5f7e882a..b65dba306f1 100644 --- a/tests/baselines/reference/dottedNamesInSystem.js +++ b/tests/baselines/reference/dottedNamesInSystem.js @@ -9,8 +9,8 @@ export function bar() { //// [dottedNamesInSystem.js] System.register([], function (exports_1, context_1) { - var A; "use strict"; + var A; var __moduleName = context_1 && context_1.id; function bar() { return A.B.C.foo(); diff --git a/tests/baselines/reference/es5-system.js b/tests/baselines/reference/es5-system.js index c84b5c9e631..f28fcd3d437 100644 --- a/tests/baselines/reference/es5-system.js +++ b/tests/baselines/reference/es5-system.js @@ -15,8 +15,8 @@ export default class A //// [es5-system.js] System.register([], function (exports_1, context_1) { - var A; "use strict"; + var A; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/es5-system2.js b/tests/baselines/reference/es5-system2.js index bb697216628..eef60a3c0ef 100644 --- a/tests/baselines/reference/es5-system2.js +++ b/tests/baselines/reference/es5-system2.js @@ -3,8 +3,8 @@ export var __esModule = 1; //// [es5-system2.js] System.register([], function (exports_1, context_1) { - var __esModule; "use strict"; + var __esModule; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/exportNonInitializedVariablesSystem.js b/tests/baselines/reference/exportNonInitializedVariablesSystem.js index 56d27bfbead..88f332eb300 100644 --- a/tests/baselines/reference/exportNonInitializedVariablesSystem.js +++ b/tests/baselines/reference/exportNonInitializedVariablesSystem.js @@ -35,8 +35,8 @@ export let h1: D = new D; //// [exportNonInitializedVariablesSystem.js] System.register([], function (exports_1, context_1) { - var a, b, c, d, A, e, f, B, C, a1, b1, c1, d1, D, e1, f1, g1, h1; "use strict"; + var a, b, c, d, A, e, f, B, C, a1, b1, c1, d1, D, e1, f1, g1, h1; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/exportStarForValues10.js b/tests/baselines/reference/exportStarForValues10.js index 249a633cd07..49f40ab5374 100644 --- a/tests/baselines/reference/exportStarForValues10.js +++ b/tests/baselines/reference/exportStarForValues10.js @@ -13,8 +13,8 @@ var x = 1; //// [file0.js] System.register([], function (exports_1, context_1) { - var v; "use strict"; + var v; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -35,8 +35,8 @@ System.register([], function (exports_1, context_1) { }); //// [file2.js] System.register(["file0"], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; function exportStar_1(m) { var exports = {}; diff --git a/tests/baselines/reference/exportStarForValues6.js b/tests/baselines/reference/exportStarForValues6.js index 8bf7e91c87a..0e593f4efb5 100644 --- a/tests/baselines/reference/exportStarForValues6.js +++ b/tests/baselines/reference/exportStarForValues6.js @@ -19,8 +19,8 @@ System.register([], function (exports_1, context_1) { }); //// [file2.js] System.register([], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/exportStarForValuesInSystem.js b/tests/baselines/reference/exportStarForValuesInSystem.js index d5f9c5bac2c..c7406dc18d8 100644 --- a/tests/baselines/reference/exportStarForValuesInSystem.js +++ b/tests/baselines/reference/exportStarForValuesInSystem.js @@ -19,8 +19,8 @@ System.register([], function (exports_1, context_1) { }); //// [file2.js] System.register([], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/importCallExpressionAsyncES3System.js b/tests/baselines/reference/importCallExpressionAsyncES3System.js index 7f9814e7e96..95933e2fd9b 100644 --- a/tests/baselines/reference/importCallExpressionAsyncES3System.js +++ b/tests/baselines/reference/importCallExpressionAsyncES3System.js @@ -30,6 +30,7 @@ export const l = async () => { //// [test.js] System.register([], function (exports_1, context_1) { + "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } @@ -66,7 +67,6 @@ System.register([], function (exports_1, context_1) { } }; var _this, cl1, obj, cl2, l; - "use strict"; _this = this; var __moduleName = context_1 && context_1.id; function fn() { diff --git a/tests/baselines/reference/importCallExpressionAsyncES5System.js b/tests/baselines/reference/importCallExpressionAsyncES5System.js index 2a3c3629f1b..c83290ddcdc 100644 --- a/tests/baselines/reference/importCallExpressionAsyncES5System.js +++ b/tests/baselines/reference/importCallExpressionAsyncES5System.js @@ -30,6 +30,7 @@ export const l = async () => { //// [test.js] System.register([], function (exports_1, context_1) { + "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } @@ -66,7 +67,6 @@ System.register([], function (exports_1, context_1) { } }; var _this, cl1, obj, cl2, l; - "use strict"; _this = this; var __moduleName = context_1 && context_1.id; function fn() { diff --git a/tests/baselines/reference/importCallExpressionAsyncES6System.js b/tests/baselines/reference/importCallExpressionAsyncES6System.js index ed771dbb4c0..1f605dcc3f8 100644 --- a/tests/baselines/reference/importCallExpressionAsyncES6System.js +++ b/tests/baselines/reference/importCallExpressionAsyncES6System.js @@ -30,6 +30,7 @@ export const l = async () => { //// [test.js] System.register([], function (exports_1, context_1) { + "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } @@ -39,7 +40,6 @@ System.register([], function (exports_1, context_1) { }); }; var cl1, obj, cl2, l; - "use strict"; var __moduleName = context_1 && context_1.id; function fn() { return __awaiter(this, void 0, void 0, function* () { diff --git a/tests/baselines/reference/importCallExpressionES5System.js b/tests/baselines/reference/importCallExpressionES5System.js index 69c005df3bd..af9e8d744c5 100644 --- a/tests/baselines/reference/importCallExpressionES5System.js +++ b/tests/baselines/reference/importCallExpressionES5System.js @@ -42,8 +42,8 @@ System.register([], function (exports_1, context_1) { }); //// [1.js] System.register([], function (exports_1, context_1) { - var p1, p2, C, D; "use strict"; + var p1, p2, C, D; var __moduleName = context_1 && context_1.id; function foo() { var p2 = context_1.import("./0"); diff --git a/tests/baselines/reference/importCallExpressionES6System.js b/tests/baselines/reference/importCallExpressionES6System.js index abf8ff507ed..9ed9f2ae54a 100644 --- a/tests/baselines/reference/importCallExpressionES6System.js +++ b/tests/baselines/reference/importCallExpressionES6System.js @@ -42,8 +42,8 @@ System.register([], function (exports_1, context_1) { }); //// [1.js] System.register([], function (exports_1, context_1) { - var p1, p2, C, D; "use strict"; + var p1, p2, C, D; var __moduleName = context_1 && context_1.id; function foo() { const p2 = context_1.import("./0"); diff --git a/tests/baselines/reference/importCallExpressionInSystem1.js b/tests/baselines/reference/importCallExpressionInSystem1.js index 237ca312b88..b1108670149 100644 --- a/tests/baselines/reference/importCallExpressionInSystem1.js +++ b/tests/baselines/reference/importCallExpressionInSystem1.js @@ -30,8 +30,8 @@ System.register([], function (exports_1, context_1) { }); //// [1.js] System.register([], function (exports_1, context_1) { - var p1, p2; "use strict"; + var p1, p2; var __moduleName = context_1 && context_1.id; function foo() { const p2 = context_1.import("./0"); diff --git a/tests/baselines/reference/importCallExpressionInSystem2.js b/tests/baselines/reference/importCallExpressionInSystem2.js index b64632bc9db..165b47fdb1a 100644 --- a/tests/baselines/reference/importCallExpressionInSystem2.js +++ b/tests/baselines/reference/importCallExpressionInSystem2.js @@ -18,8 +18,8 @@ foo(import("./0")); //// [0.js] System.register([], function (exports_1, context_1) { - var B; "use strict"; + var B; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/importCallExpressionInSystem3.js b/tests/baselines/reference/importCallExpressionInSystem3.js index 89bee947662..2bf6d4c0288 100644 --- a/tests/baselines/reference/importCallExpressionInSystem3.js +++ b/tests/baselines/reference/importCallExpressionInSystem3.js @@ -15,8 +15,8 @@ foo(); //// [0.js] System.register([], function (exports_1, context_1) { - var B; "use strict"; + var B; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/importCallExpressionInSystem4.js b/tests/baselines/reference/importCallExpressionInSystem4.js index dd2f9faadc8..55af57174bd 100644 --- a/tests/baselines/reference/importCallExpressionInSystem4.js +++ b/tests/baselines/reference/importCallExpressionInSystem4.js @@ -42,8 +42,8 @@ export class D { //// [0.js] System.register([], function (exports_1, context_1) { - var B; "use strict"; + var B; var __moduleName = context_1 && context_1.id; function foo() { return "foo"; } exports_1("foo", foo); @@ -71,8 +71,8 @@ System.register([], function (exports_1, context_1) { }); //// [2.js] System.register([], function (exports_1, context_1) { - var C, D; "use strict"; + var C, D; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/importHelpersSystem.js b/tests/baselines/reference/importHelpersSystem.js index 6e29369b842..32060987369 100644 --- a/tests/baselines/reference/importHelpersSystem.js +++ b/tests/baselines/reference/importHelpersSystem.js @@ -19,8 +19,8 @@ export declare function __awaiter(thisArg: any, _arguments: any, P: Function, ge //// [a.js] System.register([], function (exports_1, context_1) { - var A; "use strict"; + var A; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -36,8 +36,8 @@ System.register([], function (exports_1, context_1) { }); //// [b.js] System.register(["tslib", "./a"], function (exports_1, context_1) { - var tslib_1, a_1, B; "use strict"; + var tslib_1, a_1, B; var __moduleName = context_1 && context_1.id; var exportedNames_1 = { "B": true diff --git a/tests/baselines/reference/invalidSyntaxNamespaceImportWithSystem.js b/tests/baselines/reference/invalidSyntaxNamespaceImportWithSystem.js index 4a3c6fbcf06..aaeece2da46 100644 --- a/tests/baselines/reference/invalidSyntaxNamespaceImportWithSystem.js +++ b/tests/baselines/reference/invalidSyntaxNamespaceImportWithSystem.js @@ -8,8 +8,8 @@ import * from Zero from "./0" //// [0.js] System.register([], function (exports_1, context_1) { - var C; "use strict"; + var C; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -25,8 +25,8 @@ System.register([], function (exports_1, context_1) { }); //// [1.js] System.register([], function (exports_1, context_1) { - var from; "use strict"; + var from; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/modulePrologueSystem.js b/tests/baselines/reference/modulePrologueSystem.js index 849355db9c5..ea8fc5d8a65 100644 --- a/tests/baselines/reference/modulePrologueSystem.js +++ b/tests/baselines/reference/modulePrologueSystem.js @@ -5,8 +5,8 @@ export class Foo {} //// [modulePrologueSystem.js] System.register([], function (exports_1, context_1) { - var Foo; "use strict"; + var Foo; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/outFilerootDirModuleNamesSystem.js b/tests/baselines/reference/outFilerootDirModuleNamesSystem.js index b5da7ffa604..0cf43e047a0 100644 --- a/tests/baselines/reference/outFilerootDirModuleNamesSystem.js +++ b/tests/baselines/reference/outFilerootDirModuleNamesSystem.js @@ -12,8 +12,8 @@ export default function foo() { new Foo(); } //// [output.js] System.register("b", ["a"], function (exports_1, context_1) { - var a_1; "use strict"; + var a_1; var __moduleName = context_1 && context_1.id; function foo() { new a_1.default(); } exports_1("default", foo); @@ -28,8 +28,8 @@ System.register("b", ["a"], function (exports_1, context_1) { }; }); System.register("a", ["b"], function (exports_2, context_2) { - var b_1, Foo; "use strict"; + var b_1, Foo; var __moduleName = context_2 && context_2.id; return { setters: [ diff --git a/tests/baselines/reference/outModuleConcatSystem.js b/tests/baselines/reference/outModuleConcatSystem.js index 00e1f39e45a..7d3f4200834 100644 --- a/tests/baselines/reference/outModuleConcatSystem.js +++ b/tests/baselines/reference/outModuleConcatSystem.js @@ -19,8 +19,8 @@ var __extends = (this && this.__extends) || (function () { }; })(); System.register("ref/a", [], function (exports_1, context_1) { - var A; "use strict"; + var A; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -35,8 +35,8 @@ System.register("ref/a", [], function (exports_1, context_1) { }; }); System.register("b", ["ref/a"], function (exports_2, context_2) { - var a_1, B; "use strict"; + var a_1, B; var __moduleName = context_2 && context_2.id; return { setters: [ diff --git a/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt b/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt index 0f6361d0e8f..100165753ec 100644 --- a/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt +++ b/tests/baselines/reference/outModuleConcatSystem.sourcemap.txt @@ -19,8 +19,8 @@ sourceFile:tests/cases/compiler/ref/a.ts >>> }; >>>})(); >>>System.register("ref/a", [], function (exports_1, context_1) { ->>> var A; >>> "use strict"; +>>> var A; >>> var __moduleName = context_1 && context_1.id; >>> return { >>> setters: [], @@ -86,8 +86,8 @@ sourceFile:tests/cases/compiler/b.ts >>> }; >>>}); >>>System.register("b", ["ref/a"], function (exports_2, context_2) { ->>> var a_1, B; >>> "use strict"; +>>> var a_1, B; >>> var __moduleName = context_2 && context_2.id; >>> return { >>> setters: [ diff --git a/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js b/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js index 3990aa4ef1e..3241bcacf88 100644 --- a/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js +++ b/tests/baselines/reference/prefixUnaryOperatorsOnExportedVariables.js @@ -31,8 +31,8 @@ if (++y) { //// [prefixUnaryOperatorsOnExportedVariables.js] System.register([], function (exports_1, context_1) { - var x, y; "use strict"; + var x, y; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemDefaultExportCommentValidity.js b/tests/baselines/reference/systemDefaultExportCommentValidity.js index 12a2d84db73..6fa0c45d559 100644 --- a/tests/baselines/reference/systemDefaultExportCommentValidity.js +++ b/tests/baselines/reference/systemDefaultExportCommentValidity.js @@ -6,8 +6,8 @@ export default Home //// [systemDefaultExportCommentValidity.js] System.register([], function (exports_1, context_1) { - var Home; "use strict"; + var Home; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemDefaultImportCallable.js b/tests/baselines/reference/systemDefaultImportCallable.js index da1ed916e0a..c9dbadda0d2 100644 --- a/tests/baselines/reference/systemDefaultImportCallable.js +++ b/tests/baselines/reference/systemDefaultImportCallable.js @@ -17,8 +17,8 @@ const _: string = repeat(new Date().toUTCString() + " ", 2); //// [greeter.js] System.register(["core-js/fn/string/repeat"], function (exports_1, context_1) { - var repeat_1, _; "use strict"; + var repeat_1, _; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/systemExportAssignment2.js b/tests/baselines/reference/systemExportAssignment2.js index 01b935cb223..f4d56cffa6c 100644 --- a/tests/baselines/reference/systemExportAssignment2.js +++ b/tests/baselines/reference/systemExportAssignment2.js @@ -10,8 +10,8 @@ import * as a from "a"; //// [a.js] System.register([], function (exports_1, context_1) { - var a; "use strict"; + var a; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemJsForInNoException.js b/tests/baselines/reference/systemJsForInNoException.js index 1b330b216ce..32194ce30ae 100644 --- a/tests/baselines/reference/systemJsForInNoException.js +++ b/tests/baselines/reference/systemJsForInNoException.js @@ -5,8 +5,8 @@ for (var key in obj) //// [systemJsForInNoException.js] System.register([], function (exports_1, context_1) { - var obj, key; "use strict"; + var obj, key; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule1.js b/tests/baselines/reference/systemModule1.js index bd813b39c97..6a739650889 100644 --- a/tests/baselines/reference/systemModule1.js +++ b/tests/baselines/reference/systemModule1.js @@ -3,8 +3,8 @@ export var x = 1; //// [systemModule1.js] System.register([], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule10.js b/tests/baselines/reference/systemModule10.js index 29ce481bfb0..953a949f2a1 100644 --- a/tests/baselines/reference/systemModule10.js +++ b/tests/baselines/reference/systemModule10.js @@ -10,8 +10,8 @@ export {n2 as n3} //// [systemModule10.js] System.register(["file1", "file2"], function (exports_1, context_1) { - var file1_1, n2; "use strict"; + var file1_1, n2; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/systemModule10_ES5.js b/tests/baselines/reference/systemModule10_ES5.js index bae6bd2c43c..26201b487c9 100644 --- a/tests/baselines/reference/systemModule10_ES5.js +++ b/tests/baselines/reference/systemModule10_ES5.js @@ -10,8 +10,8 @@ export {n2 as n3} //// [systemModule10_ES5.js] System.register(["file1", "file2"], function (exports_1, context_1) { - var file1_1, n2; "use strict"; + var file1_1, n2; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/systemModule11.js b/tests/baselines/reference/systemModule11.js index 49543b958cf..d353476f5b8 100644 --- a/tests/baselines/reference/systemModule11.js +++ b/tests/baselines/reference/systemModule11.js @@ -38,8 +38,8 @@ export * from 'a'; //// [file1.js] // set of tests cases that checks generation of local storage for exported names System.register(["bar"], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; function foo() { } exports_1("foo", foo); @@ -66,8 +66,8 @@ System.register(["bar"], function (exports_1, context_1) { }); //// [file2.js] System.register(["bar"], function (exports_1, context_1) { - var x, y; "use strict"; + var x, y; var __moduleName = context_1 && context_1.id; var exportedNames_1 = { "x": true, @@ -125,8 +125,8 @@ System.register(["a", "bar"], function (exports_1, context_1) { }); //// [file4.js] System.register(["a"], function (exports_1, context_1) { - var x, z, z1; "use strict"; + var x, z, z1; var __moduleName = context_1 && context_1.id; function foo() { } exports_1("foo", foo); diff --git a/tests/baselines/reference/systemModule13.js b/tests/baselines/reference/systemModule13.js index 370bcadfa2e..117a8108b47 100644 --- a/tests/baselines/reference/systemModule13.js +++ b/tests/baselines/reference/systemModule13.js @@ -5,8 +5,8 @@ for ([x] of [[1]]) {} //// [systemModule13.js] System.register([], function (exports_1, context_1) { - var _a, _b, x, y, z, z0, z1; "use strict"; + var _a, _b, x, y, z, z0, z1; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule14.js b/tests/baselines/reference/systemModule14.js index 361d8e7fe35..73c2a981c1b 100644 --- a/tests/baselines/reference/systemModule14.js +++ b/tests/baselines/reference/systemModule14.js @@ -11,8 +11,8 @@ export {foo as b} //// [systemModule14.js] System.register(["foo"], function (exports_1, context_1) { - var foo_1, x; "use strict"; + var foo_1, x; var __moduleName = context_1 && context_1.id; function foo() { return foo_1.a; diff --git a/tests/baselines/reference/systemModule15.js b/tests/baselines/reference/systemModule15.js index 05c551b1b67..e24403b9c03 100644 --- a/tests/baselines/reference/systemModule15.js +++ b/tests/baselines/reference/systemModule15.js @@ -30,8 +30,8 @@ export var value2 = "v"; //// [file3.js] System.register([], function (exports_1, context_1) { - var value; "use strict"; + var value; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -43,8 +43,8 @@ System.register([], function (exports_1, context_1) { }); //// [file4.js] System.register([], function (exports_1, context_1) { - var value2; "use strict"; + var value2; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -55,8 +55,8 @@ System.register([], function (exports_1, context_1) { }); //// [file2.js] System.register(["./file3"], function (exports_1, context_1) { - var moduleCStar, file3_1, file3_2; "use strict"; + var moduleCStar, file3_1, file3_2; var __moduleName = context_1 && context_1.id; return { setters: [ @@ -75,8 +75,8 @@ System.register(["./file3"], function (exports_1, context_1) { }); //// [file1.js] System.register(["./file2"], function (exports_1, context_1) { - var moduleB; "use strict"; + var moduleB; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/systemModule16.js b/tests/baselines/reference/systemModule16.js index e390b68001d..50cffe3afad 100644 --- a/tests/baselines/reference/systemModule16.js +++ b/tests/baselines/reference/systemModule16.js @@ -13,8 +13,8 @@ x,y,a1,b1,d1; //// [systemModule16.js] System.register(["foo", "bar"], function (exports_1, context_1) { - var x, y, foo_1; "use strict"; + var x, y, foo_1; var __moduleName = context_1 && context_1.id; var exportedNames_1 = { "x": true, diff --git a/tests/baselines/reference/systemModule17.js b/tests/baselines/reference/systemModule17.js index e96da2e2ad3..a59d1d33723 100644 --- a/tests/baselines/reference/systemModule17.js +++ b/tests/baselines/reference/systemModule17.js @@ -40,8 +40,8 @@ export {II as II1}; //// [f1.js] System.register([], function (exports_1, context_1) { - var A; "use strict"; + var A; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -57,8 +57,8 @@ System.register([], function (exports_1, context_1) { }); //// [f2.js] System.register(["f1"], function (exports_1, context_1) { - var x, N, IX, f1_1; "use strict"; + var x, N, IX, f1_1; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/systemModule2.js b/tests/baselines/reference/systemModule2.js index 800e4286d96..0bbec083ba1 100644 --- a/tests/baselines/reference/systemModule2.js +++ b/tests/baselines/reference/systemModule2.js @@ -4,8 +4,8 @@ export = x; //// [systemModule2.js] System.register([], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule3.js b/tests/baselines/reference/systemModule3.js index a2e46bd76d4..49bb238f11c 100644 --- a/tests/baselines/reference/systemModule3.js +++ b/tests/baselines/reference/systemModule3.js @@ -38,8 +38,8 @@ System.register([], function (exports_1, context_1) { }); //// [file3.js] System.register([], function (exports_1, context_1) { - var C; "use strict"; + var C; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -55,8 +55,8 @@ System.register([], function (exports_1, context_1) { }); //// [file4.js] System.register([], function (exports_1, context_1) { - var default_1; "use strict"; + var default_1; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule4.js b/tests/baselines/reference/systemModule4.js index 5e346f6250c..8b50d0f0fc3 100644 --- a/tests/baselines/reference/systemModule4.js +++ b/tests/baselines/reference/systemModule4.js @@ -4,8 +4,8 @@ export var y; //// [systemModule4.js] System.register([], function (exports_1, context_1) { - var x, y; "use strict"; + var x, y; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule6.js b/tests/baselines/reference/systemModule6.js index c994f45f984..77e13fa29c9 100644 --- a/tests/baselines/reference/systemModule6.js +++ b/tests/baselines/reference/systemModule6.js @@ -7,8 +7,8 @@ function foo() { //// [systemModule6.js] System.register([], function (exports_1, context_1) { - var C; "use strict"; + var C; var __moduleName = context_1 && context_1.id; function foo() { new C(); diff --git a/tests/baselines/reference/systemModule7.js b/tests/baselines/reference/systemModule7.js index b5be65f118e..04ddabc523b 100644 --- a/tests/baselines/reference/systemModule7.js +++ b/tests/baselines/reference/systemModule7.js @@ -11,8 +11,8 @@ export module M { //// [systemModule7.js] System.register([], function (exports_1, context_1) { - var M; "use strict"; + var M; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModule8.js b/tests/baselines/reference/systemModule8.js index cc79e858ec1..b46c56b703d 100644 --- a/tests/baselines/reference/systemModule8.js +++ b/tests/baselines/reference/systemModule8.js @@ -31,8 +31,8 @@ for ([x] of [[1]]) {} //// [systemModule8.js] System.register([], function (exports_1, context_1) { - var _a, x, y, z0, z1; "use strict"; + var _a, x, y, z0, z1; var __moduleName = context_1 && context_1.id; function foo() { exports_1("x", x = 100); diff --git a/tests/baselines/reference/systemModule9.js b/tests/baselines/reference/systemModule9.js index 1d9b711ff62..06c15910b65 100644 --- a/tests/baselines/reference/systemModule9.js +++ b/tests/baselines/reference/systemModule9.js @@ -22,8 +22,8 @@ export {y as z}; //// [systemModule9.js] System.register(["file1", "file2", "file3", "file4", "file5", "file6", "file7"], function (exports_1, context_1) { - var ns, file2_1, file3_1, file5_1, ns3, x, y; "use strict"; + var ns, file2_1, file3_1, file5_1, ns3, x, y; var __moduleName = context_1 && context_1.id; var exportedNames_1 = { "x": true, diff --git a/tests/baselines/reference/systemModuleAmbientDeclarations.js b/tests/baselines/reference/systemModuleAmbientDeclarations.js index cca1c34436a..b53ae9cc2d4 100644 --- a/tests/baselines/reference/systemModuleAmbientDeclarations.js +++ b/tests/baselines/reference/systemModuleAmbientDeclarations.js @@ -29,8 +29,8 @@ export declare module M { var v: number; } //// [file1.js] System.register([], function (exports_1, context_1) { - var promise, foo, c, e; "use strict"; + var promise, foo, c, e; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js b/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js index bd4e855ca12..ccb6a35411b 100644 --- a/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js +++ b/tests/baselines/reference/systemModuleConstEnumsSeparateCompilation.js @@ -13,8 +13,8 @@ module M { //// [systemModuleConstEnumsSeparateCompilation.js] System.register([], function (exports_1, context_1) { - var TopLevelConstEnum, M; "use strict"; + var TopLevelConstEnum, M; var __moduleName = context_1 && context_1.id; function foo() { use(TopLevelConstEnum.X); diff --git a/tests/baselines/reference/systemModuleDeclarationMerging.js b/tests/baselines/reference/systemModuleDeclarationMerging.js index 0a52d049f71..bcf3a505a48 100644 --- a/tests/baselines/reference/systemModuleDeclarationMerging.js +++ b/tests/baselines/reference/systemModuleDeclarationMerging.js @@ -10,8 +10,8 @@ export module E { var x; } //// [systemModuleDeclarationMerging.js] System.register([], function (exports_1, context_1) { - var C, E; "use strict"; + var C, E; var __moduleName = context_1 && context_1.id; function F() { } exports_1("F", F); diff --git a/tests/baselines/reference/systemModuleExportDefault.js b/tests/baselines/reference/systemModuleExportDefault.js index 787d5df6c85..d4eb8d8a4a0 100644 --- a/tests/baselines/reference/systemModuleExportDefault.js +++ b/tests/baselines/reference/systemModuleExportDefault.js @@ -40,8 +40,8 @@ System.register([], function (exports_1, context_1) { }); //// [file3.js] System.register([], function (exports_1, context_1) { - var default_1; "use strict"; + var default_1; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -57,8 +57,8 @@ System.register([], function (exports_1, context_1) { }); //// [file4.js] System.register([], function (exports_1, context_1) { - var C; "use strict"; + var C; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js b/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js index cfce3624f44..1925cec4cd0 100644 --- a/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js +++ b/tests/baselines/reference/systemModuleNonTopLevelModuleMembers.js @@ -13,8 +13,8 @@ export module TopLevelModule2 { //// [systemModuleNonTopLevelModuleMembers.js] System.register([], function (exports_1, context_1) { - var TopLevelClass, TopLevelModule, TopLevelEnum, TopLevelModule2; "use strict"; + var TopLevelClass, TopLevelModule, TopLevelEnum, TopLevelModule2; var __moduleName = context_1 && context_1.id; function TopLevelFunction() { } exports_1("TopLevelFunction", TopLevelFunction); diff --git a/tests/baselines/reference/systemModuleTargetES6.js b/tests/baselines/reference/systemModuleTargetES6.js index 1f26df84e93..943e57ff742 100644 --- a/tests/baselines/reference/systemModuleTargetES6.js +++ b/tests/baselines/reference/systemModuleTargetES6.js @@ -15,8 +15,8 @@ export function myFunction2() { //// [systemModuleTargetES6.js] System.register([], function (exports_1, context_1) { - var MyClass, MyClass2; "use strict"; + var MyClass, MyClass2; var __moduleName = context_1 && context_1.id; function myFunction() { return new MyClass(); diff --git a/tests/baselines/reference/systemModuleTrailingComments.js b/tests/baselines/reference/systemModuleTrailingComments.js index e5d52731334..05eec6faa75 100644 --- a/tests/baselines/reference/systemModuleTrailingComments.js +++ b/tests/baselines/reference/systemModuleTrailingComments.js @@ -5,8 +5,8 @@ export const test = "TEST"; //// [systemModuleTrailingComments.js] System.register([], function (exports_1, context_1) { - var test; "use strict"; + var test; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemModuleWithSuperClass.js b/tests/baselines/reference/systemModuleWithSuperClass.js index 5d6b19a8f4e..fcc10c2bcb2 100644 --- a/tests/baselines/reference/systemModuleWithSuperClass.js +++ b/tests/baselines/reference/systemModuleWithSuperClass.js @@ -13,8 +13,8 @@ export class Bar extends Foo { //// [foo.js] System.register([], function (exports_1, context_1) { - var Foo; "use strict"; + var Foo; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -30,6 +30,7 @@ System.register([], function (exports_1, context_1) { }); //// [bar.js] System.register(["./foo"], function (exports_1, context_1) { + "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || @@ -41,7 +42,6 @@ System.register(["./foo"], function (exports_1, context_1) { }; })(); var foo_1, Bar; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/systemNamespaceAliasEmit.js b/tests/baselines/reference/systemNamespaceAliasEmit.js index 45e15c832fb..3d36bad2ef1 100644 --- a/tests/baselines/reference/systemNamespaceAliasEmit.js +++ b/tests/baselines/reference/systemNamespaceAliasEmit.js @@ -12,8 +12,8 @@ export {ns, AnEnum, ns as FooBar, AnEnum as BarEnum}; //// [systemNamespaceAliasEmit.js] System.register([], function (exports_1, context_1) { - var ns, AnEnum; "use strict"; + var ns, AnEnum; var __moduleName = context_1 && context_1.id; return { setters: [], diff --git a/tests/baselines/reference/systemObjectShorthandRename.js b/tests/baselines/reference/systemObjectShorthandRename.js index 10cdb098c02..1b679ef707d 100644 --- a/tests/baselines/reference/systemObjectShorthandRename.js +++ b/tests/baselines/reference/systemObjectShorthandRename.js @@ -13,8 +13,8 @@ const b = {x3} //// [x.js] System.register([], function (exports_1, context_1) { - var x; "use strict"; + var x; var __moduleName = context_1 && context_1.id; return { setters: [], @@ -25,8 +25,8 @@ System.register([], function (exports_1, context_1) { }); //// [index.js] System.register(["./x.js"], function (exports_1, context_1) { - var x_js_1, x2, a, x3, b; "use strict"; + var x_js_1, x2, a, x3, b; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.js b/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.js index 9927f8e2b53..ff5c79971ca 100644 --- a/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.js +++ b/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.js @@ -1,4 +1,5 @@ System.register(["angular2/core"], function (exports_1, context_1) { + "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -9,7 +10,6 @@ System.register(["angular2/core"], function (exports_1, context_1) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var ng, MyClass1; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.oldTranspile.js b/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.oldTranspile.js index 9927f8e2b53..ff5c79971ca 100644 --- a/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.oldTranspile.js +++ b/tests/baselines/reference/transpile/Correctly serialize metadata when transpile with System option.oldTranspile.js @@ -1,4 +1,5 @@ System.register(["angular2/core"], function (exports_1, context_1) { + "use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); @@ -9,7 +10,6 @@ System.register(["angular2/core"], function (exports_1, context_1) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var ng, MyClass1; - "use strict"; var __moduleName = context_1 && context_1.id; return { setters: [ diff --git a/tests/baselines/reference/transpile/Rename dependencies - System.js b/tests/baselines/reference/transpile/Rename dependencies - System.js index 93f68a21afa..1b7773afc72 100644 --- a/tests/baselines/reference/transpile/Rename dependencies - System.js +++ b/tests/baselines/reference/transpile/Rename dependencies - System.js @@ -1,6 +1,6 @@ System.register(["SomeOtherName"], function (exports_1, context_1) { - var SomeName_1; "use strict"; + var SomeName_1; var __moduleName = context_1 && context_1.id; return { setters: [ From 51058b56e55350f79ac8929e082c1b98e6551359 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Thu, 24 May 2018 13:18:21 -0700 Subject: [PATCH 10/21] Do not trigger invalidation if emitted file is in declarationDir --- src/compiler/program.ts | 9 ++- src/harness/unittests/tscWatchMode.ts | 71 ++++++++++++------- .../unittests/tsserverProjectSystem.ts | 4 +- 3 files changed, 54 insertions(+), 30 deletions(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index af404ba57ad..4dfb9039ccf 100755 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -2667,6 +2667,11 @@ namespace ts { return isSameFile(filePath, out) || isSameFile(filePath, removeFileExtension(out) + Extension.Dts); } + // If declarationDir is specified, return if its a file in that directory + if (options.declarationDir && containsPath(options.declarationDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames())) { + return true; + } + // If --outDir, check if file is in that directory if (options.outDir) { return containsPath(options.outDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames()); @@ -2675,8 +2680,8 @@ namespace ts { if (fileExtensionIsOneOf(filePath, supportedJavascriptExtensions) || fileExtensionIs(filePath, Extension.Dts)) { // Otherwise just check if sourceFile with the name exists const filePathWithoutExtension = removeFileExtension(filePath); - return !!getSourceFileByPath(combinePaths(filePathWithoutExtension, Extension.Ts) as Path) || - !!getSourceFileByPath(combinePaths(filePathWithoutExtension, Extension.Tsx) as Path); + return !!getSourceFileByPath((filePathWithoutExtension + Extension.Ts) as Path) || + !!getSourceFileByPath((filePathWithoutExtension + Extension.Tsx) as Path); } return false; } diff --git a/src/harness/unittests/tscWatchMode.ts b/src/harness/unittests/tscWatchMode.ts index f2ef80ce515..44b6c8ea887 100644 --- a/src/harness/unittests/tscWatchMode.ts +++ b/src/harness/unittests/tscWatchMode.ts @@ -1116,34 +1116,53 @@ namespace ts.tscWatch { assert.equal(nowErrors[1].start, intialErrors[1].start! - configFileContentComment.length); }); - it("should not trigger recompilation because of program emit", () => { - const proj = "/user/username/projects/myproject"; - const file1: File = { - path: `${proj}/file1.ts`, - content: "export const c = 30;" - }; - const file2: File = { - path: `${proj}/src/file2.ts`, - content: `import {c} from "file1"; export const d = 30;` - }; - const tsconfig: File = { - path: `${proj}/tsconfig.json`, - content: JSON.stringify({ - compilerOptions: { - module: "amd", - outDir: "build" - } - }) - }; - const host = createWatchedSystem([file1, file2, libFile, tsconfig], { currentDirectory: proj }); - const watch = createWatchOfConfigFile(tsconfig.path, host, /*maxNumberOfFilesToIterateForInvalidation*/1); - checkProgramActualFiles(watch(), [file1.path, file2.path, libFile.path]); + describe("should not trigger should not trigger recompilation because of program emit", () => { + function verifyWithOptions(options: CompilerOptions, outputFiles: ReadonlyArray) { + const proj = "/user/username/projects/myproject"; + const file1: File = { + path: `${proj}/file1.ts`, + content: "export const c = 30;" + }; + const file2: File = { + path: `${proj}/src/file2.ts`, + content: `import {c} from "file1"; export const d = 30;` + }; + const tsconfig: File = { + path: `${proj}/tsconfig.json`, + content: generateTSConfig(options, emptyArray, "\n") + }; + const host = createWatchedSystem([file1, file2, libFile, tsconfig], { currentDirectory: proj }); + const watch = createWatchOfConfigFile(tsconfig.path, host, /*maxNumberOfFilesToIterateForInvalidation*/1); + checkProgramActualFiles(watch(), [file1.path, file2.path, libFile.path]); - assert.isTrue(host.fileExists("build/file1.js")); - assert.isTrue(host.fileExists("build/src/file2.js")); + outputFiles.forEach(f => host.fileExists(f)); - // This should be 0 - host.checkTimeoutQueueLengthAndRun(0); + // This should be 0 + host.checkTimeoutQueueLengthAndRun(0); + } + + it("without outDir or outFile is specified", () => { + debugger; + verifyWithOptions({ module: ModuleKind.AMD }, ["file1.js", "src/file2.js"]); + }); + + it("with outFile", () => { + verifyWithOptions({ module: ModuleKind.AMD, outFile: "build/outFile.js" }, ["build/outFile.js"]); + }); + + it("when outDir is specified", () => { + verifyWithOptions({ module: ModuleKind.AMD, outDir: "build" }, ["build/file1.js", "build/src/file2.js"]); + }); + + it("when outDir and declarationDir is specified", () => { + verifyWithOptions({ module: ModuleKind.AMD, outDir: "build", declaration: true, declarationDir: "decls" }, + ["build/file1.js", "build/src/file2.js", "decls/file1.d.ts", "decls/src/file2.d.ts"]); + }); + + it("declarationDir is specified", () => { + verifyWithOptions({ module: ModuleKind.AMD, declaration: true, declarationDir: "decls" }, + ["file1.js", "src/file2.js", "decls/file1.d.ts", "decls/src/file2.d.ts"]); + }); }); it("shouldnt report error about unused function incorrectly when file changes from global to module", () => { diff --git a/src/harness/unittests/tsserverProjectSystem.ts b/src/harness/unittests/tsserverProjectSystem.ts index 28a8bdb114a..f6efe8b99dd 100644 --- a/src/harness/unittests/tsserverProjectSystem.ts +++ b/src/harness/unittests/tsserverProjectSystem.ts @@ -8314,7 +8314,7 @@ new C();` }); }); - describe("watchDirectories implementation", () => { + describe("tsserverProjectSystem watchDirectories implementation", () => { function verifyCompletionListWithNewFileInSubFolder(tscWatchDirectory: TestFSWithWatch.Tsc_WatchDirectory) { const projectFolder = "/a/username/project"; const projectSrcFolder = `${projectFolder}/src`; @@ -8422,7 +8422,7 @@ new C();` }); }); - describe("document registry in project service", () => { + describe("tsserverProjectSystem document registry in project service", () => { const projectRootPath = "/user/username/projects/project"; const importModuleContent = `import {a} from "./module1"`; const file: File = { From 13734e7d68bdcbacf85623318331ef188a2ea1fc Mon Sep 17 00:00:00 2001 From: Elizabeth Dinella Date: Thu, 24 May 2018 14:12:13 -0700 Subject: [PATCH 11/21] Fix for issue #6154 - overriding methods with properties in the derived class (#24343) * Fix to issue 6154 - Overriding a method with a property in the derived class should not cause a compiler error * new baselines * fixed deleted baselines --- src/compiler/checker.ts | 2 +- .../checkJsFiles_noErrorLocation.errors.txt | 25 ------------- ...eMemberAccessorOverridingMethod.errors.txt | 36 ------------------ ...heritanceMemberAccessorOverridingMethod.js | 8 ++-- ...anceMemberAccessorOverridingMethod.symbols | 6 +-- ...itanceMemberAccessorOverridingMethod.types | 13 ++++--- ...eMemberPropertyOverridingMethod.errors.txt | 15 -------- .../reference/propertyOverridingPrototype.js | 37 +++++++++++++++++++ .../propertyOverridingPrototype.symbols | 18 +++++++++ .../propertyOverridingPrototype.types | 18 +++++++++ ...heritanceMemberAccessorOverridingMethod.ts | 7 ++-- .../compiler/propertyOverridingPrototype.ts | 9 +++++ 12 files changed, 101 insertions(+), 93 deletions(-) delete mode 100644 tests/baselines/reference/checkJsFiles_noErrorLocation.errors.txt delete mode 100644 tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt delete mode 100644 tests/baselines/reference/inheritanceMemberPropertyOverridingMethod.errors.txt create mode 100644 tests/baselines/reference/propertyOverridingPrototype.js create mode 100644 tests/baselines/reference/propertyOverridingPrototype.symbols create mode 100644 tests/baselines/reference/propertyOverridingPrototype.types create mode 100644 tests/cases/compiler/propertyOverridingPrototype.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fb1f62ddaf5..ceb1cdd581d 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -24489,7 +24489,7 @@ namespace ts { continue; } - if (isPrototypeProperty(base) && isPrototypeProperty(derived) || base.flags & SymbolFlags.PropertyOrAccessor && derived.flags & SymbolFlags.PropertyOrAccessor) { + if (isPrototypeProperty(base) || base.flags & SymbolFlags.PropertyOrAccessor && derived.flags & SymbolFlags.PropertyOrAccessor) { // method is overridden with method or property/accessor is overridden with property/accessor - correct case continue; } diff --git a/tests/baselines/reference/checkJsFiles_noErrorLocation.errors.txt b/tests/baselines/reference/checkJsFiles_noErrorLocation.errors.txt deleted file mode 100644 index d9104608284..00000000000 --- a/tests/baselines/reference/checkJsFiles_noErrorLocation.errors.txt +++ /dev/null @@ -1,25 +0,0 @@ -tests/cases/compiler/a.js(14,10): error TS2424: Class 'A' defines instance member function 'foo', but extended class 'B' defines it as instance member property. - - -==== tests/cases/compiler/a.js (1 errors) ==== - // @ts-check - class A { - constructor() { - - } - foo() { - return 4; - } - } - - class B extends A { - constructor() { - super(); - this.foo = () => 3; - ~~~ -!!! error TS2424: Class 'A' defines instance member function 'foo', but extended class 'B' defines it as instance member property. - } - } - - const i = new B(); - i.foo(); \ No newline at end of file diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt deleted file mode 100644 index 66d955324c8..00000000000 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.errors.txt +++ /dev/null @@ -1,36 +0,0 @@ -tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS2416: Property 'x' in type 'b' is not assignable to the same property in base type 'a'. - Type 'string' is not assignable to type '() => string'. -tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(8,9): error TS2423: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member accessor. -tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. -tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts(11,9): error TS2416: Property 'x' in type 'b' is not assignable to the same property in base type 'a'. - Type 'string' is not assignable to type '() => string'. - - -==== tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts (5 errors) ==== - class a { - x() { - return "20"; - } - } - - class b extends a { - get x() { - ~ -!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. - ~ -!!! error TS2416: Property 'x' in type 'b' is not assignable to the same property in base type 'a'. -!!! error TS2416: Type 'string' is not assignable to type '() => string'. - ~ -!!! error TS2423: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member accessor. - return "20"; - } - set x(aValue: string) { - ~ -!!! error TS1056: Accessors are only available when targeting ECMAScript 5 and higher. - ~ -!!! error TS2416: Property 'x' in type 'b' is not assignable to the same property in base type 'a'. -!!! error TS2416: Type 'string' is not assignable to type '() => string'. - - } - } \ No newline at end of file diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.js b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.js index bf309a97573..9f4133c897b 100644 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.js +++ b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.js @@ -7,10 +7,10 @@ class a { class b extends a { get x() { - return "20"; + return () => "20"; } - set x(aValue: string) { - + set x(aValue) { + } } @@ -40,7 +40,7 @@ var b = /** @class */ (function (_super) { } Object.defineProperty(b.prototype, "x", { get: function () { - return "20"; + return function () { return "20"; }; }, set: function (aValue) { }, diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.symbols b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.symbols index aecf2b9a020..8b308f2db7b 100644 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.symbols +++ b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.symbols @@ -16,11 +16,11 @@ class b extends a { get x() { >x : Symbol(b.x, Decl(inheritanceMemberAccessorOverridingMethod.ts, 6, 19), Decl(inheritanceMemberAccessorOverridingMethod.ts, 9, 5)) - return "20"; + return () => "20"; } - set x(aValue: string) { + set x(aValue) { >x : Symbol(b.x, Decl(inheritanceMemberAccessorOverridingMethod.ts, 6, 19), Decl(inheritanceMemberAccessorOverridingMethod.ts, 9, 5)) >aValue : Symbol(aValue, Decl(inheritanceMemberAccessorOverridingMethod.ts, 10, 10)) - + } } diff --git a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.types b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.types index 5078acf884b..e1c29c86f40 100644 --- a/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.types +++ b/tests/baselines/reference/inheritanceMemberAccessorOverridingMethod.types @@ -15,14 +15,15 @@ class b extends a { >a : a get x() { ->x : string +>x : () => string - return "20"; + return () => "20"; +>() => "20" : () => string >"20" : "20" } - set x(aValue: string) { ->x : string ->aValue : string - + set x(aValue) { +>x : () => string +>aValue : () => string + } } diff --git a/tests/baselines/reference/inheritanceMemberPropertyOverridingMethod.errors.txt b/tests/baselines/reference/inheritanceMemberPropertyOverridingMethod.errors.txt deleted file mode 100644 index 2b56866b22b..00000000000 --- a/tests/baselines/reference/inheritanceMemberPropertyOverridingMethod.errors.txt +++ /dev/null @@ -1,15 +0,0 @@ -tests/cases/compiler/inheritanceMemberPropertyOverridingMethod.ts(8,5): error TS2424: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member property. - - -==== tests/cases/compiler/inheritanceMemberPropertyOverridingMethod.ts (1 errors) ==== - class a { - x() { - return "20"; - } - } - - class b extends a { - x: () => string; - ~ -!!! error TS2424: Class 'a' defines instance member function 'x', but extended class 'b' defines it as instance member property. - } \ No newline at end of file diff --git a/tests/baselines/reference/propertyOverridingPrototype.js b/tests/baselines/reference/propertyOverridingPrototype.js new file mode 100644 index 00000000000..47dc9ed5b70 --- /dev/null +++ b/tests/baselines/reference/propertyOverridingPrototype.js @@ -0,0 +1,37 @@ +//// [propertyOverridingPrototype.ts] +class Base { + foo() { + } +} + +class Derived extends Base { + foo: () => { }; +} + + + +//// [propertyOverridingPrototype.js] +var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var Base = /** @class */ (function () { + function Base() { + } + Base.prototype.foo = function () { + }; + return Base; +}()); +var Derived = /** @class */ (function (_super) { + __extends(Derived, _super); + function Derived() { + return _super !== null && _super.apply(this, arguments) || this; + } + return Derived; +}(Base)); diff --git a/tests/baselines/reference/propertyOverridingPrototype.symbols b/tests/baselines/reference/propertyOverridingPrototype.symbols new file mode 100644 index 00000000000..a8a39dc227c --- /dev/null +++ b/tests/baselines/reference/propertyOverridingPrototype.symbols @@ -0,0 +1,18 @@ +=== tests/cases/compiler/propertyOverridingPrototype.ts === +class Base { +>Base : Symbol(Base, Decl(propertyOverridingPrototype.ts, 0, 0)) + + foo() { +>foo : Symbol(Base.foo, Decl(propertyOverridingPrototype.ts, 0, 12)) + } +} + +class Derived extends Base { +>Derived : Symbol(Derived, Decl(propertyOverridingPrototype.ts, 3, 1)) +>Base : Symbol(Base, Decl(propertyOverridingPrototype.ts, 0, 0)) + + foo: () => { }; +>foo : Symbol(Derived.foo, Decl(propertyOverridingPrototype.ts, 5, 28)) +} + + diff --git a/tests/baselines/reference/propertyOverridingPrototype.types b/tests/baselines/reference/propertyOverridingPrototype.types new file mode 100644 index 00000000000..2f68d9bdf79 --- /dev/null +++ b/tests/baselines/reference/propertyOverridingPrototype.types @@ -0,0 +1,18 @@ +=== tests/cases/compiler/propertyOverridingPrototype.ts === +class Base { +>Base : Base + + foo() { +>foo : () => void + } +} + +class Derived extends Base { +>Derived : Derived +>Base : Base + + foo: () => { }; +>foo : () => {} +} + + diff --git a/tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts b/tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts index 3165e30ee29..5684276beb2 100644 --- a/tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts +++ b/tests/cases/compiler/inheritanceMemberAccessorOverridingMethod.ts @@ -1,3 +1,4 @@ +// @target: es5 class a { x() { return "20"; @@ -6,9 +7,9 @@ class a { class b extends a { get x() { - return "20"; + return () => "20"; } - set x(aValue: string) { - + set x(aValue) { + } } \ No newline at end of file diff --git a/tests/cases/compiler/propertyOverridingPrototype.ts b/tests/cases/compiler/propertyOverridingPrototype.ts new file mode 100644 index 00000000000..06ca94c49c3 --- /dev/null +++ b/tests/cases/compiler/propertyOverridingPrototype.ts @@ -0,0 +1,9 @@ +class Base { + foo() { + } +} + +class Derived extends Base { + foo: () => { }; +} + From b745ea059e9b36aa23983184faebeb5fbdf52a4f Mon Sep 17 00:00:00 2001 From: Elizabeth Dinella Date: Thu, 24 May 2018 14:12:33 -0700 Subject: [PATCH 12/21] Fix to issue 23326 for completions on new.target (#24342) * Fix to issue 23326 for completions on new.target * Fixed linting issues - whitespace in if statements * Removed debug statement in test case and consolidated and cleaned up code in switch statement for completions * Added support for import.meta completion --- src/services/completions.ts | 7 +++++++ tests/cases/fourslash/completionImportMeta.ts | 6 ++++++ tests/cases/fourslash/completionsNewTarget.ts | 10 ++++++++++ 3 files changed, 23 insertions(+) create mode 100644 tests/cases/fourslash/completionImportMeta.ts create mode 100644 tests/cases/fourslash/completionsNewTarget.ts diff --git a/src/services/completions.ts b/src/services/completions.ts index 56833298a64..45317be065e 100644 --- a/src/services/completions.ts +++ b/src/services/completions.ts @@ -895,6 +895,7 @@ namespace ts.Completions { node = (parent as QualifiedName).left; break; case SyntaxKind.ImportType: + case SyntaxKind.MetaProperty: node = parent; break; default: @@ -1061,6 +1062,12 @@ namespace ts.Completions { } } + if (isMetaProperty(node) && (node.keywordToken === SyntaxKind.NewKeyword || node.keywordToken === SyntaxKind.ImportKeyword)) { + const completion = (node.keywordToken === SyntaxKind.NewKeyword) ? "target" : "meta"; + symbols.push(typeChecker.createSymbol(SymbolFlags.Property, escapeLeadingUnderscores(completion))); + return; + } + if (!isTypeLocation) { addTypeProperties(typeChecker.getTypeAtLocation(node)!); } diff --git a/tests/cases/fourslash/completionImportMeta.ts b/tests/cases/fourslash/completionImportMeta.ts new file mode 100644 index 00000000000..cac84c2c82f --- /dev/null +++ b/tests/cases/fourslash/completionImportMeta.ts @@ -0,0 +1,6 @@ +/// + +////import./**/ + +goTo.marker(""); +verify.completionListContains("meta"); \ No newline at end of file diff --git a/tests/cases/fourslash/completionsNewTarget.ts b/tests/cases/fourslash/completionsNewTarget.ts new file mode 100644 index 00000000000..3f8a4d689cc --- /dev/null +++ b/tests/cases/fourslash/completionsNewTarget.ts @@ -0,0 +1,10 @@ +/// + +////class C { +//// constructor() { +//// if (C === new./**/) +//// } +////} + +goTo.marker(""); +verify.completionListContains("target"); \ No newline at end of file From 3502d3505769e6d451af9bd0182c28a0efab956f Mon Sep 17 00:00:00 2001 From: csigs Date: Thu, 24 May 2018 22:10:36 +0000 Subject: [PATCH 13/21] LEGO: check in for master to temporary branch. --- .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl index 4f11a5ceaf9..34419b903c1 100644 --- a/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/ita/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1008,6 +1008,15 @@ + + + + + + + + + @@ -1125,6 +1134,15 @@ + + + + + + + + + @@ -2538,6 +2556,12 @@ + + + + + + @@ -6564,6 +6588,15 @@ + + + + + + + + + @@ -6603,6 +6636,24 @@ + + + + + + + + + + + + + + + + + + From e250942d6a9d396396f4135337ade00d3915a36f Mon Sep 17 00:00:00 2001 From: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com> Date: Thu, 24 May 2018 15:11:33 -0700 Subject: [PATCH 14/21] Disallow nested object param syntax in callback tag (#24392) * Callback tag:Disallow nested-object-param syntax Previously this caused a crash in parsing. If/when we want to support this syntax, we will need to fix this crash. * Update baselines --- src/compiler/parser.ts | 2 +- tests/baselines/reference/callbackTagNamespace.symbols | 4 ++-- tests/baselines/reference/callbackTagNamespace.types | 10 +++++----- tests/cases/conformance/jsdoc/callbackTagNamespace.ts | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index cd89248144b..03a89343045 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -6707,7 +6707,7 @@ namespace ts { createNode(SyntaxKind.JSDocParameterTag, atToken.pos); let comment: string | undefined; if (indent !== undefined) comment = parseTagComments(indent + scanner.getStartPos() - atToken.pos); - const nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target); + const nestedTypeLiteral = target !== PropertyLikeParse.CallbackParameter && parseNestedTypeLiteral(typeExpression, name, target); if (nestedTypeLiteral) { typeExpression = nestedTypeLiteral; isNameFirst = true; diff --git a/tests/baselines/reference/callbackTagNamespace.symbols b/tests/baselines/reference/callbackTagNamespace.symbols index b8cf7d95886..1723fab71c3 100644 --- a/tests/baselines/reference/callbackTagNamespace.symbols +++ b/tests/baselines/reference/callbackTagNamespace.symbols @@ -1,8 +1,8 @@ === tests/cases/conformance/jsdoc/namespaced.js === /** * @callback NS.Nested.Inner - * @param {string} space - spaaaaaaaaace - * @param {string} peace - peaaaaaaaaace + * @param {Object} space - spaaaaaaaaace + * @param {Object} peace - peaaaaaaaaace * @return {string | number} */ var x = 1; diff --git a/tests/baselines/reference/callbackTagNamespace.types b/tests/baselines/reference/callbackTagNamespace.types index 0435320795d..8bca9a56a5c 100644 --- a/tests/baselines/reference/callbackTagNamespace.types +++ b/tests/baselines/reference/callbackTagNamespace.types @@ -1,8 +1,8 @@ === tests/cases/conformance/jsdoc/namespaced.js === /** * @callback NS.Nested.Inner - * @param {string} space - spaaaaaaaaace - * @param {string} peace - peaaaaaaaaace + * @param {Object} space - spaaaaaaaaace + * @param {Object} peace - peaaaaaaaaace * @return {string | number} */ var x = 1; @@ -11,9 +11,9 @@ var x = 1; /** @type {NS.Nested.Inner} */ function f(space, peace) { ->f : (space: string, peace: string) => string ->space : string ->peace : string +>f : (space: any, peace: any) => string +>space : any +>peace : any return '1' >'1' : "1" diff --git a/tests/cases/conformance/jsdoc/callbackTagNamespace.ts b/tests/cases/conformance/jsdoc/callbackTagNamespace.ts index ba331e79fc4..54d363f31dc 100644 --- a/tests/cases/conformance/jsdoc/callbackTagNamespace.ts +++ b/tests/cases/conformance/jsdoc/callbackTagNamespace.ts @@ -4,8 +4,8 @@ // @Filename: namespaced.js /** * @callback NS.Nested.Inner - * @param {string} space - spaaaaaaaaace - * @param {string} peace - peaaaaaaaaace + * @param {Object} space - spaaaaaaaaace + * @param {Object} peace - peaaaaaaaaace * @return {string | number} */ var x = 1; From 9761c0908d8c4141aae22a56204824a3229f3ec4 Mon Sep 17 00:00:00 2001 From: TypeScript Bot Date: Thu, 24 May 2018 15:19:34 -0700 Subject: [PATCH 15/21] Update user baselines (#24374) --- tests/baselines/reference/user/bluebird.log | 1 - .../user/chrome-devtools-frontend.log | 113 ++++++++-------- tests/baselines/reference/user/uglify-js.log | 122 +++++++++--------- 3 files changed, 117 insertions(+), 119 deletions(-) diff --git a/tests/baselines/reference/user/bluebird.log b/tests/baselines/reference/user/bluebird.log index 8709b46fab0..9a9a1d20bff 100644 --- a/tests/baselines/reference/user/bluebird.log +++ b/tests/baselines/reference/user/bluebird.log @@ -156,7 +156,6 @@ node_modules/bluebird/js/release/using.js(78,20): error TS2339: Property 'doDisp node_modules/bluebird/js/release/using.js(97,23): error TS2339: Property 'data' does not exist on type 'FunctionDisposer'. node_modules/bluebird/js/release/using.js(223,15): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature. node_modules/bluebird/js/release/util.js(97,5): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((o: any, p: string | number | symbol, attributes: PropertyDescriptor & ThisType) => any) | ...' has no compatible call signatures. -node_modules/bluebird/js/release/util.js(201,5): error TS7027: Unreachable code detected. node_modules/bluebird/js/release/util.js(247,28): error TS2554: Expected 0 arguments, but got 2. node_modules/bluebird/js/release/util.js(275,17): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((o: any, p: string | number | symbol, attributes: PropertyDescriptor & ThisType) => any) | ...' has no compatible call signatures. node_modules/bluebird/js/release/util.js(275,45): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type '((o: any, p: string | number | symbol) => PropertyDescriptor | undefined) | ((o: any, key: any) =...' has no compatible call signatures. diff --git a/tests/baselines/reference/user/chrome-devtools-frontend.log b/tests/baselines/reference/user/chrome-devtools-frontend.log index dc54ce92c73..af2c17426e3 100644 --- a/tests/baselines/reference/user/chrome-devtools-frontend.log +++ b/tests/baselines/reference/user/chrome-devtools-frontend.log @@ -3155,7 +3155,6 @@ node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighth node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(68209,38): error TS2339: Property 'componentsOrder' does not exist on type '{}'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(68212,26): error TS2339: Property 'maxH' does not exist on type '{}'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(68213,26): error TS2339: Property 'maxV' does not exist on type '{}'. -node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(69112,1): error TS7027: Unreachable code detected. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(69799,1): error TS2323: Cannot redeclare exported variable 'parse'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(70747,4): error TS2531: Object is possibly 'null'. node_modules/chrome-devtools-frontend/front_end/audits2_worker/lighthouse/lighthouse-background.js(70747,26): error TS2531: Object is possibly 'null'. @@ -3244,9 +3243,9 @@ node_modules/chrome-devtools-frontend/front_end/bindings/CompilerScriptMapping.j node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(39,25): error TS2694: Namespace 'Workspace' has no exported member 'projectTypes'. node_modules/chrome-devtools-frontend/front_end/bindings/ContentProviderBasedProject.js(180,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(51,31): error TS2339: Property 'remove' does not exist on type 'Map'. -node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(85,5): error TS2322: Type 'StackTraceTopFrameLocation' is not assignable to type '{ [x: string]: any; update(): void; uiLocation(): UILocation; dispose(): void; isBlackboxed(): bo...'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(85,5): error TS2322: Type 'StackTraceTopFrameLocation' is not assignable to type '{ [x: string]: any; update(): void; uiLocation(): UILocation; dispose(): void; isBlackboxed(): bo...'. Property '_updateScheduled' does not exist on type '{ [x: string]: any; update(): void; uiLocation(): UILocation; dispose(): void; isBlackboxed(): bo...'. +node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(85,5): error TS2322: Type 'StackTraceTopFrameLocation' is not assignable to type '{ [x: string]: any; update(): void; uiLocation(): UILocation; dispose(): void; isBlackboxed(): bo...'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(195,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(207,34): error TS2339: Property 'valuesArray' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/bindings/DebuggerWorkspaceBinding.js(230,22): error TS2694: Namespace 'Common' has no exported member 'Event'. @@ -4220,9 +4219,9 @@ node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(232,15): node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(232,51): error TS2339: Property 'ConsoleView' does not exist on type '{ new (): Console; prototype: Console; }'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(233,20): error TS2339: Property 'ConsoleView' does not exist on type '{ new (): Console; prototype: Console; }'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(241,76): error TS2339: Property 'ConsoleFilter' does not exist on type '{ new (): Console; prototype: Console; }'. -node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(287,5): error TS2322: Type 'ConsoleViewMessage' is not assignable to type '{ [x: string]: any; willHide(): void; wasShown(): void; element(): Element; }'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(287,5): error TS2322: Type 'ConsoleViewMessage' is not assignable to type '{ [x: string]: any; willHide(): void; wasShown(): void; element(): Element; }'. Property '_message' does not exist on type '{ [x: string]: any; willHide(): void; wasShown(): void; element(): Element; }'. +node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(287,5): error TS2322: Type 'ConsoleViewMessage' is not assignable to type '{ [x: string]: any; willHide(): void; wasShown(): void; element(): Element; }'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(312,24): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(326,12): error TS2678: Type 'string' is not comparable to type '{ [x: string]: any; Info: string; Warning: string; Error: string; }'. node_modules/chrome-devtools-frontend/front_end/console/ConsoleView.js(329,12): error TS2678: Type 'string' is not comparable to type '{ [x: string]: any; Info: string; Warning: string; Error: string; }'. @@ -5075,10 +5074,10 @@ node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(25 node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(257,47): error TS2339: Property 'offsetHeight' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(272,1): error TS8022: JSDoc '@extends' is not attached to a class. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(320,22): error TS2352: Type 'NODE_TYPE' cannot be converted to type 'ViewportDataGridNode'. +node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(334,9): error TS2322: Type 'NODE_TYPE[][]' is not assignable to type 'ViewportDataGridNode[][]'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(334,9): error TS2322: Type 'NODE_TYPE[][]' is not assignable to type 'ViewportDataGridNode[][]'. Type 'NODE_TYPE[]' is not assignable to type 'ViewportDataGridNode[]'. Type 'NODE_TYPE' is not assignable to type 'ViewportDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(334,9): error TS2322: Type 'NODE_TYPE[][]' is not assignable to type 'ViewportDataGridNode[][]'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(363,15): error TS2339: Property 'parent' does not exist on type 'NODE_TYPE'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(372,11): error TS2339: Property 'remove' does not exist on type 'NODE_TYPE'. node_modules/chrome-devtools-frontend/front_end/data_grid/ViewportDataGrid.js(373,11): error TS2339: Property 'parent' does not exist on type 'NODE_TYPE'. @@ -5188,9 +5187,9 @@ node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(466,64): node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(469,36): error TS2694: Namespace 'Adb' has no exported member 'PortForwardingRule'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(470,5): error TS2322: Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. - Property 'renderItem' is missing in type 'ListWidget'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(470,5): error TS2322: Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. + Property 'renderItem' is missing in type 'ListWidget'. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(475,24): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(475,70): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/devices/DevicesView.js(478,43): error TS2694: Namespace 'Adb' has no exported member 'PortForwardingRule'. @@ -5498,9 +5497,9 @@ node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(20 node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(241,41): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(257,5): error TS2322: Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; }'. + Property 'item' is missing in type 'ToolbarToggle'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(257,5): error TS2322: Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; }'. - Property 'item' is missing in type 'ToolbarToggle'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(291,94): error TS2339: Property 'addAll' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(297,55): error TS2339: Property 'addAll' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/elements/ClassesPaneWidget.js(299,57): error TS2339: Property 'valuesArray' does not exist on type 'Set'. @@ -5531,10 +5530,10 @@ node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(3 node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(65,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(73,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(84,22): error TS2694: Namespace 'Common' has no exported member 'Event'. -node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(122,5): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(122,5): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. Type 'Map' is not assignable to type 'ComputedStyle'. Property 'node' is missing in type 'Map'. +node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleModel.js(122,5): error TS2322: Type 'Promise>' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(48,36): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(51,9): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/elements/ComputedStyleWidget.js(52,49): error TS2555: Expected at least 2 arguments, but got 1. @@ -5582,9 +5581,9 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget. node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(109,26): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(124,5): error TS2322: Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; }'. - Property 'item' is missing in type 'ToolbarToggle'. node_modules/chrome-devtools-frontend/front_end/elements/ElementStatePaneWidget.js(124,5): error TS2322: Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; }'. + Property 'item' is missing in type 'ToolbarToggle'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsBreadcrumbs.js(12,46): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsBreadcrumbs.js(86,37): error TS2339: Property 'nextSiblingElement' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsBreadcrumbs.js(104,16): error TS2555: Expected at least 2 arguments, but got 1. @@ -5764,10 +5763,10 @@ node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeElementHigh node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(34,32): error TS2417: Class static side 'typeof ElementsTreeOutline' incorrectly extends base class static side 'typeof TreeOutline'. Types of property 'Events' are incompatible. Type '{ [x: string]: any; SelectedNodeChanged: symbol; ElementsTreeUpdated: symbol; }' is not assignable to type '{ [x: string]: any; ElementAttached: symbol; ElementExpanded: symbol; ElementCollapsed: symbol; E...'. + Property 'ElementAttached' is missing in type '{ [x: string]: any; SelectedNodeChanged: symbol; ElementsTreeUpdated: symbol; }'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(34,32): error TS2417: Class static side 'typeof ElementsTreeOutline' incorrectly extends base class static side 'typeof TreeOutline'. Types of property 'Events' are incompatible. Type '{ [x: string]: any; SelectedNodeChanged: symbol; ElementsTreeUpdated: symbol; }' is not assignable to type '{ [x: string]: any; ElementAttached: symbol; ElementExpanded: symbol; ElementCollapsed: symbol; E...'. - Property 'ElementAttached' is missing in type '{ [x: string]: any; SelectedNodeChanged: symbol; ElementsTreeUpdated: symbol; }'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(45,53): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(49,51): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/elements/ElementsTreeOutline.js(120,24): error TS2694: Namespace 'Elements' has no exported member 'MultilineEditorController'. @@ -6194,9 +6193,9 @@ node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(142,44) node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(169,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(174,57): error TS2339: Property 'window' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(181,27): error TS2339: Property 'setInspectedPageBounds' does not exist on type 'typeof InspectorFrontendHost'. -node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(199,5): error TS2322: Type 'AdvancedApp' is not assignable to type '{ [x: string]: any; presentUI(document: Document): void; }'. node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(199,5): error TS2322: Type 'AdvancedApp' is not assignable to type '{ [x: string]: any; presentUI(document: Document): void; }'. Property '_rootSplitWidget' does not exist on type '{ [x: string]: any; presentUI(document: Document): void; }'. +node_modules/chrome-devtools-frontend/front_end/emulation/AdvancedApp.js(199,5): error TS2322: Type 'AdvancedApp' is not assignable to type '{ [x: string]: any; presentUI(document: Document): void; }'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(9,1): error TS8022: JSDoc '@extends' is not attached to a class. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(50,81): error TS2345: Argument of type 'symbol' is not assignable to parameter of type '{ [x: string]: any; Global: symbol; Local: symbol; Session: symbol; }'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeModel.js(52,43): error TS2694: Namespace 'DeviceModeModel' has no exported member 'Type'. @@ -6291,9 +6290,9 @@ node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(3 node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(316,20): error TS2365: Operator '===' cannot be applied to types '{ [x: string]: any; None: string; Responsive: string; Device: string; }' and 'string'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(338,5): error TS2322: Type 'ToolbarItem' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarItem' is not assignable to type '{ [x: string]: any; item(): any & any; }'. + Property 'item' is missing in type 'ToolbarItem'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(338,5): error TS2322: Type 'ToolbarItem' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarItem' is not assignable to type '{ [x: string]: any; item(): any & any; }'. - Property 'item' is missing in type 'ToolbarItem'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(346,9): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ [x: string]: any; None: string; Responsive: string; Device: string; }'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(351,25): error TS2345: Argument of type 'string' is not assignable to parameter of type '{ [x: string]: any; None: string; Responsive: string; Device: string; }'. node_modules/chrome-devtools-frontend/front_end/emulation/DeviceModeToolbar.js(392,9): error TS2555: Expected at least 2 arguments, but got 1. @@ -7703,12 +7702,12 @@ node_modules/chrome-devtools-frontend/front_end/main/Main.js(201,14): error TS25 node_modules/chrome-devtools-frontend/front_end/main/Main.js(202,14): error TS2551: Property 'resourceMapping' does not exist on type 'typeof Bindings'. Did you mean 'ResourceMapping'? node_modules/chrome-devtools-frontend/front_end/main/Main.js(204,5): error TS2322: Type 'CSSWorkspaceBinding' is not assignable to type '{ [x: string]: any; rawLocationToUILocation(rawLocation: CSSLocation): UILocation; uiLocationToRa...'. Type 'CSSWorkspaceBinding' is not assignable to type '{ [x: string]: any; rawLocationToUILocation(rawLocation: CSSLocation): UILocation; uiLocationToRa...'. + Property '_workspace' does not exist on type '{ [x: string]: any; rawLocationToUILocation(rawLocation: CSSLocation): UILocation; uiLocationToRa...'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(204,5): error TS2322: Type 'CSSWorkspaceBinding' is not assignable to type '{ [x: string]: any; rawLocationToUILocation(rawLocation: CSSLocation): UILocation; uiLocationToRa...'. Type 'CSSWorkspaceBinding' is not assignable to type '{ [x: string]: any; rawLocationToUILocation(rawLocation: CSSLocation): UILocation; uiLocationToRa...'. - Property '_workspace' does not exist on type '{ [x: string]: any; rawLocationToUILocation(rawLocation: CSSLocation): UILocation; uiLocationToRa...'. -node_modules/chrome-devtools-frontend/front_end/main/Main.js(208,5): error TS2322: Type 'ExtensionServer' is not assignable to type 'typeof extensionServer'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(208,5): error TS2322: Type 'ExtensionServer' is not assignable to type 'typeof extensionServer'. Property '_extensionAPITestHook' is missing in type 'ExtensionServer'. +node_modules/chrome-devtools-frontend/front_end/main/Main.js(208,5): error TS2322: Type 'ExtensionServer' is not assignable to type 'typeof extensionServer'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(230,10): error TS2339: Property 'runtime' does not exist on type 'Window'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(256,27): error TS2339: Property 'loadCompleted' does not exist on type 'typeof InspectorFrontendHost'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(261,27): error TS2339: Property 'runtime' does not exist on type 'Window'. @@ -7745,9 +7744,9 @@ node_modules/chrome-devtools-frontend/front_end/main/Main.js(567,65): error TS23 node_modules/chrome-devtools-frontend/front_end/main/Main.js(591,25): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/main/Main.js(599,5): error TS2322: Type 'ToolbarMenuButton' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarMenuButton' is not assignable to type '{ [x: string]: any; item(): any & any; }'. - Property 'item' is missing in type 'ToolbarMenuButton'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(599,5): error TS2322: Type 'ToolbarMenuButton' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarMenuButton' is not assignable to type '{ [x: string]: any; item(): any & any; }'. + Property 'item' is missing in type 'ToolbarMenuButton'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(608,42): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/main/Main.js(609,34): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/main/Main.js(616,41): error TS2555: Expected at least 2 arguments, but got 1. @@ -7947,9 +7946,9 @@ node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(26,37 node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(28,51): error TS2694: Namespace 'NetworkManager' has no exported member 'BlockedPattern'. node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(29,5): error TS2322: Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. - Property 'renderItem' is missing in type 'ListWidget'. node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(29,5): error TS2322: Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. Type 'ListWidget' is not assignable to type '{ [x: string]: any; renderItem(item: T, editable: boolean): Element; removeItemRequested(item: T,...'. + Property 'renderItem' is missing in type 'ListWidget'. node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(35,58): error TS2694: Namespace 'NetworkManager' has no exported member 'BlockedPattern'. node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(52,39): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/network/BlockedURLsPane.js(53,47): error TS2555: Expected at least 2 arguments, but got 1. @@ -8140,10 +8139,10 @@ node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(766,59 node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(780,45): error TS2339: Property 'window' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(853,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(867,22): error TS2694: Namespace 'Common' has no exported member 'Event'. +node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(905,5): error TS2322: Type 'ViewportDataGridNode[]' is not assignable to type 'NetworkNode[]'. node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(905,5): error TS2322: Type 'ViewportDataGridNode[]' is not assignable to type 'NetworkNode[]'. Type 'ViewportDataGridNode' is not assignable to type 'NetworkNode'. Property '_parentView' is missing in type 'ViewportDataGridNode'. -node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(905,5): error TS2322: Type 'ViewportDataGridNode[]' is not assignable to type 'NetworkNode[]'. node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(916,20): error TS2339: Property 'window' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(938,41): error TS2339: Property 'firstValue' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/network/NetworkLogView.js(1074,22): error TS2694: Namespace 'Common' has no exported member 'Event'. @@ -8355,8 +8354,8 @@ node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(243,27): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(247,30): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(252,7): error TS2322: Type '{ left: any; right: string; }' is not assignable to type '{ left: string; right: string; tooltip: string; }'. - Property 'tooltip' is missing in type '{ left: any; right: string; }'. node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(252,7): error TS2322: Type '{ left: any; right: string; }' is not assignable to type '{ left: string; right: string; tooltip: string; }'. + Property 'tooltip' is missing in type '{ left: any; right: string; }'. node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(255,26): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(358,19): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/network/NetworkTimeCalculator.js(395,19): error TS2339: Property 'secondsToString' does not exist on type 'NumberConstructor'. @@ -9317,8 +9316,8 @@ node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileFlameChart.js node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(61,16): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(63,16): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(73,5): error TS2322: Type 'CPUFlameChartDataProvider' is not assignable to type '{ [x: string]: any; minimumBoundary(): number; totalTime(): number; formatValue(value: number, pr...'. - Property '_cpuProfile' does not exist on type '{ [x: string]: any; minimumBoundary(): number; totalTime(): number; formatValue(value: number, pr...'. node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(73,5): error TS2322: Type 'CPUFlameChartDataProvider' is not assignable to type '{ [x: string]: any; minimumBoundary(): number; totalTime(): number; formatValue(value: number, pr...'. + Property '_cpuProfile' does not exist on type '{ [x: string]: any; minimumBoundary(): number; totalTime(): number; formatValue(value: number, pr...'. node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(82,43): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(85,29): error TS2339: Property 'instance' does not exist on type 'typeof CPUProfileType'. node_modules/chrome-devtools-frontend/front_end/profiler/CPUProfileView.js(115,30): error TS2555: Expected at least 2 arguments, but got 1. @@ -9384,10 +9383,10 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapProfilerPanel.js(10 node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(34,41): error TS2417: Class static side 'typeof HeapSnapshotSortableDataGrid' incorrectly extends base class static side 'typeof DataGrid'. Types of property 'Events' are incompatible. Type '{ [x: string]: any; ContentShown: symbol; SortingComplete: symbol; }' is not assignable to type '{ [x: string]: any; SelectedNode: symbol; DeselectedNode: symbol; OpenedNode: symbol; SortingChan...'. - Property 'SelectedNode' is missing in type '{ [x: string]: any; ContentShown: symbol; SortingComplete: symbol; }'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(34,41): error TS2417: Class static side 'typeof HeapSnapshotSortableDataGrid' incorrectly extends base class static side 'typeof DataGrid'. Types of property 'Events' are incompatible. Type '{ [x: string]: any; ContentShown: symbol; SortingComplete: symbol; }' is not assignable to type '{ [x: string]: any; SelectedNode: symbol; DeselectedNode: symbol; OpenedNode: symbol; SortingChan...'. + Property 'SelectedNode' is missing in type '{ [x: string]: any; ContentShown: symbol; SortingComplete: symbol; }'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(37,41): error TS2694: Namespace 'DataGrid' has no exported member 'ColumnDescriptor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(124,27): error TS2339: Property 'enclosingNodeOrSelfWithNodeName' does not exist on type 'EventTarget'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotDataGrids.js(137,46): error TS2555: Expected at least 2 arguments, but got 1. @@ -9464,10 +9463,10 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.j node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(137,15): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(155,48): error TS2339: Property 'baseSystemDistance' does not exist on type 'typeof HeapSnapshotModel'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(156,95): error TS2555: Expected at least 2 arguments, but got 1. +node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(163,5): error TS2322: Type '({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; is...' is not assignable to type 'DataGridNode[]'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(163,5): error TS2322: Type '({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; is...' is not assignable to type 'DataGridNode[]'. Type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...' is not assignable to type 'DataGridNode'. Property '_element' is missing in type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(163,5): error TS2322: Type '({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; is...' is not assignable to type 'DataGridNode[]'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(170,39): error TS2345: Argument of type 'this' is not assignable to parameter of type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Type 'HeapSnapshotGridNode' is not assignable to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Type 'HeapSnapshotGridNode' is not assignable to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. @@ -9501,29 +9500,30 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.j node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(602,75): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(682,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotObjectNode' is not assignable to the same property in base type 'HeapSnapshotGenericObjectNode'. Type '() => HeapSnapshotProviderProxy' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. - Property '_worker' does not exist on type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(682,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotObjectNode' is not assignable to the same property in base type 'HeapSnapshotGenericObjectNode'. Type '() => HeapSnapshotProviderProxy' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. + Property '_worker' does not exist on type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(871,36): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(874,34): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(892,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotInstanceNode' is not assignable to the same property in base type 'HeapSnapshotGenericObjectNode'. Type '() => HeapSnapshotProviderProxy' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(892,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotInstanceNode' is not assignable to the same property in base type 'HeapSnapshotGenericObjectNode'. Type '() => HeapSnapshotProviderProxy' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(966,23): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(968,29): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(969,30): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(980,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotConstructorNode' is not assignable to the same property in base type 'HeapSnapshotGridNode'. Type '() => HeapSnapshotProviderProxy' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(980,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotConstructorNode' is not assignable to the same property in base type 'HeapSnapshotGridNode'. Type '() => HeapSnapshotProviderProxy' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(981,27): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1000,20): error TS2352: Type 'DataGridNode' cannot be converted to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Type 'DataGridNode' is not comparable to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Property 'dispose' is missing in type 'DataGridNode'. +node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1001,5): error TS2322: Type '(this | ({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; is...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1001,5): error TS2322: Type '(this | ({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; is...'. Type 'this | ({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Type 'this' is not assignable to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. @@ -9532,7 +9532,6 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.j Type 'this' is not assignable to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Type 'HeapSnapshotConstructorNode' is not assignable to type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. Property 'nodePosition' is missing in type 'HeapSnapshotConstructorNode'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1001,5): error TS2322: Type '(this | ({ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; is...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1019,14): error TS2339: Property '_searchMatched' does not exist on type 'HeapSnapshotConstructorNode'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1029,81): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1140,22): error TS2339: Property 'pushAll' does not exist on type 'any[]'. @@ -9544,10 +9543,10 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.j node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1183,65): error TS2339: Property 'withThousandsSeparator' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1191,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotDiffNode' is not assignable to the same property in base type 'HeapSnapshotGridNode'. Type '() => HeapSnapshotDiffNodesProvider' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. - Property '_addedNodesProvider' does not exist on type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1191,3): error TS2416: Property 'createProvider' in type 'HeapSnapshotDiffNode' is not assignable to the same property in base type 'HeapSnapshotGridNode'. Type '() => HeapSnapshotDiffNodesProvider' is not assignable to type '() => { [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. + Property '_addedNodesProvider' does not exist on type '{ [x: string]: any; dispose(): void; nodePosition(snapshotObjectId: number): Promise; isE...'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1194,14): error TS2339: Property 'snapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1194,53): error TS2339: Property 'baseSnapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotGridNodes.js(1195,14): error TS2339: Property 'baseSnapshot' does not exist on type 'HeapSnapshotSortableDataGrid'. @@ -9596,12 +9595,12 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(254 node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(256,17): error TS2345: Argument of type 'ToolbarText' is not assignable to parameter of type 'ToolbarComboBox | ToolbarInput'. Type 'ToolbarText' is not assignable to type 'ToolbarInput'. Property '_prompt' is missing in type 'ToolbarText'. +node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(257,5): error TS2322: Type '(ToolbarComboBox | ToolbarInput)[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(257,5): error TS2322: Type '(ToolbarComboBox | ToolbarInput)[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. Type 'ToolbarComboBox | ToolbarInput' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarComboBox' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarComboBox' is not assignable to type '{ [x: string]: any; item(): any & any; }'. Property 'item' is missing in type 'ToolbarComboBox'. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(257,5): error TS2322: Type '(ToolbarComboBox | ToolbarInput)[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(344,50): error TS2551: Property 'jumpBackwards' does not exist on type 'SearchConfig'. Did you mean 'jumpBackward'? node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(397,25): error TS2339: Property '_loadPromise' does not exist on type 'ProfileHeader'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(405,24): error TS2345: Argument of type 'SearchConfig' is not assignable to parameter of type 'SearchConfig'. @@ -9635,9 +9634,9 @@ node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(100 node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1011,12): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1015,12): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1038,26): error TS2555: Expected at least 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1042,5): error TS2322: Type 'ProfileHeader' is not assignable to type 'HeapProfileHeader'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1042,5): error TS2322: Type 'ProfileHeader' is not assignable to type 'HeapProfileHeader'. Property '_heapProfilerModel' is missing in type 'ProfileHeader'. +node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1042,5): error TS2322: Type 'ProfileHeader' is not assignable to type 'HeapProfileHeader'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1050,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1056,33): error TS2339: Property 'transferChunk' does not exist on type 'ProfileHeader'. node_modules/chrome-devtools-frontend/front_end/profiler/HeapSnapshotView.js(1060,22): error TS2694: Namespace 'Common' has no exported member 'Event'. @@ -9813,12 +9812,12 @@ node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(84,17): Type 'IteratorResult<(string | Element)[]>' is not assignable to type 'IteratorResult<[any, any]>'. Type '(string | Element)[]' is not assignable to type '[any, any]'. Property '0' is missing in type '(string | Element)[]'. -node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(127,5): error TS2322: Type '(ToolbarButton | ToolbarComboBox)[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(127,5): error TS2322: Type '(ToolbarButton | ToolbarComboBox)[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. Type 'ToolbarButton | ToolbarComboBox' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarButton' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarButton' is not assignable to type '{ [x: string]: any; item(): any & any; }'. Property 'item' is missing in type 'ToolbarButton'. +node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(127,5): error TS2322: Type '(ToolbarButton | ToolbarComboBox)[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(136,59): error TS2339: Property 'profile' does not exist on type 'ProfileView'. node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(136,78): error TS2339: Property 'adjustedTotal' does not exist on type 'ProfileView'. node_modules/chrome-devtools-frontend/front_end/profiler/ProfileView.js(147,59): error TS2339: Property 'profile' does not exist on type 'ProfileView'. @@ -10006,11 +10005,11 @@ node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsV node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(44,22): error TS2339: Property 'style' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(48,44): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(59,32): error TS2339: Property 'style' does not exist on type 'Element'. +node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(67,5): error TS2322: Type 'ToolbarItem[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(67,5): error TS2322: Type 'ToolbarItem[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. Type 'ToolbarItem' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarItem' is not assignable to type '{ [x: string]: any; item(): any & any; }'. Property 'item' is missing in type 'ToolbarItem'. -node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(67,5): error TS2322: Type 'ToolbarItem[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(117,22): error TS2339: Property 'type' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(131,30): error TS2339: Property 'type' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/resources/ApplicationCacheItemsView.js(132,44): error TS2555: Expected at least 2 arguments, but got 1. @@ -10394,8 +10393,8 @@ node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(107, node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(107,5): error TS2322: Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; }'. node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(121,5): error TS2322: Type 'ScreencastApp' is not assignable to type '{ [x: string]: any; presentUI(document: Document): void; }'. - Property '_enabledSetting' does not exist on type '{ [x: string]: any; presentUI(document: Document): void; }'. node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastApp.js(121,5): error TS2322: Type 'ScreencastApp' is not assignable to type '{ [x: string]: any; presentUI(document: Document): void; }'. + Property '_enabledSetting' does not exist on type '{ [x: string]: any; presentUI(document: Document): void; }'. node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(56,42): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(152,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. node_modules/chrome-devtools-frontend/front_end/screencast/ScreencastView.js(193,22): error TS2694: Namespace 'Common' has no exported member 'Event'. @@ -10913,8 +10912,8 @@ node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(65,5): err Type 'OverlayModel' is not assignable to type '{ [x: string]: any; highlightDOMNode(node: DOMNode, config: any, backendNodeId?: any, objectId?: ...'. Property '_domModel' does not exist on type '{ [x: string]: any; highlightDOMNode(node: DOMNode, config: any, backendNodeId?: any, objectId?: ...'. node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(148,5): error TS2322: Type '{ [x: string]: any; enabled: boolean; configuration: string; }' is not assignable to type '{ [x: string]: any; enabled: boolean; configuration: string; scriptId: string; }'. - Property 'scriptId' is missing in type '{ [x: string]: any; enabled: boolean; configuration: string; }'. node_modules/chrome-devtools-frontend/front_end/sdk/EmulationModel.js(148,5): error TS2322: Type '{ [x: string]: any; enabled: boolean; configuration: string; }' is not assignable to type '{ [x: string]: any; enabled: boolean; configuration: string; scriptId: string; }'. + Property 'scriptId' is missing in type '{ [x: string]: any; enabled: boolean; configuration: string; }'. node_modules/chrome-devtools-frontend/front_end/sdk/FilmStripModel.js(77,30): error TS2339: Property 'upperBound' does not exist on type 'Frame[]'. node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(10,12): error TS2339: Property 'registerHeapProfilerDispatcher' does not exist on type 'Target'. node_modules/chrome-devtools-frontend/front_end/sdk/HeapProfilerModel.js(12,38): error TS2339: Property 'heapProfilerAgent' does not exist on type 'Target'. @@ -11220,11 +11219,11 @@ node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(86,26): node_modules/chrome-devtools-frontend/front_end/sdk/ProfileTreeModel.js(93,15): error TS2339: Property 'depth' does not exist on type 'ProfileNode'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(32,2): error TS1003: Identifier expected. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(33,5): error TS2339: Property 'CallFunctionResult' does not exist on type 'typeof SDK'. +node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(45,5): error TS2322: Type 'LocalJSONObject' is not assignable to type 'RemoteObject'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(45,5): error TS2322: Type 'LocalJSONObject' is not assignable to type 'RemoteObject'. Types of property 'callFunctionJSON' are incompatible. Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => an...'. Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(45,5): error TS2322: Type 'LocalJSONObject' is not assignable to type 'RemoteObject'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(73,42): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(73,73): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(87,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. @@ -11280,9 +11279,9 @@ node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(718,33): err node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(728,32): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(731,3): error TS2416: Property 'callFunctionJSON' in type 'RemoteObjectImpl' is not assignable to the same property in base type 'RemoteObject'. Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => an...'. - Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(731,3): error TS2416: Property 'callFunctionJSON' in type 'RemoteObjectImpl' is not assignable to the same property in base type 'RemoteObject'. Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => an...'. + Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(741,52): error TS2339: Property 'Error' does not exist on type 'typeof Protocol'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(795,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(797,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. @@ -11301,10 +11300,10 @@ node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1179,3): err Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1234,21): error TS2694: Namespace 'SDK' has no exported member 'CallFunctionResult'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1265,21): error TS2694: Namespace 'SDK' has no exported member 'CallFunctionResult'. -node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1325,5): error TS2322: Type 'Promise<{ properties: RemoteObjectProperty[]; internalProperties: RemoteObjectProperty[]; }>' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1325,5): error TS2322: Type 'Promise<{ properties: RemoteObjectProperty[]; internalProperties: RemoteObjectProperty[]; }>' is not assignable to type 'Promise'. Type '{ properties: RemoteObjectProperty[]; internalProperties: RemoteObjectProperty[]; }' is not assignable to type 'RemoteObject'. Property 'customPreview' is missing in type '{ properties: RemoteObjectProperty[]; internalProperties: RemoteObjectProperty[]; }'. +node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1325,5): error TS2322: Type 'Promise<{ properties: RemoteObjectProperty[]; internalProperties: RemoteObjectProperty[]; }>' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1345,43): error TS2694: Namespace 'DebuggerModel' has no exported member 'FunctionDetails'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1352,45): error TS2694: Namespace 'DebuggerModel' has no exported member 'FunctionDetails'. node_modules/chrome-devtools-frontend/front_end/sdk/RemoteObject.js(1363,35): error TS2694: Namespace 'DebuggerModel' has no exported member 'FunctionDetails'. @@ -11366,17 +11365,17 @@ node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(96,39): erro node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(125,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(133,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(168,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. +node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(173,5): error TS2322: Type 'RemoteObjectImpl' is not assignable to type 'RemoteObject'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(173,5): error TS2322: Type 'RemoteObjectImpl' is not assignable to type 'RemoteObject'. Types of property 'callFunctionJSON' are incompatible. Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => an...'. Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(173,5): error TS2322: Type 'RemoteObjectImpl' is not assignable to type 'RemoteObject'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(179,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. -node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(184,5): error TS2322: Type 'ScopeRemoteObject' is not assignable to type 'RemoteObject'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(184,5): error TS2322: Type 'ScopeRemoteObject' is not assignable to type 'RemoteObject'. Types of property 'callFunctionJSON' are incompatible. Type '(functionDeclaration: (this: any) => any, args: any[], callback: (arg0: any) => any) => void' is not assignable to type '(functionDeclaration: (this: any, ...arg1: any[]) => T, args: any[], callback: (arg0: T) => an...'. Types of parameters 'functionDeclaration' and 'functionDeclaration' are incompatible. +node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(184,5): error TS2322: Type 'ScopeRemoteObject' is not assignable to type 'RemoteObject'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(199,40): error TS2339: Property 'Runtime' does not exist on type 'typeof Protocol'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(201,40): error TS2339: Property 'Runtime' does not exist on type 'typeof Protocol'. node_modules/chrome-devtools-frontend/front_end/sdk/RuntimeModel.js(203,40): error TS2339: Property 'Runtime' does not exist on type 'typeof Protocol'. @@ -11447,9 +11446,9 @@ node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(152,24 node_modules/chrome-devtools-frontend/front_end/sdk/ScreenCaptureModel.js(160,24): error TS2694: Namespace 'Protocol' has no exported member 'Page'. node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(39,24): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(143,52): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. -node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(159,5): error TS2322: Type 'StaticContentProvider' is not assignable to type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(159,5): error TS2322: Type 'StaticContentProvider' is not assignable to type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. Property '_contentURL' does not exist on type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. +node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(159,5): error TS2322: Type 'StaticContentProvider' is not assignable to type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(174,43): error TS2339: Property 'debuggerAgent' does not exist on type 'Target'. node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,33): error TS2694: Namespace 'Protocol' has no exported member 'Error'. node_modules/chrome-devtools-frontend/front_end/sdk/Script.js(190,50): error TS2694: Namespace 'Protocol' has no exported member 'Runtime'. @@ -11537,8 +11536,8 @@ node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(284,7): error T node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(284,7): error TS2322: Type 'StaticContentProvider' is not assignable to type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. Property '_contentURL' does not exist on type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(285,5): error TS2322: Type 'CompilerSourceMappingContentProvider' is not assignable to type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. - Property '_sourceURL' does not exist on type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(285,5): error TS2322: Type 'CompilerSourceMappingContentProvider' is not assignable to type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. + Property '_sourceURL' does not exist on type '{ [x: string]: any; contentURL(): string; contentType(): ResourceType; contentEncoded(): Promise<...'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(325,26): error TS2339: Property 'upperBound' does not exist on type 'SourceMapEntry[]'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(338,26): error TS2339: Property 'lowerBound' does not exist on type 'SourceMapEntry[]'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMap.js(339,25): error TS2339: Property 'upperBound' does not exist on type 'SourceMapEntry[]'. @@ -11557,9 +11556,9 @@ node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(86,42): node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(87,47): error TS2339: Property 'get' does not exist on type 'Multimap'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(141,45): error TS2339: Property 'has' does not exist on type 'Multimap'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(146,40): error TS2339: Property 'set' does not exist on type 'Multimap'. -node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(159,36): error TS2352: Type 'TextSourceMap' cannot be converted to type '{ [x: string]: any; compiledURL(): string; url(): string; sourceURLs(): string[]; sourceContentPr...'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(159,36): error TS2352: Type 'TextSourceMap' cannot be converted to type '{ [x: string]: any; compiledURL(): string; url(): string; sourceURLs(): string[]; sourceContentPr...'. Property '_json' does not exist on type '{ [x: string]: any; compiledURL(): string; url(): string; sourceURLs(): string[]; sourceContentPr...'. +node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(159,36): error TS2352: Type 'TextSourceMap' cannot be converted to type '{ [x: string]: any; compiledURL(): string; url(): string; sourceURLs(): string[]; sourceContentPr...'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(208,39): error TS2339: Property 'runtime' does not exist on type 'Window'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(210,31): error TS2339: Property 'containsAll' does not exist on type 'Set'. node_modules/chrome-devtools-frontend/front_end/sdk/SourceMapManager.js(227,38): error TS2339: Property 'hasValue' does not exist on type 'Multimap'. @@ -11629,9 +11628,9 @@ node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(530,24): er node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(555,29): error TS2339: Property 'bringToFront' does not exist on type 'typeof InspectorFrontendHost'. node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(581,24): error TS2694: Namespace 'Protocol' has no exported member 'TargetAgent'. node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(583,52): error TS2694: Namespace 'Connection' has no exported member 'Params'. -node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(589,5): error TS2322: Type 'ChildConnection' is not assignable to type '{ [x: string]: any; sendMessage(message: string): void; disconnect(): Promise; }'. node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(589,5): error TS2322: Type 'ChildConnection' is not assignable to type '{ [x: string]: any; sendMessage(message: string): void; disconnect(): Promise; }'. Property '_agent' does not exist on type '{ [x: string]: any; sendMessage(message: string): void; disconnect(): Promise; }'. +node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(589,5): error TS2322: Type 'ChildConnection' is not assignable to type '{ [x: string]: any; sendMessage(message: string): void; disconnect(): Promise; }'. node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(598,24): error TS2694: Namespace 'Protocol' has no exported member 'TargetAgent'. node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(600,52): error TS2694: Namespace 'Connection' has no exported member 'Params'. node_modules/chrome-devtools-frontend/front_end/sdk/TargetManager.js(672,1): error TS2322: Type 'TargetManager' is not assignable to type '{ [x: string]: any; targetAdded(target: Target): void; targetRemoved(target: Target): void; } & {...'. @@ -11649,10 +11648,10 @@ node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(133,42): err node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(179,34): error TS2694: Namespace 'TracingManager' has no exported member 'EventPayload'. node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(250,47): error TS2339: Property 'id' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(254,37): error TS2339: Property 'id' does not exist on type 'Event'. +node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(283,5): error TS2322: Type 'NamedObject[]' is not assignable to type 'Process[]'. node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(283,5): error TS2322: Type 'NamedObject[]' is not assignable to type 'Process[]'. Type 'NamedObject' is not assignable to type 'Process'. Property '_threads' is missing in type 'NamedObject'. -node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(283,5): error TS2322: Type 'NamedObject[]' is not assignable to type 'Process[]'. node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(283,65): error TS2339: Property 'valuesArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(305,23): error TS2339: Property 'stableSort' does not exist on type 'Event[]'. node_modules/chrome-devtools-frontend/front_end/sdk/TracingModel.js(308,49): error TS2345: Argument of type '{ [x: string]: any; Begin: string; End: string; Complete: string; Instant: string; AsyncBegin: st...' is not assignable to parameter of type 'string'. @@ -11956,11 +11955,11 @@ node_modules/chrome-devtools-frontend/front_end/snippets/ScriptSnippetModel.js(5 node_modules/chrome-devtools-frontend/front_end/snippets/SnippetStorage.js(62,27): error TS2339: Property 'valuesArray' does not exist on type 'Map'. node_modules/chrome-devtools-frontend/front_end/snippets/SnippetsQuickOpen.js(30,12): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(38,11): error TS2555: Expected at least 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(52,5): error TS2322: Type 'ToolbarText[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(52,5): error TS2322: Type 'ToolbarText[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. Type 'ToolbarText' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarText' is not assignable to type '{ [x: string]: any; item(): any & any; }'. Property 'item' is missing in type 'ToolbarText'. +node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(52,5): error TS2322: Type 'ToolbarText[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(62,16): error TS2339: Property 'sprintf' does not exist on type 'StringConstructor'. node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(78,21): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/source_frame/FontView.js(79,19): error TS2339: Property 'createTextChild' does not exist on type 'Element'. @@ -12559,9 +12558,9 @@ node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(153,62): node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(208,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(227,52): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(242,40): error TS2339: Property '_instance' does not exist on type 'typeof WrapperView'. -node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(257,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(257,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. Property 'appendApplicableItems' is missing in type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. +node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(257,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(277,20): error TS2339: Property 'window' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(289,22): error TS2694: Namespace 'Common' has no exported member 'Event'. node_modules/chrome-devtools-frontend/front_end/sources/SourcesPanel.js(313,27): error TS2339: Property 'bringToFront' does not exist on type 'typeof InspectorFrontendHost'. @@ -12801,11 +12800,11 @@ node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPan node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(15,46): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(16,38): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(21,44): error TS2555: Expected at least 2 arguments, but got 1. +node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(34,5): error TS2322: Type 'ToolbarButton[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(34,5): error TS2322: Type 'ToolbarButton[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. Type 'ToolbarButton' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarButton' is not assignable to type '{ [x: string]: any; item(): any & any; }'. Property 'item' is missing in type 'ToolbarButton'. -node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(34,5): error TS2322: Type 'ToolbarButton[]' is not assignable to type '({ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; })[]'. node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(39,45): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(47,41): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/sources/XHRBreakpointsSidebarPane.js(49,46): error TS2339: Property 'createChild' does not exist on type 'Element'. @@ -13446,10 +13445,10 @@ node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.j node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(204,36): error TS2339: Property '_overviewIndex' does not exist on type 'TimelineCategory'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(246,68): error TS2339: Property 'peekLast' does not exist on type 'any[]'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(248,81): error TS2339: Property '_overviewIndex' does not exist on type 'TimelineCategory'. +node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(384,7): error TS2322: Type 'Promise HTMLImageElement>' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(384,7): error TS2322: Type 'Promise HTMLImageElement>' is not assignable to type 'Promise'. Type 'new (width?: number, height?: number) => HTMLImageElement' is not assignable to type 'HTMLImageElement'. Property 'align' is missing in type 'new (width?: number, height?: number) => HTMLImageElement'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(384,7): error TS2322: Type 'Promise HTMLImageElement>' is not assignable to type 'Promise'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(457,17): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(483,24): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineEventOverview.js(524,28): error TS2339: Property 'peekLast' does not exist on type 'TimelineFrame[]'. @@ -13630,9 +13629,9 @@ node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(28,41 node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(43,14): error TS2339: Property '_reportErrorAndCancelLoading' does not exist on type 'typeof TimelineLoader'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(45,5): error TS2322: Type 'TimelineLoader' is not assignable to type '{ [x: string]: any; loadingStarted(): void; loadingProgress(progress?: number): void; processingS...'. Type 'TimelineLoader' is not assignable to type '{ [x: string]: any; loadingStarted(): void; loadingProgress(progress?: number): void; processingS...'. + Property 'loadingStarted' is missing in type 'TimelineLoader'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(45,5): error TS2322: Type 'TimelineLoader' is not assignable to type '{ [x: string]: any; loadingStarted(): void; loadingProgress(progress?: number): void; processingS...'. Type 'TimelineLoader' is not assignable to type '{ [x: string]: any; loadingStarted(): void; loadingProgress(progress?: number): void; processingS...'. - Property 'loadingStarted' is missing in type 'TimelineLoader'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineLoader.js(56,5): error TS2322: Type 'TimelineLoader' is not assignable to type '{ [x: string]: any; loadingStarted(): void; loadingProgress(progress?: number): void; processingS...'. Type 'TimelineLoader' is not assignable to type '{ [x: string]: any; loadingStarted(): void; loadingProgress(progress?: number): void; processingS...'. Property 'loadingStarted' is missing in type 'TimelineLoader'. @@ -13663,9 +13662,9 @@ node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(206,42 Property 'item' is missing in type 'ToolbarSettingCheckbox'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(207,5): error TS2322: Type 'ToolbarSettingCheckbox' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarSettingCheckbox' is not assignable to type '{ [x: string]: any; item(): any & any; }'. - Property 'item' is missing in type 'ToolbarSettingCheckbox'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(207,5): error TS2322: Type 'ToolbarSettingCheckbox' is not assignable to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarSettingCheckbox' is not assignable to type '{ [x: string]: any; item(): any & any; }'. + Property 'item' is missing in type 'ToolbarSettingCheckbox'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(212,42): error TS2345: Argument of type 'ToolbarToggle' is not assignable to parameter of type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not assignable to type '{ [x: string]: any; item(): any & any; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelinePanel.js(213,42): error TS2345: Argument of type 'ToolbarToggle' is not assignable to parameter of type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. @@ -13791,17 +13790,17 @@ node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(727 node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(727,9): error TS2322: Type '{ name: string; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. Property 'icon' is missing in type '{ name: string; color: string; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(731,13): error TS2555: Expected at least 2 arguments, but got 1. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(733,9): error TS2322: Type '{ name: any; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(733,9): error TS2322: Type '{ name: any; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. Property 'icon' is missing in type '{ name: any; color: string; }'. +node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(733,9): error TS2322: Type '{ name: any; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(743,13): error TS2403: Subsequent variable declarations must have the same type. Variable 'name' must be of type 'any', but here has type 'string'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(753,91): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(754,9): error TS2322: Type '{ name: any; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. - Property 'icon' is missing in type '{ name: any; color: string; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(754,9): error TS2322: Type '{ name: any; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. -node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(759,5): error TS2322: Type '{ name: string; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. + Property 'icon' is missing in type '{ name: any; color: string; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(759,5): error TS2322: Type '{ name: string; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. Property 'icon' is missing in type '{ name: string; color: string; }'. +node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(759,5): error TS2322: Type '{ name: string; color: string; }' is not assignable to type '{ name: string; color: string; icon: Element; }'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(770,15): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(771,15): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineTreeView.js(772,15): error TS2555: Expected at least 2 arguments, but got 1. @@ -14136,8 +14135,8 @@ node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1657 node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1664,11): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1665,67): error TS2555: Expected at least 2 arguments, but got 1. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1675,5): error TS2322: Type 'DocumentFragment' is not assignable to type 'Element'. - Property 'assignedSlot' is missing in type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1675,5): error TS2322: Type 'DocumentFragment' is not assignable to type 'Element'. + Property 'assignedSlot' is missing in type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1684,30): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1685,16): error TS2339: Property 'millisToString' does not exist on type 'NumberConstructor'. node_modules/chrome-devtools-frontend/front_end/timeline/TimelineUIUtils.js(1687,13): error TS2339: Property 'createTextChild' does not exist on type 'Element'. @@ -14609,9 +14608,9 @@ node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(92,51): erro node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(116,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(116,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. Property 'appendApplicableItems' is missing in type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. -node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(118,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(118,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. Property 'appendApplicableItems' is missing in type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. +node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(118,7): error TS2322: Type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(247,73): error TS2339: Property 'altKey' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(247,89): error TS2339: Property 'shiftKey' does not exist on type 'Event'. node_modules/chrome-devtools-frontend/front_end/ui/InspectorView.js(254,17): error TS2339: Property 'keyCode' does not exist on type 'Event'. @@ -15038,9 +15037,9 @@ node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(592,35): error node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(601,32): error TS2339: Property 'isAncestor' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(610,54): error TS2339: Property 'isAncestor' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(622,35): error TS2339: Property 'getComponentSelection' does not exist on type 'Element'. -node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(627,7): error TS2322: Type 'Node' is not assignable to type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(627,7): error TS2322: Type 'Node' is not assignable to type 'Element'. Property 'assignedSlot' is missing in type 'Node'. +node_modules/chrome-devtools-frontend/front_end/ui/TextPrompt.js(627,7): error TS2322: Type 'Node' is not assignable to type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(43,50): error TS2339: Property 'createChild' does not exist on type 'Element'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(48,45): error TS2339: Property 'createChild' does not exist on type 'DocumentFragment'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(75,24): error TS2694: Namespace 'Common' has no exported member 'Event'. @@ -15066,9 +15065,9 @@ node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(343,36): error TS2 Type 'ToolbarSeparator' is not comparable to type '{ [x: string]: any; item(): any & any; }'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(346,17): error TS2352: Type 'ToolbarToggle' cannot be converted to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not comparable to type '{ [x: string]: any; item(): any & any; }'. - Property 'item' is missing in type 'ToolbarToggle'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(346,17): error TS2352: Type 'ToolbarToggle' cannot be converted to type '{ [x: string]: any; item(): any & any; } & { [x: string]: any; item(): any & any; }'. Type 'ToolbarToggle' is not comparable to type '{ [x: string]: any; item(): any & any; }'. + Property 'item' is missing in type 'ToolbarToggle'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(405,53): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(405,70): error TS2339: Property '_toolbar' does not exist on type 'ToolbarItem'. node_modules/chrome-devtools-frontend/front_end/ui/Toolbar.js(412,18): error TS2339: Property 'disabled' does not exist on type 'Element'. @@ -15304,9 +15303,9 @@ node_modules/chrome-devtools-frontend/front_end/ui/View.js(343,24): error TS2538 node_modules/chrome-devtools-frontend/front_end/ui/View.js(361,25): error TS2538: Type 'symbol' cannot be used as an index type. node_modules/chrome-devtools-frontend/front_end/ui/View.js(371,23): error TS2339: Property 'showView' does not exist on type '_Location'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(383,35): error TS2339: Property 'runtime' does not exist on type 'Window'. -node_modules/chrome-devtools-frontend/front_end/ui/View.js(401,5): error TS2322: Type '_TabbedLocation' is not assignable to type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(401,5): error TS2322: Type '_TabbedLocation' is not assignable to type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. Property '_tabbedPane' does not exist on type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. +node_modules/chrome-devtools-frontend/front_end/ui/View.js(401,5): error TS2322: Type '_TabbedLocation' is not assignable to type '{ [x: string]: any; tabbedPane(): TabbedPane; enableMoreTabsButton(): void; }'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(411,5): error TS2322: Type '_StackLocation' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. node_modules/chrome-devtools-frontend/front_end/ui/View.js(411,5): error TS2322: Type '_StackLocation' is not assignable to type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. Property '_vbox' does not exist on type '{ [x: string]: any; appendApplicableItems(locationName: string): void; appendView(view: { [x: str...'. diff --git a/tests/baselines/reference/user/uglify-js.log b/tests/baselines/reference/user/uglify-js.log index 8d4125a3a47..61a2e995d76 100644 --- a/tests/baselines/reference/user/uglify-js.log +++ b/tests/baselines/reference/user/uglify-js.log @@ -5,67 +5,67 @@ node_modules/uglify-js/lib/ast.js(329,33): error TS2339: Property 'transform' do node_modules/uglify-js/lib/ast.js(857,5): error TS2322: Type '{ [x: string]: any; _visit: (node: any, descend: any) => any; parent: (n: any) => any; push: type...' is not assignable to type 'TreeWalker'. Object literal may only specify known properties, but '_visit' does not exist in type 'TreeWalker'. Did you mean to write 'visit'? node_modules/uglify-js/lib/compress.js(165,27): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(506,26): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(820,18): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1075,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1089,51): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'true | ((node: any) => any)' has no compatible call signatures. -node_modules/uglify-js/lib/compress.js(1153,53): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1195,112): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(1196,29): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(1205,87): error TS2322: Type 'false' is not assignable to type 'number'. -node_modules/uglify-js/lib/compress.js(1213,29): error TS2322: Type 'false' is not assignable to type 'never'. -node_modules/uglify-js/lib/compress.js(1313,38): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1406,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(1503,27): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1535,26): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(1949,44): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2141,19): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(2401,27): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3141,23): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3154,33): error TS2322: Type '"f"' is not assignable to type 'boolean'. -node_modules/uglify-js/lib/compress.js(3291,18): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3301,33): error TS2339: Property 'add' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3305,32): error TS2339: Property 'add' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3311,40): error TS2339: Property 'add' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3320,41): error TS2339: Property 'add' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3337,14): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3339,40): error TS2339: Property 'get' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3347,33): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(3421,63): error TS2339: Property 'get' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3610,23): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(3627,36): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(3633,38): error TS2339: Property 'set' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3637,40): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. -node_modules/uglify-js/lib/compress.js(3662,22): error TS2339: Property 'each' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3667,30): error TS2339: Property 'del' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3672,30): error TS2339: Property 'set' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3683,41): error TS2339: Property 'has' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3685,48): error TS2339: Property 'get' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3697,41): error TS2339: Property 'has' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3699,48): error TS2339: Property 'get' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3805,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'defs' must be of type 'Dictionary', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(3807,36): error TS2339: Property 'get' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3836,22): error TS2339: Property 'set' does not exist on type 'Dictionary'. -node_modules/uglify-js/lib/compress.js(3856,17): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. -node_modules/uglify-js/lib/compress.js(3881,30): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4019,18): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4318,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(4402,22): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4750,30): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(4757,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'code' must be of type 'string', but here has type '{ [x: string]: any; get: () => string; toString: () => string; indent: () => void; indentation: (...'. -node_modules/uglify-js/lib/compress.js(4761,36): error TS2532: Object is possibly 'undefined'. -node_modules/uglify-js/lib/compress.js(4766,41): error TS2339: Property 'get' does not exist on type 'string'. -node_modules/uglify-js/lib/compress.js(5253,18): error TS2454: Variable 'is_strict_comparison' is used before being assigned. -node_modules/uglify-js/lib/compress.js(5692,25): error TS2365: Operator '==' cannot be applied to types 'boolean' and '"f"'. -node_modules/uglify-js/lib/compress.js(5719,32): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5779,24): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5851,24): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(5857,26): error TS2554: Expected 0 arguments, but got 1. -node_modules/uglify-js/lib/compress.js(6207,43): error TS2454: Variable 'property' is used before being assigned. -node_modules/uglify-js/lib/compress.js(6221,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(6224,46): error TS2339: Property 'has_side_effects' does not exist on type 'number'. -node_modules/uglify-js/lib/compress.js(6231,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. -node_modules/uglify-js/lib/compress.js(6284,19): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(516,26): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(831,18): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1086,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1100,51): error TS2349: Cannot invoke an expression whose type lacks a call signature. Type 'true | ((node: any) => any)' has no compatible call signatures. +node_modules/uglify-js/lib/compress.js(1164,53): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1206,112): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(1207,29): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(1216,87): error TS2322: Type 'false' is not assignable to type 'number'. +node_modules/uglify-js/lib/compress.js(1224,29): error TS2322: Type 'false' is not assignable to type 'never'. +node_modules/uglify-js/lib/compress.js(1324,38): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1417,38): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(1514,27): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1546,26): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(1960,44): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2152,19): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(2412,27): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3152,23): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3165,33): error TS2322: Type '"f"' is not assignable to type 'boolean'. +node_modules/uglify-js/lib/compress.js(3302,18): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3312,33): error TS2339: Property 'add' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3316,32): error TS2339: Property 'add' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3322,40): error TS2339: Property 'add' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3331,41): error TS2339: Property 'add' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3348,14): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3350,40): error TS2339: Property 'get' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3358,33): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(3432,63): error TS2339: Property 'get' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3621,23): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(3638,36): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(3644,38): error TS2339: Property 'set' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3648,40): error TS2339: Property 'parent' does not exist on type 'TreeTransformer'. +node_modules/uglify-js/lib/compress.js(3673,22): error TS2339: Property 'each' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3678,30): error TS2339: Property 'del' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3683,30): error TS2339: Property 'set' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3694,41): error TS2339: Property 'has' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3696,48): error TS2339: Property 'get' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3708,41): error TS2339: Property 'has' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3710,48): error TS2339: Property 'get' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3816,21): error TS2403: Subsequent variable declarations must have the same type. Variable 'defs' must be of type 'Dictionary', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(3818,36): error TS2339: Property 'get' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3847,22): error TS2339: Property 'set' does not exist on type 'Dictionary'. +node_modules/uglify-js/lib/compress.js(3867,17): error TS2447: The '|=' operator is not allowed for boolean types. Consider using '||' instead. +node_modules/uglify-js/lib/compress.js(3892,30): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4030,18): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4329,17): error TS2403: Subsequent variable declarations must have the same type. Variable 'body' must be of type 'any[]', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(4413,22): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4761,30): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(4768,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'code' must be of type 'string', but here has type '{ [x: string]: any; get: () => string; toString: () => string; indent: () => void; indentation: (...'. +node_modules/uglify-js/lib/compress.js(4772,36): error TS2532: Object is possibly 'undefined'. +node_modules/uglify-js/lib/compress.js(4777,41): error TS2339: Property 'get' does not exist on type 'string'. +node_modules/uglify-js/lib/compress.js(5264,18): error TS2454: Variable 'is_strict_comparison' is used before being assigned. +node_modules/uglify-js/lib/compress.js(5703,25): error TS2365: Operator '==' cannot be applied to types 'boolean' and '"f"'. +node_modules/uglify-js/lib/compress.js(5730,32): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5790,24): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5862,24): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(5868,26): error TS2554: Expected 0 arguments, but got 1. +node_modules/uglify-js/lib/compress.js(6218,43): error TS2454: Variable 'property' is used before being assigned. +node_modules/uglify-js/lib/compress.js(6232,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(6235,46): error TS2339: Property 'has_side_effects' does not exist on type 'number'. +node_modules/uglify-js/lib/compress.js(6242,25): error TS2403: Subsequent variable declarations must have the same type. Variable 'value' must be of type 'number', but here has type 'any'. +node_modules/uglify-js/lib/compress.js(6295,19): error TS2554: Expected 0 arguments, but got 1. node_modules/uglify-js/lib/minify.js(166,75): error TS2339: Property 'compress' does not exist on type 'Compressor'. node_modules/uglify-js/lib/mozilla-ast.js(569,18): error TS2554: Expected 0 arguments, but got 1. node_modules/uglify-js/lib/output.js(481,22): error TS2554: Expected 0 arguments, but got 1. From 8f9c0861bc8d7982d8b7c24894fcba1600328c1b Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 24 May 2018 15:19:57 -0700 Subject: [PATCH 16/21] Use external aliases in quickinfo and signature help return types (#24391) * Dont include import types in quick info type names * Add UseAliasDefinedOutsideCurrentScope flag to LS operations which were missing it --- src/compiler/checker.ts | 4 ++-- src/services/utilities.ts | 2 +- ...ickInfoExportedTypeDoesNotUseImportType.ts | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 tests/cases/fourslash/crossFileQuickInfoExportedTypeDoesNotUseImportType.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ceb1cdd581d..769cde5dcc0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2993,7 +2993,7 @@ namespace ts { } } - function typeToString(type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.AllowUniqueESSymbolType, writer: EmitTextWriter = createTextWriter("")): string { + function typeToString(type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.AllowUniqueESSymbolType | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer: EmitTextWriter = createTextWriter("")): string { const typeNode = nodeBuilder.typeToTypeNode(type, enclosingDeclaration, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer); if (typeNode === undefined) return Debug.fail("should always get typenode"); const options = { removeComments: true }; @@ -3941,7 +3941,7 @@ namespace ts { } } - function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags, writer?: EmitTextWriter): string { + function typePredicateToString(typePredicate: TypePredicate, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer?: EmitTextWriter): string { return writer ? typePredicateToStringWorker(writer).getText() : usingSingleLineStringWriter(typePredicateToStringWorker); function typePredicateToStringWorker(writer: EmitTextWriter) { diff --git a/src/services/utilities.ts b/src/services/utilities.ts index cfbfcf261c6..de577ec5946 100644 --- a/src/services/utilities.ts +++ b/src/services/utilities.ts @@ -1473,7 +1473,7 @@ namespace ts { export function typeToDisplayParts(typechecker: TypeChecker, type: Type, enclosingDeclaration?: Node, flags: TypeFormatFlags = TypeFormatFlags.None): SymbolDisplayPart[] { return mapToDisplayParts(writer => { - typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals, writer); + typechecker.writeType(type, enclosingDeclaration, flags | TypeFormatFlags.MultilineObjectLiterals | TypeFormatFlags.UseAliasDefinedOutsideCurrentScope, writer); }); } diff --git a/tests/cases/fourslash/crossFileQuickInfoExportedTypeDoesNotUseImportType.ts b/tests/cases/fourslash/crossFileQuickInfoExportedTypeDoesNotUseImportType.ts new file mode 100644 index 00000000000..83677f68781 --- /dev/null +++ b/tests/cases/fourslash/crossFileQuickInfoExportedTypeDoesNotUseImportType.ts @@ -0,0 +1,19 @@ +/// + +// @Filename: b.ts +////export interface B {} +////export function foob(): { +//// x: B, +//// y: B +////} { +//// return null as any; +////} +// @Filename: a.ts +////import { foob } from "./b"; +////const thing/*1*/ = foob(/*2*/); + +verify.quickInfoAt("1", "const thing: {\n x: B;\n y: B;\n}"); +verify.signatureHelp({ + marker: "2", + text: "foob(): { x: B; y: B; }" +}); From 64642bb5c33878ed9b481f29b3ec626a675d2d74 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 24 May 2018 16:13:32 -0700 Subject: [PATCH 17/21] Dump fork output on unclean exit (#24394) * Dump fork output on unclean exit * Remember to clear timeout on process exit in case processes exit at very different times --- src/harness/parallel/host.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/harness/parallel/host.ts b/src/harness/parallel/host.ts index 2ecccf94540..99e9b541b85 100644 --- a/src/harness/parallel/host.ts +++ b/src/harness/parallel/host.ts @@ -13,6 +13,13 @@ namespace Harness.Parallel.Host { on(event: "message", listener: (message: ParallelClientMessage) => void): this; kill(signal?: string): void; currentTasks?: {file: string}[]; // Custom monkeypatch onto child process handle + accumulatedOutput: string; // Custom monkeypatch with process output + stderr: PartialStream; + stdout: PartialStream; + } + + interface PartialStream { + on(event: "data", listener: (chunk: Buffer) => void): this; } interface ProgressBarsOptions { @@ -151,7 +158,13 @@ namespace Harness.Parallel.Host { const config: TestConfig = { light: lightMode, listenForWork: true, runUnitTests, stackTraceLimit }; const configPath = ts.combinePaths(taskConfigsFolder, `task-config${i}.json`); IO.writeFile(configPath, JSON.stringify(config)); - const child = fork(__filename, [`--config="${configPath}"`]); + const child = fork(__filename, [`--config="${configPath}"`], { stdio: ["pipe", "pipe", "pipe", "ipc"] }); + child.accumulatedOutput = ""; + const appendOutput = (d: Buffer) => { + child.accumulatedOutput += d.toString(); + }; + child.stderr.on("data", appendOutput); + child.stdout.on("data", appendOutput); let currentTimeout = defaultTimeout; const killChild = () => { child.kill(); @@ -166,8 +179,10 @@ namespace Harness.Parallel.Host { return process.exit(2); }); child.on("exit", (code, _signal) => { + clearTimeout(timer); if (code !== 0) { - console.error("Test worker process exited with nonzero exit code!"); + console.error(`Test worker process exited with nonzero exit code! Output: +${child.accumulatedOutput}`); return process.exit(2); } }); @@ -223,6 +238,7 @@ namespace Harness.Parallel.Host { // No more tasks to distribute child.send({ type: "close" }); closedWorkers++; + clearTimeout(timer); if (closedWorkers === workerCount) { outputFinalResult(); } From 4244c8e2b412cf1a3f36bf3ac8ab7ef7c5c3c68e Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 25 May 2018 10:10:26 +0000 Subject: [PATCH 18/21] LEGO: check in for master to temporary branch. --- .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl index 7c6b790800a..1c9ee893cc3 100644 --- a/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/kor/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1008,6 +1008,15 @@ + + + + + + + + + @@ -1125,6 +1134,15 @@ + + + + + + + + + @@ -2538,6 +2556,12 @@ + + + + + + @@ -6564,6 +6588,15 @@ + + + + + + + + + @@ -6603,6 +6636,24 @@ + + + + + + + + + + + + + + + + + + From 5e848f6efbd2d6c297b59ca7c12b93f67066e808 Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 25 May 2018 16:10:26 +0000 Subject: [PATCH 19/21] LEGO: check in for master to temporary branch. --- .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ .../diagnosticMessages.generated.json.lcl | 28 +++++++++- .../diagnosticMessages.generated.json.lcl | 51 +++++++++++++++++++ 5 files changed, 230 insertions(+), 2 deletions(-) diff --git a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl index 3607e3e8488..e68b3b149ea 100644 --- a/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/chs/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1008,6 +1008,15 @@ + + + + + + + + + @@ -1125,6 +1134,15 @@ + + + + + + + + + @@ -2538,6 +2556,12 @@ + + + + + + @@ -6564,6 +6588,15 @@ + + + + + + + + + @@ -6603,6 +6636,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl index d64721cd90e..4d01ea1789c 100644 --- a/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/csy/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1017,6 +1017,15 @@ + + + + + + + + + @@ -1134,6 +1143,15 @@ + + + + + + + + + @@ -2547,6 +2565,12 @@ + + + + + + @@ -6573,6 +6597,15 @@ + + + + + + + + + @@ -6612,6 +6645,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl index ea95d1bda8c..e076be1b08c 100644 --- a/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/deu/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1005,6 +1005,15 @@ + + + + + + + + + @@ -1122,6 +1131,15 @@ + + + + + + + + + @@ -2535,6 +2553,12 @@ + + + + + + @@ -6558,6 +6582,15 @@ + + + + + + + + + @@ -6597,6 +6630,24 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 7a76969651e..56ea63d9e6c 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1019,10 +1019,13 @@ - - + + + + + @@ -1143,6 +1146,12 @@ + + + + + + @@ -2556,6 +2565,12 @@ + + + + + + @@ -6585,6 +6600,9 @@ + + + @@ -6633,6 +6651,12 @@ + + + + + + diff --git a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl index d034fc6882f..04e562b0fd4 100644 --- a/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/jpn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1008,6 +1008,15 @@ + + + + + + + + + @@ -1125,6 +1134,15 @@ + + + + + + + + + @@ -2538,6 +2556,12 @@ + + + + + + @@ -6564,6 +6588,15 @@ + + + + + + + + + @@ -6603,6 +6636,24 @@ + + + + + + + + + + + + + + + + + + From 198722d46aba7d1d55cafe84a74368fe87475632 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Fri, 25 May 2018 12:10:19 -0700 Subject: [PATCH 20/21] Make configure prerelease script compile under strict null checks (#24417) --- scripts/configurePrerelease.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/configurePrerelease.ts b/scripts/configurePrerelease.ts index da1984c13e0..2377b5d4712 100644 --- a/scripts/configurePrerelease.ts +++ b/scripts/configurePrerelease.ts @@ -56,13 +56,13 @@ function updateTsFile(tsFilePath: string, tsFileContents: string, majorMinor: st const majorMinorRgx = /export const versionMajorMinor = "(\d+\.\d+)"/; const majorMinorMatch = majorMinorRgx.exec(tsFileContents); assert(majorMinorMatch !== null, `The file seems to no longer have a string matching '${majorMinorRgx}'.`); - const parsedMajorMinor = majorMinorMatch[1]; + const parsedMajorMinor = majorMinorMatch![1]; assert(parsedMajorMinor === majorMinor, `versionMajorMinor does not match. ${tsFilePath}: '${parsedMajorMinor}'; package.json: '${majorMinor}'`); const versionRgx = /export const version = `\$\{versionMajorMinor\}\.(\d)(-dev)?`;/; const patchMatch = versionRgx.exec(tsFileContents); assert(patchMatch !== null, "The file seems to no longer have a string matching " + versionRgx.toString()); - const parsedPatch = patchMatch[1]; + const parsedPatch = patchMatch![1]; if (parsedPatch !== patch) { throw new Error(`patch does not match. ${tsFilePath}: '${parsedPatch}; package.json: '${patch}'`); } @@ -74,7 +74,7 @@ function parsePackageJsonVersion(versionString: string): { majorMinor: string, p const versionRgx = /(\d+\.\d+)\.(\d+)($|\-)/; const match = versionString.match(versionRgx); assert(match !== null, "package.json 'version' should match " + versionRgx.toString()); - return { majorMinor: match[1], patch: match[2] }; + return { majorMinor: match![1], patch: match![2] }; } /** e.g. 0-dev.20170707 */ From 35c0aaa84dc8270c4230c8f803817525aa72fb86 Mon Sep 17 00:00:00 2001 From: csigs Date: Fri, 25 May 2018 22:10:40 +0000 Subject: [PATCH 21/21] LEGO: check in for master to temporary branch. --- .../diagnosticMessages.generated.json.lcl | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl index 56ea63d9e6c..3688383b060 100644 --- a/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl +++ b/src/loc/lcl/esn/diagnosticMessages/diagnosticMessages.generated.json.lcl @@ -1020,8 +1020,8 @@ - - + + @@ -1149,6 +1149,9 @@ + + + @@ -6648,12 +6651,18 @@ + + + + + +