From 8fd6dc6f6a439b47383b76d313d355746b329404 Mon Sep 17 00:00:00 2001 From: Mouad Debbar Date: Fri, 27 Jan 2023 17:29:08 -0500 Subject: [PATCH 1/3] [web] @JS('Intl') --- lib/web_ui/lib/src/engine/dom.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/web_ui/lib/src/engine/dom.dart b/lib/web_ui/lib/src/engine/dom.dart index 47adc523919fb..89456dd375744 100644 --- a/lib/web_ui/lib/src/engine/dom.dart +++ b/lib/web_ui/lib/src/engine/dom.dart @@ -63,9 +63,6 @@ extension DomWindowExtension on DomWindow { /// The Trusted Types API (when available). /// See: https://developer.mozilla.org/en-US/docs/Web/API/Trusted_Types_API external DomTrustedTypePolicyFactory? get trustedTypes; - - // ignore: non_constant_identifier_names - external DomIntl get Intl; } typedef DomRequestAnimationFrameCallback = void Function(num highResTime); @@ -83,6 +80,9 @@ extension DomConsoleExtension on DomConsole { @JS('window') external DomWindow get domWindow; +@JS('Intl') +external DomIntl get domIntl; + @JS() @staticInterop class DomNavigator {} @@ -1815,7 +1815,7 @@ extension DomV8BreakIteratorExtension on DomV8BreakIterator { } DomV8BreakIterator createV8BreakIterator() { - final Object? v8BreakIterator = domWindow.Intl.v8BreakIterator; + final Object? v8BreakIterator = domIntl.v8BreakIterator; if (v8BreakIterator == null) { throw UnimplementedError('v8BreakIterator is not supported.'); } From d4752218565898911d44e637f9a43dcda523fdb5 Mon Sep 17 00:00:00 2001 From: Mouad Debbar Date: Fri, 27 Jan 2023 17:29:08 -0500 Subject: [PATCH 2/3] Fix call sites --- lib/web_ui/lib/src/engine/text/line_breaker.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/web_ui/lib/src/engine/text/line_breaker.dart b/lib/web_ui/lib/src/engine/text/line_breaker.dart index c2bf0ab1e2090..594605a3ad4ad 100644 --- a/lib/web_ui/lib/src/engine/text/line_breaker.dart +++ b/lib/web_ui/lib/src/engine/text/line_breaker.dart @@ -42,7 +42,7 @@ enum LineBreakType { /// Splits [text] into fragments based on line breaks. abstract class LineBreakFragmenter extends TextFragmenter { factory LineBreakFragmenter(String text) { - if (domWindow.Intl.v8BreakIterator != null) { + if (domIntl.v8BreakIterator != null) { return V8LineBreakFragmenter(text); } return FWLineBreakFragmenter(text); @@ -66,7 +66,7 @@ class FWLineBreakFragmenter extends TextFragmenter implements LineBreakFragmente /// `v8BreakIterator` API to find line breaks in the given [text]. class V8LineBreakFragmenter extends TextFragmenter implements LineBreakFragmenter { V8LineBreakFragmenter(super.text) - : assert(domWindow.Intl.v8BreakIterator != null); + : assert(domIntl.v8BreakIterator != null); @override List fragment() { From 0e6d1ec859581edea30e471c482851d3e84c32e3 Mon Sep 17 00:00:00 2001 From: Mouad Debbar Date: Mon, 30 Jan 2023 17:29:20 -0500 Subject: [PATCH 3/3] one more place --- lib/web_ui/test/text/line_breaker_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/web_ui/test/text/line_breaker_test.dart b/lib/web_ui/test/text/line_breaker_test.dart index 479920271d4ea..275c4de47b60f 100644 --- a/lib/web_ui/test/text/line_breaker_test.dart +++ b/lib/web_ui/test/text/line_breaker_test.dart @@ -421,7 +421,7 @@ void groupForEachFragmenter(GroupBody callback) { () => callback(isV8: false), ); - if (domWindow.Intl.v8BreakIterator != null) { + if (domIntl.v8BreakIterator != null) { group( '$V8LineBreakFragmenter', () => callback(isV8: true),