From 8959af85808c469ec3e09929b1b29728f9b93dd2 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 12 Jun 2017 17:16:55 -0700 Subject: [PATCH] Use real map for languagePerId --- extensions/typescript/src/typescriptMain.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/extensions/typescript/src/typescriptMain.ts b/extensions/typescript/src/typescriptMain.ts index 9f0eed23e17..085e48bb40b 100644 --- a/extensions/typescript/src/typescriptMain.ts +++ b/extensions/typescript/src/typescriptMain.ts @@ -448,7 +448,7 @@ class LanguageProvider { class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { private client: TypeScriptServiceClient; private languages: LanguageProvider[] = []; - private languagePerId: ObjectMap; + private languagePerId: Map; private readonly disposables: Disposable[] = []; private readonly versionStatus: VersionStatus; @@ -476,12 +476,12 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { this.disposables.push(this.versionStatus); this.client = new TypeScriptServiceClient(this, workspaceState, this.versionStatus, plugins, this.disposables); - this.languagePerId = Object.create(null); + this.languagePerId = new Map(); for (const description of descriptions) { const manager = new LanguageProvider(this.client, description); this.languages.push(manager); this.disposables.push(manager); - this.languagePerId[description.id] = manager; + this.languagePerId.set(description.id, manager); } this.client.onReady().then(() => { @@ -504,7 +504,7 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { const manager = new LanguageProvider(this.client, description); this.languages.push(manager); this.disposables.push(manager); - this.languagePerId[description.id] = manager; + this.languagePerId.set(description.id, manager); } }); @@ -615,13 +615,17 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost { } private triggerAllDiagnostics() { - Object.keys(this.languagePerId).forEach(key => this.languagePerId[key].triggerAllDiagnostics()); + for (const language of this.languagePerId.values()) { + language.triggerAllDiagnostics(); + } } /* internal */ populateService(): void { // See https://github.com/Microsoft/TypeScript/issues/5530 - workspace.saveAll(false).then(_ => { - Object.keys(this.languagePerId).forEach(key => this.languagePerId[key].reInitialize()); + workspace.saveAll(false).then(() => { + for (const language of this.languagePerId.values()) { + language.reInitialize(); + } }); } -- GitLab