From 89fd33c62f2ca7edbdc25e4b28c91c19323bcb82 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Fri, 9 Dec 2022 13:15:11 -0800 Subject: [PATCH] Don't use sync*, as it is unimplemented in dart2wasm. (#38149) * Don't use sync*, as it is unimplemented in dart2wasm. * Address Joshua's comments. * Even more terse syntax, and change the name of the library --- .../lib/web_locale_keymap/key_mappings.g.dart | 29 +++++++++---------- .../web_locale_keymap/test/test_cases.g.dart | 4 +-- .../bin/gen_web_locale_keymap.dart | 8 ++--- .../data/key_mappings.dart.tmpl | 4 +-- .../data/test_cases.dart.tmpl | 4 +-- tools/gen_web_locale_keymap/lib/common.dart | 18 +++++------- tools/gen_web_locale_keymap/pubspec.yaml | 2 +- 7 files changed, 33 insertions(+), 36 deletions(-) diff --git a/third_party/web_locale_keymap/lib/web_locale_keymap/key_mappings.g.dart b/third_party/web_locale_keymap/lib/web_locale_keymap/key_mappings.g.dart index cae2917ff0a52..4661448503462 100644 --- a/third_party/web_locale_keymap/lib/web_locale_keymap/key_mappings.g.dart +++ b/third_party/web_locale_keymap/lib/web_locale_keymap/key_mappings.g.dart @@ -5,15 +5,15 @@ // DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT // -// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_layouts based on -// /~https://github.com/microsoft/vscode/tree/ab7ccc9e872dfcdfc429f8f2815109ec0ca926e3/src/vs/workbench/services/keybinding/browser/keyboardLayouts +// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_keymap based on +// /~https://github.com/microsoft/vscode/tree/422b581e3802e30cfb780c21d9cc1a2cd0c9f0aa/src/vs/workbench/services/keybinding/browser/keyboardLayouts // // Edit the following files instead: // // - Script: lib/main.dart // - Templates: data/*.tmpl // -// See flutter/engine:flutter/tools/gen_web_keyboard_layouts/README.md for more information. +// See flutter/engine:flutter/tools/gen_web_locale_keymap/README.md for more information. /// Used in the final mapping indicating the logical key should be derived from /// KeyboardEvent.keyCode. @@ -100,16 +100,17 @@ bool isLetter(int charCode) { /// /// This greatly reduces the entries needed in the final mapping. int? heuristicMapper(String code, String key) { - // Digit code: return the digit. + // Digit code: return the digit by event code. if (code.startsWith('Digit')) { assert(code.length == 6); return code.codeUnitAt(5); // The character immediately after 'Digit' } final int charCode = key.codeUnitAt(0); + // Non-ascii: return the goal (i.e. US mapping by event code). if (key.length > 1 || !_isAscii(charCode)) { return kLayoutGoals[code]?.codeUnitAt(0); } - // Letter key: return the letter. + // Letter key: return the event key letter. if (isLetter(charCode)) { return key.toLowerCase().codeUnitAt(0); } @@ -167,22 +168,20 @@ class _StringStream { Map _unmarshallCodeMap(_StringStream stream) { final int entryNum = stream.readIntAsVerbatim(); - return Map.fromEntries((() sync* { - for (int entryIndex = 0; entryIndex < entryNum; entryIndex += 1) { - yield MapEntry(stream.readEventKey(), stream.readIntAsChar()); - } - })()); + return { + for (int i = 0; i < entryNum; i++) + stream.readEventKey(): stream.readIntAsChar(), + }; } /// Decode a key mapping data out of the string. Map> unmarshallMappingData(String compressed) { final _StringStream stream = _StringStream(compressed); final int eventCodeNum = stream.readIntAsVerbatim(); - return Map>.fromEntries((() sync* { - for (int eventCodeIndex = 0; eventCodeIndex < eventCodeNum; eventCodeIndex += 1) { - yield MapEntry>(stream.readEventCode(), _unmarshallCodeMap(stream)); - } - })()); + return >{ + for (int i = 0; i < eventCodeNum; i++) + stream.readEventCode() : _unmarshallCodeMap(stream), + }; } /// Data for [LocaleKeymap] on Windows. diff --git a/third_party/web_locale_keymap/test/test_cases.g.dart b/third_party/web_locale_keymap/test/test_cases.g.dart index b57842551d497..ec396a403199f 100644 --- a/third_party/web_locale_keymap/test/test_cases.g.dart +++ b/third_party/web_locale_keymap/test/test_cases.g.dart @@ -5,7 +5,7 @@ // DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT // -// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_layouts based on +// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_keymap based on // /~https://github.com/microsoft/vscode/tree/@@@COMMIT_ID@@@/src/vs/workbench/services/keybinding/browser/keyboardLayouts // // Edit the following files instead: @@ -13,7 +13,7 @@ // - Script: lib/main.dart // - Templates: data/*.tmpl // -// See flutter/engine:flutter/tools/gen_web_keyboard_layouts/README.md for more information. +// See flutter/engine:flutter/tools/gen_web_keyboard_keymap/README.md for more information. import 'package:test/test.dart'; import 'package:web_locale_keymap/web_locale_keymap.dart'; diff --git a/tools/gen_web_locale_keymap/bin/gen_web_locale_keymap.dart b/tools/gen_web_locale_keymap/bin/gen_web_locale_keymap.dart index a2f2bf3f4a8e3..6bf2d70052b78 100644 --- a/tools/gen_web_locale_keymap/bin/gen_web_locale_keymap.dart +++ b/tools/gen_web_locale_keymap/bin/gen_web_locale_keymap.dart @@ -5,10 +5,10 @@ import 'dart:io'; import 'package:args/args.dart'; -import 'package:gen_web_keyboard_layouts/benchmark_planner.dart'; -import 'package:gen_web_keyboard_layouts/common.dart'; -import 'package:gen_web_keyboard_layouts/github.dart'; -import 'package:gen_web_keyboard_layouts/layout_types.dart'; +import 'package:gen_web_keyboard_keymap/benchmark_planner.dart'; +import 'package:gen_web_keyboard_keymap/common.dart'; +import 'package:gen_web_keyboard_keymap/github.dart'; +import 'package:gen_web_keyboard_keymap/layout_types.dart'; import 'package:path/path.dart' as path; const String kEnvGithubToken = 'GITHUB_TOKEN'; diff --git a/tools/gen_web_locale_keymap/data/key_mappings.dart.tmpl b/tools/gen_web_locale_keymap/data/key_mappings.dart.tmpl index fa54363de1f9f..b308353ddf391 100644 --- a/tools/gen_web_locale_keymap/data/key_mappings.dart.tmpl +++ b/tools/gen_web_locale_keymap/data/key_mappings.dart.tmpl @@ -5,7 +5,7 @@ // DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT // -// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_layouts based on +// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_keymap based on // @@@COMMIT_URL@@@ // // Edit the following files instead: @@ -13,7 +13,7 @@ // - Script: lib/main.dart // - Templates: data/*.tmpl // -// See flutter/engine:flutter/tools/gen_web_keyboard_layouts/README.md for more information. +// See flutter/engine:flutter/tools/gen_web_locale_keymap/README.md for more information. @@@COMMON@@@ /// Data for [LocaleKeymap] on Windows. diff --git a/tools/gen_web_locale_keymap/data/test_cases.dart.tmpl b/tools/gen_web_locale_keymap/data/test_cases.dart.tmpl index 41a94b0a68173..d18c73b3e0def 100644 --- a/tools/gen_web_locale_keymap/data/test_cases.dart.tmpl +++ b/tools/gen_web_locale_keymap/data/test_cases.dart.tmpl @@ -5,7 +5,7 @@ // DO NOT EDIT -- DO NOT EDIT -- DO NOT EDIT // -// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_layouts based on +// This file is auto generated by flutter/engine:flutter/tools/gen_web_keyboard_keymap based on // /~https://github.com/microsoft/vscode/tree/@@@COMMIT_ID@@@/src/vs/workbench/services/keybinding/browser/keyboardLayouts // // Edit the following files instead: @@ -13,7 +13,7 @@ // - Script: lib/main.dart // - Templates: data/*.tmpl // -// See flutter/engine:flutter/tools/gen_web_keyboard_layouts/README.md for more information. +// See flutter/engine:flutter/tools/gen_web_keyboard_keymap/README.md for more information. import 'package:test/test.dart'; import 'package:web_locale_keymap/web_locale_keymap.dart'; diff --git a/tools/gen_web_locale_keymap/lib/common.dart b/tools/gen_web_locale_keymap/lib/common.dart index 2d8526d8773e3..9f9a2963a09ac 100644 --- a/tools/gen_web_locale_keymap/lib/common.dart +++ b/tools/gen_web_locale_keymap/lib/common.dart @@ -159,22 +159,20 @@ class _StringStream { Map _unmarshallCodeMap(_StringStream stream) { final int entryNum = stream.readIntAsVerbatim(); - return Map.fromEntries((() sync* { - for (int entryIndex = 0; entryIndex < entryNum; entryIndex += 1) { - yield MapEntry(stream.readEventKey(), stream.readIntAsChar()); - } - })()); + return { + for (int i = 0; i < entryNum; i++) + stream.readEventKey(): stream.readIntAsChar(), + }; } /// Decode a key mapping data out of the string. Map> unmarshallMappingData(String compressed) { final _StringStream stream = _StringStream(compressed); final int eventCodeNum = stream.readIntAsVerbatim(); - return Map>.fromEntries((() sync* { - for (int eventCodeIndex = 0; eventCodeIndex < eventCodeNum; eventCodeIndex += 1) { - yield MapEntry>(stream.readEventCode(), _unmarshallCodeMap(stream)); - } - })()); + return >{ + for (int i = 0; i < eventCodeNum; i++) + stream.readEventCode() : _unmarshallCodeMap(stream), + }; } /*@@@ SHARED SEGMENT END @@@*/ diff --git a/tools/gen_web_locale_keymap/pubspec.yaml b/tools/gen_web_locale_keymap/pubspec.yaml index 363b3b533e33c..a1c1f055ccd1b 100644 --- a/tools/gen_web_locale_keymap/pubspec.yaml +++ b/tools/gen_web_locale_keymap/pubspec.yaml @@ -1,4 +1,4 @@ -name: gen_web_keyboard_layouts +name: gen_web_keyboard_keymap description: Generates keyboard layouts for Web from external sources. environment: