From fc44d0fcc60a5eb32a957011aa61e18dc08cdb59 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Tue, 27 Sep 2016 15:23:36 +0300 Subject: [PATCH] Fixes #11868: Check that the user keybindings are parsed as an array --- .../keybinding/electron-browser/keybindingService.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts index d1485a0296e..e4e24bdbedf 100644 --- a/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts +++ b/src/vs/workbench/services/keybinding/electron-browser/keybindingService.ts @@ -147,14 +147,22 @@ export class WorkbenchKeybindingService extends KeybindingService { this._beginListening(domNode); } + private _safeGetConfig(): IUserFriendlyKeybinding[] { + let rawConfig = this.userKeybindings.getConfig(); + if (Array.isArray(rawConfig)) { + return rawConfig; + } + return []; + } + public customKeybindingsCount(): number { - let userKeybindings = this.userKeybindings.getConfig(); + let userKeybindings = this._safeGetConfig(); return userKeybindings.length; } protected _getExtraKeybindings(isFirstTime: boolean): IKeybindingItem[] { - let extraUserKeybindings: IUserFriendlyKeybinding[] = this.userKeybindings.getConfig(); + let extraUserKeybindings: IUserFriendlyKeybinding[] = this._safeGetConfig(); if (!isFirstTime) { let cnt = extraUserKeybindings.length;