diff --git a/src/services/services.ts b/src/services/services.ts index 831e8a95de3..12ea84eafc1 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3238,26 +3238,25 @@ module ts { function getJavaScriptCompletionEntries(): CompletionEntry[] { let entries: CompletionEntry[] = []; - let allIdentifiers: Map = {}; + let allNames: Map = {}; + let target = program.getCompilerOptions().target; for (let sourceFile of program.getSourceFiles()) { let nameTable = getNameTable(sourceFile); for (let name in nameTable) { - allIdentifiers[name] = name; - } - } - - var target = program.getCompilerOptions().target; - for (let name in allIdentifiers) { - let displayName = getCompletionEntryDisplayName(name, target, /*performCharacterChecks:*/ true); - if (displayName) { - // Use '1' so that all javascript identifier entries sort after Symbol entries. - entries.push({ - name: displayName, - kind: ScriptElementKind.warning, - kindModifiers: "", - sortText: "1" - }); + if (!allNames[name]) { + allNames[name] = name; + let displayName = getCompletionEntryDisplayName(name, target, /*performCharacterChecks:*/ true); + if (displayName) { + let entry = { + name: displayName, + kind: ScriptElementKind.warning, + kindModifiers: "", + sortText: "1" + }; + entries.push(entry); + } + } } }