src/vs/workbench/services/keybinding/browser/keyboardLayoutService.ts/BrowserKeyboardMapperFactoryBase/_createKeyboardMapper
class BrowserKeyboardMapperFactoryBase:	private static _createKeyboardMapper(keymapInfo: KeymapInfo): IKeyboardMapper {
		let rawMapping = keymapInfo.mapping;
		const isUSStandard = !!keymapInfo.layout.isUSStandard;
		if (OS === OperatingSystem.Windows) {
			return new WindowsKeyboardMapper(isUSStandard, <IWindowsKeyboardMapping>rawMapping);
		}
		if (Object.keys(rawMapping).length === 0) {
			// Looks like reading the mappings failed (most likely Mac + Japanese/Chinese keyboard layouts)
			return new MacLinuxFallbackKeyboardMapper(OS);
		}

		return new MacLinuxKeyboardMapper(isUSStandard, <IMacLinuxKeyboardMapping>rawMapping, OS);
	}