From 2f1305e06480ed5af351d953f1485a7734c18203 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 31 Oct 2022 13:38:13 -0700 Subject: [PATCH 01/12] wip --- dwds/debug_extension_mv3/web/background.dart | 62 ++- dwds/debug_extension_mv3/web/chrome_api.dart | 145 +++++- dwds/debug_extension_mv3/web/detector.dart | 52 ++ dwds/debug_extension_mv3/web/messaging.dart | 119 +---- dwds/lib/data/README.md | 3 + dwds/lib/data/debug_info.dart | 25 + dwds/lib/data/debug_info.g.dart | 276 ++++++++++ dwds/lib/data/serializers.dart | 1 + dwds/lib/src/injected/client.js | 506 +++++++++++-------- dwds/web/messages.dart | 49 ++ 10 files changed, 903 insertions(+), 335 deletions(-) create mode 100644 dwds/debug_extension_mv3/web/detector.dart create mode 100644 dwds/lib/data/README.md create mode 100644 dwds/lib/data/debug_info.dart create mode 100644 dwds/lib/data/debug_info.g.dart create mode 100644 dwds/web/messages.dart diff --git a/dwds/debug_extension_mv3/web/background.dart b/dwds/debug_extension_mv3/web/background.dart index 43e490f44..f2c5b92f8 100644 --- a/dwds/debug_extension_mv3/web/background.dart +++ b/dwds/debug_extension_mv3/web/background.dart @@ -8,41 +8,63 @@ library background; import 'dart:html'; import 'package:js/js.dart'; +import 'package:dwds/data/debug_info.dart'; import 'chrome_api.dart'; +import 'messaging.dart'; +import 'web_api.dart'; void main() { + _registerListeners(); +} + +void _registerListeners() { + chrome.runtime.onMessage.addListener(allowInterop(_handleRuntimeMessages)); + // Detect clicks on the Dart Debug Extension icon. chrome.action.onClicked.addListener(allowInterop((_) async { - await _createDebugTab(); - await _executeInjectorScript(); + _keepDebugSessionAlive(); + _createTab('https://www.wikipedia.org/', inNewWindow: true); })); } -Future _createDebugTab() async { - final url = chrome.runtime.getURL('debug_tab.html'); - final tabPromise = chrome.tabs.create(TabInfo( - active: false, - pinned: true, - url: url, - )); - return promiseToFuture(tabPromise); +void _handleRuntimeMessages( + dynamic jsRequest, MessageSender sender, Function sendResponse) async { + if (jsRequest is! String) return; + + interceptMessage( + message: jsRequest, + expectedType: MessageType.debugInfo, + expectedSender: Script.detector, + expectedRecipient: Script.background, + messageHandler: (DebugInfo debugInfo) async { + final currentTab = await _getTab(); + if (currentTab == null) return; + + final currentUrl = currentTab.url; + final appUrl = debugInfo.appUrl; + console.log('APP URL: $appUrl'); + console.log('CURRENT URL: $currentUrl'); + }); } -Future _executeInjectorScript() async { - final tabId = await _getTabId(); - if (tabId != null) { - chrome.scripting.executeScript( - InjectDetails( - target: Target(tabId: tabId), files: ['iframe_injector.dart.js']), - /*callback*/ null, +Future _createTab(String url, {bool inNewWindow = false}) async { + if (inNewWindow) { + final windowPromise = chrome.windows.create( + WindowInfo(focused: true, url: url, state: 'minimized'), ); + final windowObj = await promiseToFuture(windowPromise); + return windowObj.tabs.first; } + final tabPromise = chrome.tabs.create(TabInfo( + active: true, + url: url, + )); + return promiseToFuture(tabPromise); } -Future _getTabId() async { +Future _getTab() async { final query = QueryInfo(active: true, currentWindow: true); final tabs = List.from(await promiseToFuture(chrome.tabs.query(query))); - final tab = tabs.isNotEmpty ? tabs.first : null; - return tab?.id; + return tabs.isNotEmpty ? tabs.first : null; } diff --git a/dwds/debug_extension_mv3/web/chrome_api.dart b/dwds/debug_extension_mv3/web/chrome_api.dart index 505b2b3a6..643aaa24b 100644 --- a/dwds/debug_extension_mv3/web/chrome_api.dart +++ b/dwds/debug_extension_mv3/web/chrome_api.dart @@ -14,12 +14,18 @@ class Chrome { external Debugger get debugger; external Runtime get runtime; external Scripting get scripting; + external Storage get storage; external Tabs get tabs; + external WebNavigation get webNavigation; + external Windows get windows; } @JS() @anonymous class Action { + // https://developer.chrome.com/docs/extensions/reference/action/#method-setIcon + external void setIcon(IconInfo iconInfo, Function? callback); + // https://developer.chrome.com/docs/extensions/reference/action/#event-onClicked external OnClickedHandler get onClicked; } @@ -37,9 +43,32 @@ class Debugger { external void attach( Debuggee target, String requiredVersion, Function? callback); + // https://developer.chrome.com/docs/extensions/reference/debugger/#method-detach + external void detach(Debuggee target, Function? callback); + // https://developer.chrome.com/docs/extensions/reference/debugger/#method-sendCommand external void sendCommand(Debuggee target, String method, Object? commandParams, Function? callback); + + // https://developer.chrome.com/docs/extensions/reference/debugger/#event-onEvent + external OnEventHandler get onEvent; + + // https://developer.chrome.com/docs/extensions/reference/debugger/#event-onDetach + external OnDetachHandler get onDetach; +} + +@JS() +@anonymous +class OnDetachHandler { + external void addListener( + void Function(Debuggee source, String reason) callback); +} + +@JS() +@anonymous +class OnEventHandler { + external void addListener( + void Function(Debuggee source, String method, Object? params) callback); } @JS() @@ -52,6 +81,10 @@ class Runtime { // https://developer.chrome.com/docs/extensions/reference/runtime/#method-getURL external String getURL(String path); + // https://developer.chrome.com/docs/extensions/reference/runtime/#property-lastError + // Note: Not checking the lastError when one occurs throws a runtime exception. + external ChromeError? get lastError; + // https://developer.chrome.com/docs/extensions/reference/runtime/#event-onMessage external OnMessageHandler get onMessage; } @@ -70,6 +103,34 @@ class Scripting { external executeScript(InjectDetails details, Function? callback); } +@JS() +@anonymous +class Storage { + // https://developer.chrome.com/docs/extensions/reference/storage/#type-StorageArea + external StorageArea get local; + + // https://developer.chrome.com/docs/extensions/reference/storage/#event-onChanged + external OnChangedHandler get onChanged; +} + +@JS() +@anonymous +class StorageArea { + external Object get(List keys, void Function(Object result) callback); + + external Object set(Object items, void Function()? callback); + + external void remove(List keys, void Function()? callback); + + external Object clear(void Function()? callback); +} + +@JS() +@anonymous +class OnChangedHandler { + external void addListener(void Function(Object, String) callback); +} + @JS() @anonymous class Tabs { @@ -78,8 +139,77 @@ class Tabs { // https://developer.chrome.com/docs/extensions/reference/tabs/#method-create external Object create(TabInfo tabInfo); + +// https://developer.chrome.com/docs/extensions/reference/tabs/#method-get + external Object get(int tabId); + + external void remove(List tabIds, void Function()? callback); + + // https://developer.chrome.com/docs/extensions/reference/tabs/#event-onRemoved + external OnRemovedHandler get onRemoved; +} + +@JS() +@anonymous +class OnRemovedHandler { + external void addListener( + void Function(int tabId, RemoveInfo removeInfo) callback); } +@JS() +@anonymous +class RemoveInfo { + external int get windowId; + external bool get isWindowClosing; +} + +@JS() +@anonymous +class WebNavigation { + // https://developer.chrome.com/docs/extensions/reference/webNavigation/#event-onCommitted + external OnCommittedHandler get onCommitted; + + external OnCommittedHandler get onBeforeNavigate; +} + + +@JS() +@anonymous +class OnCommittedHandler { + external void addListener(void Function(NavigationInfo details) callback); +} + +@JS() +@anonymous +class NavigationInfo { + external String get transitionType; + external int get tabId; +} + +@JS() +@anonymous +class Windows { + external Object create(WindowInfo? createData); +} + +@JS() +@anonymous +class WindowInfo { + external bool? get focused; + external String? get url; + external String? get state; + external factory WindowInfo({bool? focused, String? state, String? url}); +} + +@JS() +@anonymous +class WindowObj { + external int get id; + external List get tabs; +} + + + @JS() @anonymous class Debuggee { @@ -112,7 +242,8 @@ class TabInfo { class QueryInfo { external bool get active; external bool get currentWindow; - external factory QueryInfo({bool? active, bool? currentWindow}); + external String get url; + external factory QueryInfo({bool? active, bool? currentWindow, String? url}); } @JS() @@ -136,3 +267,15 @@ class Target { external int get tabId; external factory Target({int tabId}); } + +@JS() +class ChromeError { + external String get message; +} + +@JS() +@anonymous +class IconInfo { + external String get path; + external factory IconInfo({String path}); +} \ No newline at end of file diff --git a/dwds/debug_extension_mv3/web/detector.dart b/dwds/debug_extension_mv3/web/detector.dart new file mode 100644 index 000000000..88d580875 --- /dev/null +++ b/dwds/debug_extension_mv3/web/detector.dart @@ -0,0 +1,52 @@ +// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +@JS() +library detector; + +import 'dart:html'; +import 'package:js/js.dart'; +import 'dart:js_util'; + +import 'chrome_api.dart'; +import 'messaging.dart'; +import 'web_api.dart'; + +void main() { + _registerListeners(); +} + +void _registerListeners() { + document.addEventListener('dart-app-ready', _onDartAppReadyEvent); +} + +void _onDartAppReadyEvent(Event event) { + final debugInfo = getProperty(event, 'detail') as String?; + if (debugInfo == null) { + console.warn('Can\'t debug Dart app without debug info.'); + return; + } + _sendMessageToBackgroundScript( + type: MessageType.debugInfo, + encodedBody: debugInfo, + ); +} + +void _sendMessageToBackgroundScript({ + required MessageType type, + required String encodedBody, +}) { + final message = Message( + to: Script.background, + from: Script.detector, + type: type, + encodedBody: encodedBody, + ); + chrome.runtime.sendMessage( + /*id*/ null, + message.toJSON(), + /*options*/ null, + /*callback*/ null, + ); +} diff --git a/dwds/debug_extension_mv3/web/messaging.dart b/dwds/debug_extension_mv3/web/messaging.dart index 1593a3b6c..05c3f58d7 100644 --- a/dwds/debug_extension_mv3/web/messaging.dart +++ b/dwds/debug_extension_mv3/web/messaging.dart @@ -6,19 +6,15 @@ library messaging; import 'dart:convert'; -import 'dart:html'; +import 'package:dwds/data/serializers.dart'; import 'package:js/js.dart'; import 'web_api.dart'; -const debugTabChannelName = 'DEBUG_TAB_CHANNEL'; - enum Script { background, - debugTab, - iframe, - iframeInjector; + detector; factory Script.fromString(String value) { return Script.values.byName(value); @@ -26,9 +22,7 @@ enum Script { } enum MessageType { - debugInfo, - debugState, - iframeReady; + debugInfo; factory MessageType.fromString(String value) { return MessageType.values.byName(value); @@ -36,16 +30,16 @@ enum MessageType { } class Message { + final MessageType type; final Script to; final Script from; - final MessageType type; final String encodedBody; final String? error; Message({ + required this.type, required this.to, required this.from, - required this.type, required this.encodedBody, this.error, }); @@ -54,9 +48,9 @@ class Message { final decoded = jsonDecode(json) as Map; return Message( + type: MessageType.fromString(decoded['type'] as String), to: Script.fromString(decoded['to'] as String), from: Script.fromString(decoded['from'] as String), - type: MessageType.fromString(decoded['type'] as String), encodedBody: decoded['encodedBody'] as String, error: decoded['error'] as String?, ); @@ -80,110 +74,17 @@ void interceptMessage({ required Script expectedRecipient, required void Function(T message) messageHandler, }) { + if (message == null) return; try { - if (message == null) return; final decodedMessage = Message.fromJSON(message); if (decodedMessage.type != expectedType || decodedMessage.to != expectedRecipient || decodedMessage.from != expectedSender) { return; } - final messageType = decodedMessage.type; - final messageBody = decodedMessage.encodedBody; - switch (messageType) { - case MessageType.debugInfo: - messageHandler(DebugInfo.fromJSON(messageBody) as T); - break; - case MessageType.debugState: - messageHandler(DebugState.fromJSON(messageBody) as T); - break; - case MessageType.iframeReady: - messageHandler(IframeReady.fromJSON(messageBody) as T); - break; - } - } catch (error) { - console.warn('Error intercepting expected message: $error'); - return; - } -} - -String? jsEventToMessageData( - Event event, { - required String expectedOrigin, -}) { - try { - final messageEvent = event as MessageEvent; - final origin = messageEvent.origin; - if (origin.removeTrailingSlash() != expectedOrigin.removeTrailingSlash()) { - return null; - } - return messageEvent.data as String; + messageHandler(serializers.deserialize(decodedMessage.encodedBody) as T); } catch (error) { - console.warn('Error converting event to message data: $error'); - return null; - } -} - -class IframeReady { - final bool isReady; - - IframeReady({required this.isReady}); - - factory IframeReady.fromJSON(String json) { - final decoded = jsonDecode(json) as Map; - final isReady = decoded['isReady'] as bool; - return IframeReady(isReady: isReady); - } - - String toJSON() { - return jsonEncode({ - 'isReady': isReady, - }); - } -} - -class DebugState { - final bool shouldDebug; - - DebugState({required this.shouldDebug}); - - factory DebugState.fromJSON(String json) { - final decoded = jsonDecode(json) as Map; - final shouldDebug = decoded['shouldDebug'] as bool; - return DebugState(shouldDebug: shouldDebug); - } - - String toJSON() { - return jsonEncode({ - 'shouldDebug': shouldDebug, - }); - } -} - -class DebugInfo { - final int tabId; - - DebugInfo({required this.tabId}); - - factory DebugInfo.fromJSON(String json) { - final decoded = jsonDecode(json) as Map; - final tabId = decoded['tabId'] as int; - return DebugInfo(tabId: tabId); - } - - String toJSON() { - return jsonEncode({ - 'tabId': tabId, - }); - } -} - -extension RemoveTrailingSlash on String { - String removeTrailingSlash() { - final trailingSlash = '/'; - if (endsWith(trailingSlash)) { - return substring(0, length - 1); - } - return this; + console.warn( + 'Error intercepting $expectedType from $expectedSender to $expectedRecipient: $error'); } } diff --git a/dwds/lib/data/README.md b/dwds/lib/data/README.md new file mode 100644 index 000000000..7be95395a --- /dev/null +++ b/dwds/lib/data/README.md @@ -0,0 +1,3 @@ +# How to generate data files: + +Run: `dart run build_runner build` from DWDS root. \ No newline at end of file diff --git a/dwds/lib/data/debug_info.dart b/dwds/lib/data/debug_info.dart new file mode 100644 index 000000000..1b6a787c5 --- /dev/null +++ b/dwds/lib/data/debug_info.dart @@ -0,0 +1,25 @@ +// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'package:built_collection/built_collection.dart'; +import 'package:built_value/built_value.dart'; +import 'package:built_value/serializer.dart'; + +part 'debug_info.g.dart'; + +abstract class DebugInfo implements Built { + static Serializer get serializer => _$debugInfoSerializer; + + factory DebugInfo([Function(DebugInfoBuilder) updates]) = _$DebugInfo; + + DebugInfo._(); + + String? get appEntrypointPath; + String? get appId; + String? get appInstanceId; + String? get appOrigin; + String? get appUrl; + String? get dwdsVersion; + String? get extensionUrl; +} diff --git a/dwds/lib/data/debug_info.g.dart b/dwds/lib/data/debug_info.g.dart new file mode 100644 index 000000000..0875b1ead --- /dev/null +++ b/dwds/lib/data/debug_info.g.dart @@ -0,0 +1,276 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'debug_info.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$debugInfoSerializer = new _$DebugInfoSerializer(); + +class _$DebugInfoSerializer implements StructuredSerializer { + @override + final Iterable types = const [DebugInfo, _$DebugInfo]; + @override + final String wireName = 'DebugInfo'; + + @override + Iterable serialize(Serializers serializers, DebugInfo object, + {FullType specifiedType = FullType.unspecified}) { + final result = []; + Object? value; + value = object.appEntrypointPath; + if (value != null) { + result + ..add('appEntrypointPath') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + value = object.appId; + if (value != null) { + result + ..add('appId') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + value = object.appInstanceId; + if (value != null) { + result + ..add('appInstanceId') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + value = object.appOrigin; + if (value != null) { + result + ..add('appOrigin') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + value = object.appUri; + if (value != null) { + result + ..add('appUri') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + value = object.dwdsVersion; + if (value != null) { + result + ..add('dwdsVersion') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + value = object.extensionUri; + if (value != null) { + result + ..add('extensionUri') + ..add(serializers.serialize(value, + specifiedType: const FullType(String))); + } + return result; + } + + @override + DebugInfo deserialize(Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new DebugInfoBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'appEntrypointPath': + result.appEntrypointPath = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'appId': + result.appId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'appInstanceId': + result.appInstanceId = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'appOrigin': + result.appOrigin = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'appUri': + result.appUri = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'dwdsVersion': + result.dwdsVersion = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + case 'extensionUri': + result.extensionUri = serializers.deserialize(value, + specifiedType: const FullType(String)) as String?; + break; + } + } + + return result.build(); + } +} + +class _$DebugInfo extends DebugInfo { + @override + final String? appEntrypointPath; + @override + final String? appId; + @override + final String? appInstanceId; + @override + final String? appOrigin; + @override + final String? appUri; + @override + final String? dwdsVersion; + @override + final String? extensionUri; + + factory _$DebugInfo([void Function(DebugInfoBuilder)? updates]) => + (new DebugInfoBuilder()..update(updates))._build(); + + _$DebugInfo._( + {this.appEntrypointPath, + this.appId, + this.appInstanceId, + this.appOrigin, + this.appUri, + this.dwdsVersion, + this.extensionUri}) + : super._(); + + @override + DebugInfo rebuild(void Function(DebugInfoBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + DebugInfoBuilder toBuilder() => new DebugInfoBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is DebugInfo && + appEntrypointPath == other.appEntrypointPath && + appId == other.appId && + appInstanceId == other.appInstanceId && + appOrigin == other.appOrigin && + appUri == other.appUri && + dwdsVersion == other.dwdsVersion && + extensionUri == other.extensionUri; + } + + @override + int get hashCode { + return $jf($jc( + $jc( + $jc( + $jc( + $jc($jc($jc(0, appEntrypointPath.hashCode), appId.hashCode), + appInstanceId.hashCode), + appOrigin.hashCode), + appUri.hashCode), + dwdsVersion.hashCode), + extensionUri.hashCode)); + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'DebugInfo') + ..add('appEntrypointPath', appEntrypointPath) + ..add('appId', appId) + ..add('appInstanceId', appInstanceId) + ..add('appOrigin', appOrigin) + ..add('appUri', appUri) + ..add('dwdsVersion', dwdsVersion) + ..add('extensionUri', extensionUri)) + .toString(); + } +} + +class DebugInfoBuilder implements Builder { + _$DebugInfo? _$v; + + String? _appEntrypointPath; + String? get appEntrypointPath => _$this._appEntrypointPath; + set appEntrypointPath(String? appEntrypointPath) => + _$this._appEntrypointPath = appEntrypointPath; + + String? _appId; + String? get appId => _$this._appId; + set appId(String? appId) => _$this._appId = appId; + + String? _appInstanceId; + String? get appInstanceId => _$this._appInstanceId; + set appInstanceId(String? appInstanceId) => + _$this._appInstanceId = appInstanceId; + + String? _appOrigin; + String? get appOrigin => _$this._appOrigin; + set appOrigin(String? appOrigin) => _$this._appOrigin = appOrigin; + + String? _appUri; + String? get appUri => _$this._appUri; + set appUri(String? appUri) => _$this._appUri = appUri; + + String? _dwdsVersion; + String? get dwdsVersion => _$this._dwdsVersion; + set dwdsVersion(String? dwdsVersion) => _$this._dwdsVersion = dwdsVersion; + + String? _extensionUri; + String? get extensionUri => _$this._extensionUri; + set extensionUri(String? extensionUri) => _$this._extensionUri = extensionUri; + + DebugInfoBuilder(); + + DebugInfoBuilder get _$this { + final $v = _$v; + if ($v != null) { + _appEntrypointPath = $v.appEntrypointPath; + _appId = $v.appId; + _appInstanceId = $v.appInstanceId; + _appOrigin = $v.appOrigin; + _appUri = $v.appUri; + _dwdsVersion = $v.dwdsVersion; + _extensionUri = $v.extensionUri; + _$v = null; + } + return this; + } + + @override + void replace(DebugInfo other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$DebugInfo; + } + + @override + void update(void Function(DebugInfoBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + DebugInfo build() => _build(); + + _$DebugInfo _build() { + final _$result = _$v ?? + new _$DebugInfo._( + appEntrypointPath: appEntrypointPath, + appId: appId, + appInstanceId: appInstanceId, + appOrigin: appOrigin, + appUri: appUri, + dwdsVersion: dwdsVersion, + extensionUri: extensionUri); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: always_put_control_body_on_new_line,always_specify_types,annotate_overrides,avoid_annotating_with_dynamic,avoid_as,avoid_catches_without_on_clauses,avoid_returning_this,deprecated_member_use_from_same_package,lines_longer_than_80_chars,no_leading_underscores_for_local_identifiers,omit_local_variable_types,prefer_expression_function_bodies,sort_constructors_first,test_types_in_equals,unnecessary_const,unnecessary_new,unnecessary_lambdas diff --git a/dwds/lib/data/serializers.dart b/dwds/lib/data/serializers.dart index 903ef5941..ffeb31edc 100644 --- a/dwds/lib/data/serializers.dart +++ b/dwds/lib/data/serializers.dart @@ -24,6 +24,7 @@ part 'serializers.g.dart'; BuildResult, ConnectRequest, DebugEvent, + DebugInfo, DevToolsRequest, DevToolsResponse, IsolateExit, diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js index 66f32e907..b728f6589 100644 --- a/dwds/lib/src/injected/client.js +++ b/dwds/lib/src/injected/client.js @@ -1,4 +1,4 @@ -// Generated by dart2js (NullSafetyMode.sound, csp, deferred-serialization, intern-composite-values), the Dart to JavaScript compiler version: 2.19.0-177.0.dev. +// Generated by dart2js (NullSafetyMode.sound, csp, deferred-serialization, intern-composite-values), the Dart to JavaScript compiler version: 2.19.0-331.0.dev. // The code supports the following hooks: // dartPrint(message): // if this function is defined it is called instead of the Dart [print] @@ -1916,7 +1916,7 @@ var kind = rti._kind; if (kind === 6 || kind === 7 || kind === 8) return A.Rti__isUnionOfFunctionType(rti._primary); - return kind === 11 || kind === 12; + return kind === 12 || kind === 13; }, Rti__getCanonicalRecipe(rti) { return rti._canonicalRecipe; @@ -1966,7 +1966,7 @@ if (substitutedBase === base && substitutedArguments === $arguments) return rti; return A._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments); - case 11: + case 12: returnType = rti._primary; substitutedReturnType = A._substitute(universe, returnType, typeArguments, depth); functionParameters = rti._rest; @@ -1974,7 +1974,7 @@ if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters) return rti; return A._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters); - case 12: + case 13: bounds = rti._rest; depth += bounds.length; substitutedBounds = A._substituteArray(universe, bounds, typeArguments, depth); @@ -1983,7 +1983,7 @@ if (substitutedBounds === bounds && substitutedBase === base) return rti; return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true); - case 13: + case 14: index = rti._primary; if (index < depth) return rti; @@ -2199,7 +2199,10 @@ if (!(testRti === type$.legacy_Object)) if (!(testRti === type$.legacy_Never)) if (kind !== 7) - t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull; + if (!(kind === 6 && A._nullIs(testRti._primary))) + t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull; + else + t1 = true; else t1 = true; else @@ -2413,6 +2416,26 @@ s += sep + A._rtiToString(array[i], genericContext); return s; }, + _recordRtiToString(recordType, genericContext) { + var fieldCount, names, namesIndex, s, comma, i, + partialShape = recordType._primary, + fields = recordType._rest; + if ("" === partialShape) + return "(" + A._rtiArrayToString(fields, genericContext) + ")"; + fieldCount = fields.length; + names = partialShape.split(","); + namesIndex = names.length - fieldCount; + for (s = "(", comma = "", i = 0; i < fieldCount; ++i, comma = ", ") { + s += comma; + if (namesIndex === 0) + s += "{"; + s += A._rtiToString(fields[i], genericContext); + if (namesIndex >= 0) + s += " " + names[namesIndex]; + ++namesIndex; + } + return s + "})"; + }, _functionRtiToString(functionType, genericContext, bounds) { var boundsLength, outerContextLength, offset, i, t1, t2, typeParametersText, typeSep, t3, t4, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", "; if (bounds != null) { @@ -2502,7 +2525,7 @@ questionArgument = rti._primary; s = A._rtiToString(questionArgument, genericContext); argumentKind = questionArgument._kind; - return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?"; + return (argumentKind === 12 || argumentKind === 13 ? "(" + s + ")" : s) + "?"; } if (kind === 8) return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">"; @@ -2512,10 +2535,12 @@ return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name; } if (kind === 11) - return A._functionRtiToString(rti, genericContext, null); + return A._recordRtiToString(rti, genericContext); if (kind === 12) + return A._functionRtiToString(rti, genericContext, null); + if (kind === 13) return A._functionRtiToString(rti._primary, genericContext, rti._rest); - if (kind === 13) { + if (kind === 14) { t1 = rti._primary; t2 = genericContext.length; t1 = t2 - 1 - t1; @@ -2723,7 +2748,7 @@ if (probe != null) return probe; rti = new A.Rti(null, null); - rti._kind = 13; + rti._kind = 14; rti._primary = index; rti._canonicalRecipe = key; t1 = A._Universe__installTypeTests(universe, rti); @@ -2788,6 +2813,21 @@ universe.eC.set(key, t1); return t1; }, + _Universe__lookupRecordRti(universe, partialShapeTag, fields) { + var rti, t1, + key = "+" + (partialShapeTag + "(" + A._Universe__canonicalRecipeJoin(fields) + ")"), + probe = universe.eC.get(key); + if (probe != null) + return probe; + rti = new A.Rti(null, null); + rti._kind = 11; + rti._primary = partialShapeTag; + rti._rest = fields; + rti._canonicalRecipe = key; + t1 = A._Universe__installTypeTests(universe, rti); + universe.eC.set(key, t1); + return t1; + }, _Universe__lookupFunctionRti(universe, returnType, parameters) { var sep, key, probe, rti, t1, s = returnType._canonicalRecipe, @@ -2811,7 +2851,7 @@ if (probe != null) return probe; rti = new A.Rti(null, null); - rti._kind = 11; + rti._kind = 12; rti._primary = returnType; rti._rest = parameters; rti._canonicalRecipe = key; @@ -2848,7 +2888,7 @@ } } rti = new A.Rti(null, null); - rti._kind = 12; + rti._kind = 13; rti._primary = baseFunctionType; rti._rest = bounds; rti._canonicalRecipe = key; @@ -2858,7 +2898,7 @@ return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize}; }, _Parser_parse(parser) { - var t2, i, ch, t3, array, head, base, parameters, optionalPositional, named, item, + var t2, i, ch, t3, array, head, base, end, item, source = parser.r, t1 = parser.s; for (t2 = source.length, i = 0; i < t2;) { @@ -2910,7 +2950,7 @@ else { base = A._Parser_toType(t3, parser.e, head); switch (base._kind) { - case 11: + case 12: t1.push(A._Universe__lookupGenericFunctionRti(t3, base, array, parser.n)); break; default: @@ -2935,36 +2975,12 @@ t1.push(A._Universe__lookupFutureOrRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); break; case 40: + t1.push(-3); t1.push(parser.p); parser.p = t1.length; break; case 41: - t3 = parser.u; - parameters = new A._FunctionParameters(); - optionalPositional = t3.sEA; - named = t3.sEA; - head = t1.pop(); - if (typeof head == "number") - switch (head) { - case -1: - optionalPositional = t1.pop(); - break; - case -2: - named = t1.pop(); - break; - default: - t1.push(head); - break; - } - else - t1.push(head); - array = t1.splice(parser.p); - A._Parser_toTypes(parser.u, parser.e, array); - parser.p = t1.pop(); - parameters._requiredPositional = array; - parameters._optionalPositional = optionalPositional; - parameters._named = named; - t1.push(A._Universe__lookupFunctionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parameters)); + A._Parser_handleArguments(parser, t1); break; case 91: t1.push(parser.p); @@ -2988,6 +3004,14 @@ t1.push(array); t1.push(-2); break; + case 43: + end = source.indexOf("(", i); + t1.push(source.substring(i, end)); + t1.push(-4); + t1.push(parser.p); + parser.p = t1.length; + i = end + 1; + break; default: throw "Bad character " + ch; } @@ -3040,6 +3064,54 @@ stack.push(string); return i; }, + _Parser_handleArguments(parser, stack) { + var optionalPositional, named, requiredPositional, returnType, parameters, _null = null, + t1 = parser.u, + head = stack.pop(); + if (typeof head == "number") + switch (head) { + case -1: + optionalPositional = stack.pop(); + named = _null; + break; + case -2: + named = stack.pop(); + optionalPositional = _null; + break; + default: + stack.push(head); + named = _null; + optionalPositional = named; + break; + } + else { + stack.push(head); + named = _null; + optionalPositional = named; + } + requiredPositional = A._Parser_collectArray(parser, stack); + head = stack.pop(); + switch (head) { + case -3: + head = stack.pop(); + if (optionalPositional == null) + optionalPositional = t1.sEA; + if (named == null) + named = t1.sEA; + returnType = A._Parser_toType(t1, parser.e, head); + parameters = new A._FunctionParameters(); + parameters._requiredPositional = requiredPositional; + parameters._optionalPositional = optionalPositional; + parameters._named = named; + stack.push(A._Universe__lookupFunctionRti(t1, returnType, parameters)); + return; + case -4: + stack.push(A._Universe__lookupRecordRti(t1, stack.pop(), requiredPositional)); + return; + default: + throw A.wrapException(A.AssertionError$("Unexpected state under `()`: " + A.S(head))); + } + }, _Parser_handleExtendedOperations(parser, stack) { var $top = stack.pop(); if (0 === $top) { @@ -3052,6 +3124,12 @@ } throw A.wrapException(A.AssertionError$("Unexpected extended operation " + A.S($top))); }, + _Parser_collectArray(parser, stack) { + var array = stack.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = stack.pop(); + return array; + }, _Parser_toType(universe, environment, item) { if (typeof item == "string") return A._Universe__lookupInterfaceRti(universe, item, universe.sEA); @@ -3119,7 +3197,7 @@ t1 = true; if (t1) return true; - leftTypeVariable = sKind === 13; + leftTypeVariable = sKind === 14; if (leftTypeVariable) if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv)) return true; @@ -3163,13 +3241,13 @@ } if (leftTypeVariable) return false; - t1 = sKind !== 11; - if ((!t1 || sKind === 12) && t === type$.Function) + t1 = sKind !== 12; + if ((!t1 || sKind === 13) && t === type$.Function) return true; - if (tKind === 12) { + if (tKind === 13) { if (s === type$.JavaScriptFunction) return true; - if (sKind !== 12) + if (sKind !== 13) return false; sBounds = s._rest; tBounds = t._rest; @@ -3186,7 +3264,7 @@ } return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv); } - if (tKind === 11) { + if (tKind === 12) { if (s === type$.JavaScriptFunction) return true; if (t1) @@ -3198,6 +3276,11 @@ return false; return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv); } + t1 = sKind === 11; + if (t1 && t === type$.Record) + return true; + if (t1 && tKind === 11) + return A._isRecordSubtype(universe, s, sEnv, t, tEnv); return false; }, _isFunctionSubtype(universe, s, sEnv, t, tEnv) { @@ -3305,6 +3388,20 @@ } return true; }, + _isRecordSubtype(universe, s, sEnv, t, tEnv) { + var i, + sFields = s._rest, + tFields = t._rest, + sCount = sFields.length; + if (sCount !== tFields.length) + return false; + if (s._primary !== t._primary) + return false; + for (i = 0; i < sCount; ++i) + if (!A._isSubtype(universe, sFields[i], sEnv, tFields[i], tEnv)) + return false; + return true; + }, isNullable(t) { var t1, kind = t._kind; @@ -4991,8 +5088,8 @@ } return string; }, - NoSuchMethodError$(receiver, memberName, positionalArguments, namedArguments) { - return new A.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments); + NoSuchMethodError$_(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames) { + return new A.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames); }, _Uri__uriEncode(canonicalTable, text, encoding, spaceToPlus) { var t1, bytes, i, t2, byte, t3, @@ -5564,66 +5661,78 @@ scheme = _null; isSimple = false; } else { - if (!(queryStart < end && queryStart === pathStart + 2 && B.JSString_methods.startsWith$2(uri, "..", pathStart))) - t2 = queryStart > pathStart + 2 && B.JSString_methods.startsWith$2(uri, "/..", queryStart - 3); + if (!B.JSString_methods.startsWith$2(uri, "\\", pathStart)) + if (hostStart > 0) + t2 = B.JSString_methods.startsWith$2(uri, "\\", hostStart - 1) || B.JSString_methods.startsWith$2(uri, "\\", hostStart - 2); + else + t2 = false; else t2 = true; if (t2) { scheme = _null; isSimple = false; } else { - if (schemeEnd === 4) - if (B.JSString_methods.startsWith$2(uri, "file", 0)) { - if (hostStart <= 0) { - if (!B.JSString_methods.startsWith$2(uri, "/", pathStart)) { - schemeAuth = "file:///"; - delta = 3; - } else { - schemeAuth = "file://"; - delta = 2; + if (!(queryStart < end && queryStart === pathStart + 2 && B.JSString_methods.startsWith$2(uri, "..", pathStart))) + t2 = queryStart > pathStart + 2 && B.JSString_methods.startsWith$2(uri, "/..", queryStart - 3); + else + t2 = true; + if (t2) { + scheme = _null; + isSimple = false; + } else { + if (schemeEnd === 4) + if (B.JSString_methods.startsWith$2(uri, "file", 0)) { + if (hostStart <= 0) { + if (!B.JSString_methods.startsWith$2(uri, "/", pathStart)) { + schemeAuth = "file:///"; + delta = 3; + } else { + schemeAuth = "file://"; + delta = 2; + } + uri = schemeAuth + B.JSString_methods.substring$2(uri, pathStart, end); + schemeEnd -= 0; + t1 = delta - 0; + queryStart += t1; + fragmentStart += t1; + end = uri.length; + hostStart = 7; + portStart = 7; + pathStart = 7; + } else if (pathStart === queryStart) { + ++fragmentStart; + queryStart0 = queryStart + 1; + uri = B.JSString_methods.replaceRange$3(uri, pathStart, queryStart, "/"); + ++end; + queryStart = queryStart0; } - uri = schemeAuth + B.JSString_methods.substring$2(uri, pathStart, end); - schemeEnd -= 0; - t1 = delta - 0; - queryStart += t1; - fragmentStart += t1; - end = uri.length; - hostStart = 7; - portStart = 7; - pathStart = 7; - } else if (pathStart === queryStart) { - ++fragmentStart; - queryStart0 = queryStart + 1; - uri = B.JSString_methods.replaceRange$3(uri, pathStart, queryStart, "/"); - ++end; - queryStart = queryStart0; - } - scheme = "file"; - } else if (B.JSString_methods.startsWith$2(uri, "http", 0)) { - if (t1 && portStart + 3 === pathStart && B.JSString_methods.startsWith$2(uri, "80", portStart + 1)) { - fragmentStart -= 3; - pathStart0 = pathStart - 3; - queryStart -= 3; + scheme = "file"; + } else if (B.JSString_methods.startsWith$2(uri, "http", 0)) { + if (t1 && portStart + 3 === pathStart && B.JSString_methods.startsWith$2(uri, "80", portStart + 1)) { + fragmentStart -= 3; + pathStart0 = pathStart - 3; + queryStart -= 3; + uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, ""); + end -= 3; + pathStart = pathStart0; + } + scheme = "http"; + } else + scheme = _null; + else if (schemeEnd === 5 && B.JSString_methods.startsWith$2(uri, "https", 0)) { + if (t1 && portStart + 4 === pathStart && B.JSString_methods.startsWith$2(uri, "443", portStart + 1)) { + fragmentStart -= 4; + pathStart0 = pathStart - 4; + queryStart -= 4; uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, ""); end -= 3; pathStart = pathStart0; } - scheme = "http"; + scheme = "https"; } else scheme = _null; - else if (schemeEnd === 5 && B.JSString_methods.startsWith$2(uri, "https", 0)) { - if (t1 && portStart + 4 === pathStart && B.JSString_methods.startsWith$2(uri, "443", portStart + 1)) { - fragmentStart -= 4; - pathStart0 = pathStart - 4; - queryStart -= 4; - uri = B.JSString_methods.replaceRange$3(uri, portStart, pathStart, ""); - end -= 3; - pathStart = pathStart0; - } - scheme = "https"; - } else - scheme = _null; - isSimple = true; + isSimple = true; + } } } } @@ -6033,7 +6142,7 @@ _Uri__makeUserInfo(userInfo, start, end) { if (userInfo == null) return ""; - return A._Uri__normalizeOrSubstring(userInfo, start, end, B.List_gRj, false); + return A._Uri__normalizeOrSubstring(userInfo, start, end, B.List_gRj, false, false); }, _Uri__makePath(path, start, end, pathSegments, scheme, hasAuthority) { var t1, result, @@ -6047,7 +6156,7 @@ } else if (pathSegments != null) throw A.wrapException(A.ArgumentError$("Both path and pathSegments specified", null)); else - result = A._Uri__normalizeOrSubstring(path, start, end, B.List_qg4, true); + result = A._Uri__normalizeOrSubstring(path, start, end, B.List_qg4, true, true); if (result.length === 0) { if (isFile) return "/"; @@ -6057,19 +6166,19 @@ }, _Uri__normalizePath(path, scheme, hasAuthority) { var t1 = scheme.length === 0; - if (t1 && !hasAuthority && !B.JSString_methods.startsWith$1(path, "/")) + if (t1 && !hasAuthority && !B.JSString_methods.startsWith$1(path, "/") && !B.JSString_methods.startsWith$1(path, "\\")) return A._Uri__normalizeRelativePath(path, !t1 || hasAuthority); return A._Uri__removeDotSegments(path); }, _Uri__makeQuery(query, start, end, queryParameters) { if (query != null) - return A._Uri__normalizeOrSubstring(query, start, end, B.List_CVk, true); + return A._Uri__normalizeOrSubstring(query, start, end, B.List_CVk, true, false); return null; }, _Uri__makeFragment(fragment, start, end) { if (fragment == null) return null; - return A._Uri__normalizeOrSubstring(fragment, start, end, B.List_CVk, true); + return A._Uri__normalizeOrSubstring(fragment, start, end, B.List_CVk, true, false); }, _Uri__normalizeEscape(source, index, lowerCase) { var firstDigit, secondDigit, firstDigitValue, secondDigitValue, value, @@ -6139,11 +6248,11 @@ } return A.String_String$fromCharCodes(codeUnits, 0, null); }, - _Uri__normalizeOrSubstring(component, start, end, charTable, escapeDelimiters) { - var t1 = A._Uri__normalize(component, start, end, charTable, escapeDelimiters); + _Uri__normalizeOrSubstring(component, start, end, charTable, escapeDelimiters, replaceBackslash) { + var t1 = A._Uri__normalize(component, start, end, charTable, escapeDelimiters, replaceBackslash); return t1 == null ? B.JSString_methods.substring$2(component, start, end) : t1; }, - _Uri__normalize(component, start, end, charTable, escapeDelimiters) { + _Uri__normalize(component, start, end, charTable, escapeDelimiters, replaceBackslash) { var t1, index, sectionStart, buffer, char, t2, replacement, sourceLength, tail, t3, _null = null; for (t1 = !escapeDelimiters, index = start, sectionStart = index, buffer = _null; index < end;) { char = B.JSString_methods.codeUnitAt$1(component, index); @@ -6168,6 +6277,9 @@ sourceLength = 1; } else sourceLength = 3; + } else if (char === 92 && replaceBackslash) { + replacement = "/"; + sourceLength = 1; } else { if (t1) if (char <= 93) { @@ -6365,7 +6477,7 @@ if ((indices.length & 1) === 1) text = B.C_Base64Codec.normalize$3(0, text, t2, t1); else { - data = A._Uri__normalize(text, t2, t1, B.List_CVk, true); + data = A._Uri__normalize(text, t2, t1, B.List_CVk, true, false); if (data != null) text = B.JSString_methods.replaceRange$3(text, t2, t1, data); } @@ -6374,7 +6486,7 @@ _createTables() { var _i, t2, t3, t4, b, _s77_ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=", - _s1_ = ".", _s1_0 = ":", _s1_1 = "/", _s1_2 = "?", _s1_3 = "#", + _s1_ = ".", _s1_0 = ":", _s1_1 = "/", _s1_2 = "\\", _s1_3 = "?", _s1_4 = "#", _s2_ = "/\\", t1 = type$.Uint8List, tables = J.JSArray_JSArray$allocateGrowable(22, t1); for (_i = 0; _i < 22; ++_i) @@ -6387,40 +6499,45 @@ t3.call$3(t1, _s1_, 14); t3.call$3(t1, _s1_0, 34); t3.call$3(t1, _s1_1, 3); - t3.call$3(t1, _s1_2, 172); - t3.call$3(t1, _s1_3, 205); + t3.call$3(t1, _s1_2, 227); + t3.call$3(t1, _s1_3, 172); + t3.call$3(t1, _s1_4, 205); b = t2.call$2(14, 225); t3.call$3(b, _s77_, 1); t3.call$3(b, _s1_, 15); t3.call$3(b, _s1_0, 34); - t3.call$3(b, _s1_1, 234); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s2_, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(15, 225); t3.call$3(b, _s77_, 1); t3.call$3(b, "%", 225); t3.call$3(b, _s1_0, 34); t3.call$3(b, _s1_1, 9); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 233); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(1, 225); t3.call$3(b, _s77_, 1); t3.call$3(b, _s1_0, 34); t3.call$3(b, _s1_1, 10); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(2, 235); t3.call$3(b, _s77_, 139); t3.call$3(b, _s1_1, 131); + t3.call$3(b, _s1_2, 131); t3.call$3(b, _s1_, 146); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(3, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_1, 68); + t3.call$3(b, _s1_2, 68); t3.call$3(b, _s1_, 18); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(4, 229); t3.call$3(b, _s77_, 5); t4.call$3(b, "AZ", 229); @@ -6428,75 +6545,82 @@ t3.call$3(b, "@", 68); t3.call$3(b, "[", 232); t3.call$3(b, _s1_1, 138); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 138); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(5, 229); t3.call$3(b, _s77_, 5); t4.call$3(b, "AZ", 229); t3.call$3(b, _s1_0, 102); t3.call$3(b, "@", 68); t3.call$3(b, _s1_1, 138); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 138); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(6, 231); t4.call$3(b, "19", 7); t3.call$3(b, "@", 68); t3.call$3(b, _s1_1, 138); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 138); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(7, 231); t4.call$3(b, "09", 7); t3.call$3(b, "@", 68); t3.call$3(b, _s1_1, 138); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 138); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); t3.call$3(t2.call$2(8, 8), "]", 5); b = t2.call$2(9, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_, 16); - t3.call$3(b, _s1_1, 234); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s2_, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(16, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_, 17); - t3.call$3(b, _s1_1, 234); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s2_, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(17, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_1, 9); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 233); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(10, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_, 18); - t3.call$3(b, _s1_1, 234); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_1, 10); + t3.call$3(b, _s1_2, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(18, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_, 19); - t3.call$3(b, _s1_1, 234); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s2_, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(19, 235); t3.call$3(b, _s77_, 11); - t3.call$3(b, _s1_1, 234); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s2_, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(11, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_1, 10); - t3.call$3(b, _s1_2, 172); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_2, 234); + t3.call$3(b, _s1_3, 172); + t3.call$3(b, _s1_4, 205); b = t2.call$2(12, 236); t3.call$3(b, _s77_, 12); - t3.call$3(b, _s1_2, 12); - t3.call$3(b, _s1_3, 205); + t3.call$3(b, _s1_3, 12); + t3.call$3(b, _s1_4, 205); b = t2.call$2(13, 237); t3.call$3(b, _s77_, 13); - t3.call$3(b, _s1_2, 13); + t3.call$3(b, _s1_3, 13); t4.call$3(t2.call$2(20, 245), "az", 21); b = t2.call$2(21, 245); t4.call$3(b, "az", 21); @@ -6593,12 +6717,13 @@ _.name = t3; _.message = t4; }, - NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3) { + NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3, t4) { var _ = this; _._core$_receiver = t0; _._core$_memberName = t1; _._core$_arguments = t2; _._namedArguments = t3; + _._existingArgumentNames = t4; }, UnsupportedError: function UnsupportedError(t0) { this.message = t0; @@ -7000,6 +7125,8 @@ }, SelectElement: function SelectElement() { }, + SharedArrayBuffer: function SharedArrayBuffer() { + }, SourceBuffer: function SourceBuffer() { }, SourceBufferList: function SourceBufferList() { @@ -7314,8 +7441,8 @@ _AcceptStructuredClone: function _AcceptStructuredClone() { }, _AcceptStructuredClone_walk_closure: function _AcceptStructuredClone_walk_closure(t0, t1) { - this._box_0 = t0; - this.$this = t1; + this.$this = t0; + this.map = t1; }, _convertDartToNative_Value_closure: function _convertDartToNative_Value_closure(t0) { this.array = t0; @@ -9205,7 +9332,7 @@ }, noSuchMethod$1(receiver, invocation) { type$.Invocation._as(invocation); - throw A.wrapException(A.NoSuchMethodError$(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); + throw A.wrapException(new A.NoSuchMethodError(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments(), null)); }, get$runtimeType(receiver) { return A.getRuntimeType(receiver); @@ -9488,7 +9615,6 @@ return receiver[index]; }, $indexSet(receiver, index, value) { - A._asInt(index); A._arrayInstanceType(receiver)._precomputed1._as(value); if (!!receiver.immutable$list) A.throwExpression(A.UnsupportedError$("indexed set")); @@ -9933,7 +10059,7 @@ }, $indexSet(_, index, value) { var t1 = this.$ti; - J.$indexSet$ax(this.__internal$_source, A._asInt(index), t1._precomputed1._as(t1._rest[1]._as(value))); + J.$indexSet$ax(this.__internal$_source, index, t1._precomputed1._as(t1._rest[1]._as(value))); }, sort$1(_, compare) { var t1; @@ -10369,7 +10495,6 @@ A.FixedLengthListMixin.prototype = {}; A.UnmodifiableListMixin.prototype = { $indexSet(_, index, value) { - A._asInt(index); A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value); throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list")); }, @@ -11172,7 +11297,6 @@ return receiver[index]; }, $indexSet(receiver, index, value) { - A._asInt(index); A._asDouble(value); A._checkValidIndex(index, receiver, receiver.length); receiver[index] = value; @@ -11183,7 +11307,6 @@ }; A.NativeTypedArrayOfInt.prototype = { $indexSet(receiver, index, value) { - A._asInt(index); A._asInt(value); A._checkValidIndex(index, receiver, receiver.length); receiver[index] = value; @@ -16044,7 +16167,7 @@ }, noSuchMethod$1(_, invocation) { type$.Invocation._as(invocation); - throw A.wrapException(A.NoSuchMethodError$(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); + throw A.wrapException(A.NoSuchMethodError$_(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments(), null)); }, get$runtimeType(_) { return A.getRuntimeType(this); @@ -16279,11 +16402,11 @@ queryIndex = B.JSString_methods.indexOf$2(t2, "?", t1); end = t2.length; if (queryIndex >= 0) { - query = A._Uri__normalizeOrSubstring(t2, queryIndex + 1, end, B.List_CVk, false); + query = A._Uri__normalizeOrSubstring(t2, queryIndex + 1, end, B.List_CVk, false, false); end = queryIndex; } else query = _null; - t1 = _this._uriCache = new A._DataUri("data", "", _null, _null, A._Uri__normalizeOrSubstring(t2, t1, end, B.List_qg4, false), query, _null); + t1 = _this._uriCache = new A._DataUri("data", "", _null, _null, A._Uri__normalizeOrSubstring(t2, t1, end, B.List_qg4, false, false), query, _null); } return t1; }, @@ -16558,7 +16681,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Rectangle_num._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -16657,7 +16779,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); A._asString(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -16698,7 +16819,6 @@ return this.$ti._precomputed1._as(t1[index]); }, $indexSet(_, index, value) { - A._asInt(index); this.$ti._precomputed1._as(value); throw A.wrapException(A.UnsupportedError$("Cannot modify list")); }, @@ -16859,7 +16979,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.File._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -16917,7 +17036,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17105,7 +17223,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.MimeType._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17165,7 +17282,6 @@ }, $indexSet(_, index, value) { var t1, t2; - A._asInt(index); type$.Node._as(value); t1 = this._this; t2 = t1.childNodes; @@ -17227,7 +17343,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17272,7 +17387,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Plugin._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17351,6 +17465,7 @@ return receiver.length; } }; + A.SharedArrayBuffer.prototype = {$isSharedArrayBuffer: 1}; A.SourceBuffer.prototype = {$isSourceBuffer: 1}; A.SourceBufferList.prototype = { get$length(receiver) { @@ -17368,7 +17483,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.SourceBuffer._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17408,7 +17522,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.SpeechGrammar._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17560,7 +17673,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.TextTrackCue._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17599,7 +17711,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.TextTrack._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17646,7 +17757,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Touch._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17730,7 +17840,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.CssRule._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17842,7 +17951,6 @@ return receiver[index]; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.nullable_Gamepad._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17877,7 +17985,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17916,7 +18023,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.SpeechRecognitionResult._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17955,7 +18061,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.StyleSheet._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -18538,7 +18643,7 @@ return e; if (type$.ImageData._is(e)) return e; - if (type$.NativeByteBuffer._is(e) || type$.NativeTypedData._is(e) || type$.MessagePort._is(e)) + if (type$.NativeByteBuffer._is(e) || type$.NativeTypedData._is(e) || type$.MessagePort._is(e) || type$.SharedArrayBuffer._is(e)) return e; if (type$.Map_dynamic_dynamic._is(e)) { slot = _this.findSlot$1(e); @@ -18618,7 +18723,7 @@ return $length; }, walk$1(e) { - var t1, slot, copy, t2, t3, $length, t4, i, _this = this, _box_0 = {}; + var t1, slot, copy, t2, map, t3, $length, t4, i, _this = this; if (e == null) return e; if (A._isBool(e)) @@ -18647,15 +18752,14 @@ t1 = _this.copies; if (!(slot < t1.length)) return A.ioore(t1, slot); - copy = _box_0.copy = t1[slot]; + copy = t1[slot]; if (copy != null) return copy; t2 = type$.dynamic; - copy = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); - _box_0.copy = copy; - B.JSArray_methods.$indexSet(t1, slot, copy); - _this.forEachJsField$2(e, new A._AcceptStructuredClone_walk_closure(_box_0, _this)); - return _box_0.copy; + map = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); + B.JSArray_methods.$indexSet(t1, slot, map); + _this.forEachJsField$2(e, new A._AcceptStructuredClone_walk_closure(_this, map)); + return map; } t1 = e instanceof Array; t1.toString; @@ -18691,10 +18795,9 @@ }; A._AcceptStructuredClone_walk_closure.prototype = { call$2(key, value) { - var t1 = this._box_0.copy, - t2 = this.$this.walk$1(value); - J.$indexSet$ax(t1, key, t2); - return t2; + var t1 = this.$this.walk$1(value); + this.map.$indexSet(0, key, t1); + return t1; }, $signature: 40 }; @@ -18801,7 +18904,6 @@ return A._convertToDart(this._js$_jsObject[property]); }, $indexSet(_, property, value) { - type$.Object._as(property); if (typeof property != "string" && typeof property != "number") throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); this._js$_jsObject[property] = A._convertToJS(value); @@ -18853,9 +18955,7 @@ return this.$ti._precomputed1._as(this.super$JsObject$$index(0, index)); }, $indexSet(_, index, value) { - type$.Object._as(index); - if (A._isInt(index)) - this._checkIndex$1(index); + this._checkIndex$1(index); this.super$_JsArray_JsObject_ListMixin$$indexSet(0, index, value); }, get$length(_) { @@ -18874,7 +18974,7 @@ }; A._JsArray_JsObject_ListMixin.prototype = { $indexSet(_, property, value) { - return this.super$JsObject$$indexSet(0, type$.Object._as(property), value); + return this.super$JsObject$$indexSet(0, property, value); } }; A.promiseToFuture_closure.prototype = { @@ -18990,7 +19090,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Length._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19030,7 +19129,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Number._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19075,7 +19173,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); A._asString(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19137,7 +19234,6 @@ return t1; }, $indexSet(receiver, index, value) { - A._asInt(index); type$.Transform._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19447,7 +19543,6 @@ return this.toList$1$growable($receiver, true); }, $indexSet(_, index, element) { - A._asInt(index); this.$ti._precomputed1._as(element); this._maybeCopyBeforeWrite$0(); J.$indexSet$ax(this._copy_on_write_list$_list, index, element); @@ -21909,7 +22004,6 @@ }, $indexSet(_, index, value) { var _this = this; - A._asInt(index); A._instanceType(_this)._eval$1("QueueList.E")._as(value); if (index < 0 || index >= _this.get$length(_this)) throw A.wrapException(A.RangeError$("Index " + index + " must be in the range [0.." + _this.get$length(_this) + ").")); @@ -25585,7 +25679,7 @@ _inherit(A.Object, null); _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapMixin, A.Error, A.SentinelValue, A.ListIterator, A.Iterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._ListBase_Object_ListMixin, A.Symbol, A.MapView, A.ConstantMap, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A.StreamSubscription, A.StreamTransformerBase, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.__SetBase_Object_SetMixin, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A.IterableMixin, A.ListMixin, A._UnmodifiableMapMixin, A._ListQueueIterator, A.SetMixin, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A._JsonStringifier, A._Utf8Encoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.Expando, A.CssStyleDeclarationBase, A.EventStreamProvider, A._Html5NodeValidator, A.ImmutableListMixin, A.NodeValidatorBuilder, A._SimpleNodeValidator, A._SvgNodeValidator, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._SameOriginUriPolicy, A._ValidatingTreeSanitizer, A._StructuredClone, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A._JSRandom, A._Random, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.CopyOnWriteList, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.UriSerializer, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.SocketClient, A.BatchedStreamController, A.Int64, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.WebSocketChannelException, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]); _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JSArray, J.JSNumber, J.JSString, A.NativeByteBuffer, A.NativeTypedData]); - _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.Event, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A.DomImplementation, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); + _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.Event, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A.DomImplementation, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SharedArrayBuffer, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction, A.Promise, A.RequireLoader, A.JsError, A.JsMap]); _inherit(J.JSUnmodifiableArray, J.JSArray); _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]); @@ -25944,6 +26038,7 @@ Promise_bool_Function_String: findType("Promise<1&>(String)"), Promise_void: findType("Promise<1&>"), QueueList_Result_DebugEvent: findType("QueueList>"), + Record: findType("Record"), Rectangle_num: findType("Rectangle"), RegExp: findType("RegExp"), RegExpMatch: findType("RegExpMatch"), @@ -25958,6 +26053,7 @@ SetEquality_dynamic: findType("SetEquality<@>"), SetMultimapBuilder_dynamic_dynamic: findType("SetMultimapBuilder<@,@>"), Set_dynamic: findType("Set<@>"), + SharedArrayBuffer: findType("SharedArrayBuffer"), SourceBuffer: findType("SourceBuffer"), SpeechGrammar: findType("SpeechGrammar"), SpeechRecognitionResult: findType("SpeechRecognitionResult"), @@ -26573,8 +26669,8 @@ } init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); }(); - hunkHelpers.setOrUpdateInterceptorsByTag({WebGL: J.Interceptor, AnimationEffectReadOnly: J.JavaScriptObject, AnimationEffectTiming: J.JavaScriptObject, AnimationEffectTimingReadOnly: J.JavaScriptObject, AnimationTimeline: J.JavaScriptObject, AnimationWorkletGlobalScope: J.JavaScriptObject, AuthenticatorAssertionResponse: J.JavaScriptObject, AuthenticatorAttestationResponse: J.JavaScriptObject, AuthenticatorResponse: J.JavaScriptObject, BackgroundFetchFetch: J.JavaScriptObject, BackgroundFetchManager: J.JavaScriptObject, BackgroundFetchSettledFetch: J.JavaScriptObject, BarProp: J.JavaScriptObject, BarcodeDetector: J.JavaScriptObject, BluetoothRemoteGATTDescriptor: J.JavaScriptObject, Body: J.JavaScriptObject, BudgetState: J.JavaScriptObject, CacheStorage: J.JavaScriptObject, CanvasGradient: J.JavaScriptObject, CanvasPattern: J.JavaScriptObject, CanvasRenderingContext2D: J.JavaScriptObject, Client: J.JavaScriptObject, Clients: J.JavaScriptObject, CookieStore: J.JavaScriptObject, Coordinates: J.JavaScriptObject, Credential: J.JavaScriptObject, CredentialUserData: J.JavaScriptObject, CredentialsContainer: J.JavaScriptObject, Crypto: J.JavaScriptObject, CryptoKey: J.JavaScriptObject, CSS: J.JavaScriptObject, CSSVariableReferenceValue: J.JavaScriptObject, CustomElementRegistry: J.JavaScriptObject, DataTransfer: J.JavaScriptObject, DataTransferItem: J.JavaScriptObject, DeprecatedStorageInfo: J.JavaScriptObject, DeprecatedStorageQuota: J.JavaScriptObject, DeprecationReport: J.JavaScriptObject, DetectedBarcode: J.JavaScriptObject, DetectedFace: J.JavaScriptObject, DetectedText: J.JavaScriptObject, DeviceAcceleration: J.JavaScriptObject, DeviceRotationRate: J.JavaScriptObject, DirectoryEntry: J.JavaScriptObject, webkitFileSystemDirectoryEntry: J.JavaScriptObject, FileSystemDirectoryEntry: J.JavaScriptObject, DirectoryReader: J.JavaScriptObject, WebKitDirectoryReader: J.JavaScriptObject, webkitFileSystemDirectoryReader: J.JavaScriptObject, FileSystemDirectoryReader: J.JavaScriptObject, DocumentOrShadowRoot: J.JavaScriptObject, DocumentTimeline: J.JavaScriptObject, DOMError: J.JavaScriptObject, Iterator: J.JavaScriptObject, DOMMatrix: J.JavaScriptObject, DOMMatrixReadOnly: J.JavaScriptObject, DOMParser: J.JavaScriptObject, DOMPoint: J.JavaScriptObject, DOMPointReadOnly: J.JavaScriptObject, DOMQuad: J.JavaScriptObject, DOMStringMap: J.JavaScriptObject, Entry: J.JavaScriptObject, webkitFileSystemEntry: J.JavaScriptObject, FileSystemEntry: J.JavaScriptObject, External: J.JavaScriptObject, FaceDetector: J.JavaScriptObject, FederatedCredential: J.JavaScriptObject, FileEntry: J.JavaScriptObject, webkitFileSystemFileEntry: J.JavaScriptObject, FileSystemFileEntry: J.JavaScriptObject, DOMFileSystem: J.JavaScriptObject, WebKitFileSystem: J.JavaScriptObject, webkitFileSystem: J.JavaScriptObject, FileSystem: J.JavaScriptObject, FontFace: J.JavaScriptObject, FontFaceSource: J.JavaScriptObject, FormData: J.JavaScriptObject, GamepadButton: J.JavaScriptObject, GamepadPose: J.JavaScriptObject, Geolocation: J.JavaScriptObject, Position: J.JavaScriptObject, GeolocationPosition: J.JavaScriptObject, Headers: J.JavaScriptObject, HTMLHyperlinkElementUtils: J.JavaScriptObject, IdleDeadline: J.JavaScriptObject, ImageBitmap: J.JavaScriptObject, ImageBitmapRenderingContext: J.JavaScriptObject, ImageCapture: J.JavaScriptObject, InputDeviceCapabilities: J.JavaScriptObject, IntersectionObserver: J.JavaScriptObject, IntersectionObserverEntry: J.JavaScriptObject, InterventionReport: J.JavaScriptObject, KeyframeEffect: J.JavaScriptObject, KeyframeEffectReadOnly: J.JavaScriptObject, MediaCapabilities: J.JavaScriptObject, MediaCapabilitiesInfo: J.JavaScriptObject, MediaDeviceInfo: J.JavaScriptObject, MediaError: J.JavaScriptObject, MediaKeyStatusMap: J.JavaScriptObject, MediaKeySystemAccess: J.JavaScriptObject, MediaKeys: J.JavaScriptObject, MediaKeysPolicy: J.JavaScriptObject, MediaMetadata: J.JavaScriptObject, MediaSession: J.JavaScriptObject, MediaSettingsRange: J.JavaScriptObject, MemoryInfo: J.JavaScriptObject, MessageChannel: J.JavaScriptObject, Metadata: J.JavaScriptObject, MutationObserver: J.JavaScriptObject, WebKitMutationObserver: J.JavaScriptObject, MutationRecord: J.JavaScriptObject, NavigationPreloadManager: J.JavaScriptObject, Navigator: J.JavaScriptObject, NavigatorAutomationInformation: J.JavaScriptObject, NavigatorConcurrentHardware: J.JavaScriptObject, NavigatorCookies: J.JavaScriptObject, NavigatorUserMediaError: J.JavaScriptObject, NodeFilter: J.JavaScriptObject, NodeIterator: J.JavaScriptObject, NonDocumentTypeChildNode: J.JavaScriptObject, NonElementParentNode: J.JavaScriptObject, NoncedElement: J.JavaScriptObject, OffscreenCanvasRenderingContext2D: J.JavaScriptObject, OverconstrainedError: J.JavaScriptObject, PaintRenderingContext2D: J.JavaScriptObject, PaintSize: J.JavaScriptObject, PaintWorkletGlobalScope: J.JavaScriptObject, PasswordCredential: J.JavaScriptObject, Path2D: J.JavaScriptObject, PaymentAddress: J.JavaScriptObject, PaymentInstruments: J.JavaScriptObject, PaymentManager: J.JavaScriptObject, PaymentResponse: J.JavaScriptObject, PerformanceEntry: J.JavaScriptObject, PerformanceLongTaskTiming: J.JavaScriptObject, PerformanceMark: J.JavaScriptObject, PerformanceMeasure: J.JavaScriptObject, PerformanceNavigation: J.JavaScriptObject, PerformanceNavigationTiming: J.JavaScriptObject, PerformanceObserver: J.JavaScriptObject, PerformanceObserverEntryList: J.JavaScriptObject, PerformancePaintTiming: J.JavaScriptObject, PerformanceResourceTiming: J.JavaScriptObject, PerformanceServerTiming: J.JavaScriptObject, PerformanceTiming: J.JavaScriptObject, Permissions: J.JavaScriptObject, PhotoCapabilities: J.JavaScriptObject, PositionError: J.JavaScriptObject, GeolocationPositionError: J.JavaScriptObject, Presentation: J.JavaScriptObject, PresentationReceiver: J.JavaScriptObject, PublicKeyCredential: J.JavaScriptObject, PushManager: J.JavaScriptObject, PushMessageData: J.JavaScriptObject, PushSubscription: J.JavaScriptObject, PushSubscriptionOptions: J.JavaScriptObject, Range: J.JavaScriptObject, RelatedApplication: J.JavaScriptObject, ReportBody: J.JavaScriptObject, ReportingObserver: J.JavaScriptObject, ResizeObserver: J.JavaScriptObject, ResizeObserverEntry: J.JavaScriptObject, RTCCertificate: J.JavaScriptObject, RTCIceCandidate: J.JavaScriptObject, mozRTCIceCandidate: J.JavaScriptObject, RTCLegacyStatsReport: J.JavaScriptObject, RTCRtpContributingSource: J.JavaScriptObject, RTCRtpReceiver: J.JavaScriptObject, RTCRtpSender: J.JavaScriptObject, RTCSessionDescription: J.JavaScriptObject, mozRTCSessionDescription: J.JavaScriptObject, RTCStatsResponse: J.JavaScriptObject, Screen: J.JavaScriptObject, ScrollState: J.JavaScriptObject, ScrollTimeline: J.JavaScriptObject, Selection: J.JavaScriptObject, SharedArrayBuffer: J.JavaScriptObject, SpeechRecognitionAlternative: J.JavaScriptObject, SpeechSynthesisVoice: J.JavaScriptObject, StaticRange: J.JavaScriptObject, StorageManager: J.JavaScriptObject, StyleMedia: J.JavaScriptObject, StylePropertyMap: J.JavaScriptObject, StylePropertyMapReadonly: J.JavaScriptObject, SyncManager: J.JavaScriptObject, TaskAttributionTiming: J.JavaScriptObject, TextDetector: J.JavaScriptObject, TextMetrics: J.JavaScriptObject, TrackDefault: J.JavaScriptObject, TreeWalker: J.JavaScriptObject, TrustedHTML: J.JavaScriptObject, TrustedScriptURL: J.JavaScriptObject, TrustedURL: J.JavaScriptObject, UnderlyingSourceBase: J.JavaScriptObject, URLSearchParams: J.JavaScriptObject, VRCoordinateSystem: J.JavaScriptObject, VRDisplayCapabilities: J.JavaScriptObject, VREyeParameters: J.JavaScriptObject, VRFrameData: J.JavaScriptObject, VRFrameOfReference: J.JavaScriptObject, VRPose: J.JavaScriptObject, VRStageBounds: J.JavaScriptObject, VRStageBoundsPoint: J.JavaScriptObject, VRStageParameters: J.JavaScriptObject, ValidityState: J.JavaScriptObject, VideoPlaybackQuality: J.JavaScriptObject, VideoTrack: J.JavaScriptObject, VTTRegion: J.JavaScriptObject, WindowClient: J.JavaScriptObject, WorkletAnimation: J.JavaScriptObject, WorkletGlobalScope: J.JavaScriptObject, XPathEvaluator: J.JavaScriptObject, XPathExpression: J.JavaScriptObject, XPathNSResolver: J.JavaScriptObject, XPathResult: J.JavaScriptObject, XMLSerializer: J.JavaScriptObject, XSLTProcessor: J.JavaScriptObject, Bluetooth: J.JavaScriptObject, BluetoothCharacteristicProperties: J.JavaScriptObject, BluetoothRemoteGATTServer: J.JavaScriptObject, BluetoothRemoteGATTService: J.JavaScriptObject, BluetoothUUID: J.JavaScriptObject, BudgetService: J.JavaScriptObject, Cache: J.JavaScriptObject, DOMFileSystemSync: J.JavaScriptObject, DirectoryEntrySync: J.JavaScriptObject, DirectoryReaderSync: J.JavaScriptObject, EntrySync: J.JavaScriptObject, FileEntrySync: J.JavaScriptObject, FileReaderSync: J.JavaScriptObject, FileWriterSync: J.JavaScriptObject, HTMLAllCollection: J.JavaScriptObject, Mojo: J.JavaScriptObject, MojoHandle: J.JavaScriptObject, MojoWatcher: J.JavaScriptObject, NFC: J.JavaScriptObject, PagePopupController: J.JavaScriptObject, Report: J.JavaScriptObject, Request: J.JavaScriptObject, Response: J.JavaScriptObject, SubtleCrypto: J.JavaScriptObject, USBAlternateInterface: J.JavaScriptObject, USBConfiguration: J.JavaScriptObject, USBDevice: J.JavaScriptObject, USBEndpoint: J.JavaScriptObject, USBInTransferResult: J.JavaScriptObject, USBInterface: J.JavaScriptObject, USBIsochronousInTransferPacket: J.JavaScriptObject, USBIsochronousInTransferResult: J.JavaScriptObject, USBIsochronousOutTransferPacket: J.JavaScriptObject, USBIsochronousOutTransferResult: J.JavaScriptObject, USBOutTransferResult: J.JavaScriptObject, WorkerLocation: J.JavaScriptObject, WorkerNavigator: J.JavaScriptObject, Worklet: J.JavaScriptObject, IDBCursor: J.JavaScriptObject, IDBCursorWithValue: J.JavaScriptObject, IDBFactory: J.JavaScriptObject, IDBIndex: J.JavaScriptObject, IDBObjectStore: J.JavaScriptObject, IDBObservation: J.JavaScriptObject, IDBObserver: J.JavaScriptObject, IDBObserverChanges: J.JavaScriptObject, SVGAngle: J.JavaScriptObject, SVGAnimatedAngle: J.JavaScriptObject, SVGAnimatedBoolean: J.JavaScriptObject, SVGAnimatedEnumeration: J.JavaScriptObject, SVGAnimatedInteger: J.JavaScriptObject, SVGAnimatedLength: J.JavaScriptObject, SVGAnimatedLengthList: J.JavaScriptObject, SVGAnimatedNumber: J.JavaScriptObject, SVGAnimatedNumberList: J.JavaScriptObject, SVGAnimatedPreserveAspectRatio: J.JavaScriptObject, SVGAnimatedRect: J.JavaScriptObject, SVGAnimatedString: J.JavaScriptObject, SVGAnimatedTransformList: J.JavaScriptObject, SVGMatrix: J.JavaScriptObject, SVGPoint: J.JavaScriptObject, SVGPreserveAspectRatio: J.JavaScriptObject, SVGRect: J.JavaScriptObject, SVGUnitTypes: J.JavaScriptObject, AudioListener: J.JavaScriptObject, AudioParam: J.JavaScriptObject, AudioTrack: J.JavaScriptObject, AudioWorkletGlobalScope: J.JavaScriptObject, AudioWorkletProcessor: J.JavaScriptObject, PeriodicWave: J.JavaScriptObject, WebGLActiveInfo: J.JavaScriptObject, ANGLEInstancedArrays: J.JavaScriptObject, ANGLE_instanced_arrays: J.JavaScriptObject, WebGLBuffer: J.JavaScriptObject, WebGLCanvas: J.JavaScriptObject, WebGLColorBufferFloat: J.JavaScriptObject, WebGLCompressedTextureASTC: J.JavaScriptObject, WebGLCompressedTextureATC: J.JavaScriptObject, WEBGL_compressed_texture_atc: J.JavaScriptObject, WebGLCompressedTextureETC1: J.JavaScriptObject, WEBGL_compressed_texture_etc1: J.JavaScriptObject, WebGLCompressedTextureETC: J.JavaScriptObject, WebGLCompressedTexturePVRTC: J.JavaScriptObject, WEBGL_compressed_texture_pvrtc: J.JavaScriptObject, WebGLCompressedTextureS3TC: J.JavaScriptObject, WEBGL_compressed_texture_s3tc: J.JavaScriptObject, WebGLCompressedTextureS3TCsRGB: J.JavaScriptObject, WebGLDebugRendererInfo: J.JavaScriptObject, WEBGL_debug_renderer_info: J.JavaScriptObject, WebGLDebugShaders: J.JavaScriptObject, WEBGL_debug_shaders: J.JavaScriptObject, WebGLDepthTexture: J.JavaScriptObject, WEBGL_depth_texture: J.JavaScriptObject, WebGLDrawBuffers: J.JavaScriptObject, WEBGL_draw_buffers: J.JavaScriptObject, EXTsRGB: J.JavaScriptObject, EXT_sRGB: J.JavaScriptObject, EXTBlendMinMax: J.JavaScriptObject, EXT_blend_minmax: J.JavaScriptObject, EXTColorBufferFloat: J.JavaScriptObject, EXTColorBufferHalfFloat: J.JavaScriptObject, EXTDisjointTimerQuery: J.JavaScriptObject, EXTDisjointTimerQueryWebGL2: J.JavaScriptObject, EXTFragDepth: J.JavaScriptObject, EXT_frag_depth: J.JavaScriptObject, EXTShaderTextureLOD: J.JavaScriptObject, EXT_shader_texture_lod: J.JavaScriptObject, EXTTextureFilterAnisotropic: J.JavaScriptObject, EXT_texture_filter_anisotropic: J.JavaScriptObject, WebGLFramebuffer: J.JavaScriptObject, WebGLGetBufferSubDataAsync: J.JavaScriptObject, WebGLLoseContext: J.JavaScriptObject, WebGLExtensionLoseContext: J.JavaScriptObject, WEBGL_lose_context: J.JavaScriptObject, OESElementIndexUint: J.JavaScriptObject, OES_element_index_uint: J.JavaScriptObject, OESStandardDerivatives: J.JavaScriptObject, OES_standard_derivatives: J.JavaScriptObject, OESTextureFloat: J.JavaScriptObject, OES_texture_float: J.JavaScriptObject, OESTextureFloatLinear: J.JavaScriptObject, OES_texture_float_linear: J.JavaScriptObject, OESTextureHalfFloat: J.JavaScriptObject, OES_texture_half_float: J.JavaScriptObject, OESTextureHalfFloatLinear: J.JavaScriptObject, OES_texture_half_float_linear: J.JavaScriptObject, OESVertexArrayObject: J.JavaScriptObject, OES_vertex_array_object: J.JavaScriptObject, WebGLProgram: J.JavaScriptObject, WebGLQuery: J.JavaScriptObject, WebGLRenderbuffer: J.JavaScriptObject, WebGLRenderingContext: J.JavaScriptObject, WebGL2RenderingContext: J.JavaScriptObject, WebGLSampler: J.JavaScriptObject, WebGLShader: J.JavaScriptObject, WebGLShaderPrecisionFormat: J.JavaScriptObject, WebGLSync: J.JavaScriptObject, WebGLTexture: J.JavaScriptObject, WebGLTimerQueryEXT: J.JavaScriptObject, WebGLTransformFeedback: J.JavaScriptObject, WebGLUniformLocation: J.JavaScriptObject, WebGLVertexArrayObject: J.JavaScriptObject, WebGLVertexArrayObjectOES: J.JavaScriptObject, WebGL2RenderingContextBase: J.JavaScriptObject, ArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List, HTMLAudioElement: A.HtmlElement, HTMLBRElement: A.HtmlElement, HTMLButtonElement: A.HtmlElement, HTMLCanvasElement: A.HtmlElement, HTMLContentElement: A.HtmlElement, HTMLDListElement: A.HtmlElement, HTMLDataElement: A.HtmlElement, HTMLDataListElement: A.HtmlElement, HTMLDetailsElement: A.HtmlElement, HTMLDialogElement: A.HtmlElement, HTMLDivElement: A.HtmlElement, HTMLEmbedElement: A.HtmlElement, HTMLFieldSetElement: A.HtmlElement, HTMLHRElement: A.HtmlElement, HTMLHeadElement: A.HtmlElement, HTMLHeadingElement: A.HtmlElement, HTMLHtmlElement: A.HtmlElement, HTMLIFrameElement: A.HtmlElement, HTMLImageElement: A.HtmlElement, HTMLInputElement: A.HtmlElement, HTMLLIElement: A.HtmlElement, HTMLLabelElement: A.HtmlElement, HTMLLegendElement: A.HtmlElement, HTMLLinkElement: A.HtmlElement, HTMLMapElement: A.HtmlElement, HTMLMediaElement: A.HtmlElement, HTMLMenuElement: A.HtmlElement, HTMLMetaElement: A.HtmlElement, HTMLMeterElement: A.HtmlElement, HTMLModElement: A.HtmlElement, HTMLOListElement: A.HtmlElement, HTMLObjectElement: A.HtmlElement, HTMLOptGroupElement: A.HtmlElement, HTMLOptionElement: A.HtmlElement, HTMLOutputElement: A.HtmlElement, HTMLParagraphElement: A.HtmlElement, HTMLParamElement: A.HtmlElement, HTMLPictureElement: A.HtmlElement, HTMLPreElement: A.HtmlElement, HTMLProgressElement: A.HtmlElement, HTMLQuoteElement: A.HtmlElement, HTMLShadowElement: A.HtmlElement, HTMLSlotElement: A.HtmlElement, HTMLSourceElement: A.HtmlElement, HTMLSpanElement: A.HtmlElement, HTMLStyleElement: A.HtmlElement, HTMLTableCaptionElement: A.HtmlElement, HTMLTableCellElement: A.HtmlElement, HTMLTableDataCellElement: A.HtmlElement, HTMLTableHeaderCellElement: A.HtmlElement, HTMLTableColElement: A.HtmlElement, HTMLTextAreaElement: A.HtmlElement, HTMLTimeElement: A.HtmlElement, HTMLTitleElement: A.HtmlElement, HTMLTrackElement: A.HtmlElement, HTMLUListElement: A.HtmlElement, HTMLUnknownElement: A.HtmlElement, HTMLVideoElement: A.HtmlElement, HTMLDirectoryElement: A.HtmlElement, HTMLFontElement: A.HtmlElement, HTMLFrameElement: A.HtmlElement, HTMLFrameSetElement: A.HtmlElement, HTMLMarqueeElement: A.HtmlElement, HTMLElement: A.HtmlElement, AccessibleNodeList: A.AccessibleNodeList, HTMLAnchorElement: A.AnchorElement, HTMLAreaElement: A.AreaElement, HTMLBaseElement: A.BaseElement, Blob: A.Blob, HTMLBodyElement: A.BodyElement, CDATASection: A.CharacterData, CharacterData: A.CharacterData, Comment: A.CharacterData, ProcessingInstruction: A.CharacterData, Text: A.CharacterData, CloseEvent: A.CloseEvent, CSSPerspective: A.CssPerspective, CSSCharsetRule: A.CssRule, CSSConditionRule: A.CssRule, CSSFontFaceRule: A.CssRule, CSSGroupingRule: A.CssRule, CSSImportRule: A.CssRule, CSSKeyframeRule: A.CssRule, MozCSSKeyframeRule: A.CssRule, WebKitCSSKeyframeRule: A.CssRule, CSSKeyframesRule: A.CssRule, MozCSSKeyframesRule: A.CssRule, WebKitCSSKeyframesRule: A.CssRule, CSSMediaRule: A.CssRule, CSSNamespaceRule: A.CssRule, CSSPageRule: A.CssRule, CSSRule: A.CssRule, CSSStyleRule: A.CssRule, CSSSupportsRule: A.CssRule, CSSViewportRule: A.CssRule, CSSStyleDeclaration: A.CssStyleDeclaration, MSStyleCSSProperties: A.CssStyleDeclaration, CSS2Properties: A.CssStyleDeclaration, CSSImageValue: A.CssStyleValue, CSSKeywordValue: A.CssStyleValue, CSSNumericValue: A.CssStyleValue, CSSPositionValue: A.CssStyleValue, CSSResourceValue: A.CssStyleValue, CSSUnitValue: A.CssStyleValue, CSSURLImageValue: A.CssStyleValue, CSSStyleValue: A.CssStyleValue, CSSMatrixComponent: A.CssTransformComponent, CSSRotation: A.CssTransformComponent, CSSScale: A.CssTransformComponent, CSSSkew: A.CssTransformComponent, CSSTranslation: A.CssTransformComponent, CSSTransformComponent: A.CssTransformComponent, CSSTransformValue: A.CssTransformValue, CSSUnparsedValue: A.CssUnparsedValue, CustomEvent: A.CustomEvent, DataTransferItemList: A.DataTransferItemList, XMLDocument: A.Document, Document: A.Document, DOMException: A.DomException, DOMImplementation: A.DomImplementation, ClientRectList: A.DomRectList, DOMRectList: A.DomRectList, DOMRectReadOnly: A.DomRectReadOnly, DOMStringList: A.DomStringList, DOMTokenList: A.DomTokenList, MathMLElement: A.Element, Element: A.Element, AbortPaymentEvent: A.Event, AnimationEvent: A.Event, AnimationPlaybackEvent: A.Event, ApplicationCacheErrorEvent: A.Event, BackgroundFetchClickEvent: A.Event, BackgroundFetchEvent: A.Event, BackgroundFetchFailEvent: A.Event, BackgroundFetchedEvent: A.Event, BeforeInstallPromptEvent: A.Event, BeforeUnloadEvent: A.Event, BlobEvent: A.Event, CanMakePaymentEvent: A.Event, ClipboardEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PopStateEvent: A.Event, PresentationConnectionAvailableEvent: A.Event, PresentationConnectionCloseEvent: A.Event, PromiseRejectionEvent: A.Event, PushEvent: A.Event, RTCDataChannelEvent: A.Event, RTCDTMFToneChangeEvent: A.Event, RTCPeerConnectionIceEvent: A.Event, RTCTrackEvent: A.Event, SecurityPolicyViolationEvent: A.Event, SensorErrorEvent: A.Event, SpeechRecognitionError: A.Event, SpeechRecognitionEvent: A.Event, SpeechSynthesisEvent: A.Event, StorageEvent: A.Event, SyncEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, MojoInterfaceRequestEvent: A.Event, USBConnectionEvent: A.Event, IDBVersionChangeEvent: A.Event, AudioProcessingEvent: A.Event, OfflineAudioCompletionEvent: A.Event, WebGLContextEvent: A.Event, Event: A.Event, InputEvent: A.Event, SubmitEvent: A.Event, EventSource: A.EventSource, AbsoluteOrientationSensor: A.EventTarget, Accelerometer: A.EventTarget, AccessibleNode: A.EventTarget, AmbientLightSensor: A.EventTarget, Animation: A.EventTarget, ApplicationCache: A.EventTarget, DOMApplicationCache: A.EventTarget, OfflineResourceList: A.EventTarget, BackgroundFetchRegistration: A.EventTarget, BatteryManager: A.EventTarget, BroadcastChannel: A.EventTarget, CanvasCaptureMediaStreamTrack: A.EventTarget, FileReader: A.EventTarget, FontFaceSet: A.EventTarget, Gyroscope: A.EventTarget, LinearAccelerationSensor: A.EventTarget, Magnetometer: A.EventTarget, MediaDevices: A.EventTarget, MediaKeySession: A.EventTarget, MediaQueryList: A.EventTarget, MediaRecorder: A.EventTarget, MediaSource: A.EventTarget, MediaStream: A.EventTarget, MediaStreamTrack: A.EventTarget, MIDIAccess: A.EventTarget, MIDIInput: A.EventTarget, MIDIOutput: A.EventTarget, MIDIPort: A.EventTarget, NetworkInformation: A.EventTarget, Notification: A.EventTarget, OffscreenCanvas: A.EventTarget, OrientationSensor: A.EventTarget, PaymentRequest: A.EventTarget, Performance: A.EventTarget, PermissionStatus: A.EventTarget, PresentationAvailability: A.EventTarget, PresentationConnection: A.EventTarget, PresentationConnectionList: A.EventTarget, PresentationRequest: A.EventTarget, RelativeOrientationSensor: A.EventTarget, RemotePlayback: A.EventTarget, RTCDataChannel: A.EventTarget, DataChannel: A.EventTarget, RTCDTMFSender: A.EventTarget, RTCPeerConnection: A.EventTarget, webkitRTCPeerConnection: A.EventTarget, mozRTCPeerConnection: A.EventTarget, ScreenOrientation: A.EventTarget, Sensor: A.EventTarget, ServiceWorker: A.EventTarget, ServiceWorkerContainer: A.EventTarget, ServiceWorkerRegistration: A.EventTarget, SharedWorker: A.EventTarget, SpeechRecognition: A.EventTarget, SpeechSynthesis: A.EventTarget, SpeechSynthesisUtterance: A.EventTarget, VR: A.EventTarget, VRDevice: A.EventTarget, VRDisplay: A.EventTarget, VRSession: A.EventTarget, VisualViewport: A.EventTarget, Worker: A.EventTarget, WorkerPerformance: A.EventTarget, BluetoothDevice: A.EventTarget, BluetoothRemoteGATTCharacteristic: A.EventTarget, Clipboard: A.EventTarget, MojoInterfaceInterceptor: A.EventTarget, USB: A.EventTarget, IDBDatabase: A.EventTarget, IDBOpenDBRequest: A.EventTarget, IDBVersionChangeRequest: A.EventTarget, IDBRequest: A.EventTarget, IDBTransaction: A.EventTarget, AnalyserNode: A.EventTarget, RealtimeAnalyserNode: A.EventTarget, AudioBufferSourceNode: A.EventTarget, AudioDestinationNode: A.EventTarget, AudioNode: A.EventTarget, AudioScheduledSourceNode: A.EventTarget, AudioWorkletNode: A.EventTarget, BiquadFilterNode: A.EventTarget, ChannelMergerNode: A.EventTarget, AudioChannelMerger: A.EventTarget, ChannelSplitterNode: A.EventTarget, AudioChannelSplitter: A.EventTarget, ConstantSourceNode: A.EventTarget, ConvolverNode: A.EventTarget, DelayNode: A.EventTarget, DynamicsCompressorNode: A.EventTarget, GainNode: A.EventTarget, AudioGainNode: A.EventTarget, IIRFilterNode: A.EventTarget, MediaElementAudioSourceNode: A.EventTarget, MediaStreamAudioDestinationNode: A.EventTarget, MediaStreamAudioSourceNode: A.EventTarget, OscillatorNode: A.EventTarget, Oscillator: A.EventTarget, PannerNode: A.EventTarget, AudioPannerNode: A.EventTarget, webkitAudioPannerNode: A.EventTarget, ScriptProcessorNode: A.EventTarget, JavaScriptAudioNode: A.EventTarget, StereoPannerNode: A.EventTarget, WaveShaperNode: A.EventTarget, EventTarget: A.EventTarget, File: A.File, FileList: A.FileList, FileWriter: A.FileWriter, HTMLFormElement: A.FormElement, Gamepad: A.Gamepad, History: A.History, HTMLCollection: A.HtmlCollection, HTMLFormControlsCollection: A.HtmlCollection, HTMLOptionsCollection: A.HtmlCollection, HTMLDocument: A.HtmlDocument, XMLHttpRequest: A.HttpRequest, XMLHttpRequestUpload: A.HttpRequestEventTarget, XMLHttpRequestEventTarget: A.HttpRequestEventTarget, ImageData: A.ImageData, KeyboardEvent: A.KeyboardEvent, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, MessagePort: A.MessagePort, MIDIInputMap: A.MidiInputMap, MIDIOutputMap: A.MidiOutputMap, MimeType: A.MimeType, MimeTypeArray: A.MimeTypeArray, DocumentFragment: A.Node, ShadowRoot: A.Node, DocumentType: A.Node, Node: A.Node, NodeList: A.NodeList, RadioNodeList: A.NodeList, Plugin: A.Plugin, PluginArray: A.PluginArray, ProgressEvent: A.ProgressEvent, ResourceProgressEvent: A.ProgressEvent, RTCStatsReport: A.RtcStatsReport, HTMLScriptElement: A.ScriptElement, HTMLSelectElement: A.SelectElement, SourceBuffer: A.SourceBuffer, SourceBufferList: A.SourceBufferList, SpeechGrammar: A.SpeechGrammar, SpeechGrammarList: A.SpeechGrammarList, SpeechRecognitionResult: A.SpeechRecognitionResult, Storage: A.Storage, CSSStyleSheet: A.StyleSheet, StyleSheet: A.StyleSheet, HTMLTableElement: A.TableElement, HTMLTableRowElement: A.TableRowElement, HTMLTableSectionElement: A.TableSectionElement, HTMLTemplateElement: A.TemplateElement, TextTrack: A.TextTrack, TextTrackCue: A.TextTrackCue, VTTCue: A.TextTrackCue, TextTrackCueList: A.TextTrackCueList, TextTrackList: A.TextTrackList, TimeRanges: A.TimeRanges, Touch: A.Touch, TouchList: A.TouchList, TrackDefaultList: A.TrackDefaultList, CompositionEvent: A.UIEvent, FocusEvent: A.UIEvent, MouseEvent: A.UIEvent, DragEvent: A.UIEvent, PointerEvent: A.UIEvent, TextEvent: A.UIEvent, TouchEvent: A.UIEvent, WheelEvent: A.UIEvent, UIEvent: A.UIEvent, URL: A.Url, VideoTrackList: A.VideoTrackList, WebSocket: A.WebSocket, Window: A.Window, DOMWindow: A.Window, DedicatedWorkerGlobalScope: A.WorkerGlobalScope, ServiceWorkerGlobalScope: A.WorkerGlobalScope, SharedWorkerGlobalScope: A.WorkerGlobalScope, WorkerGlobalScope: A.WorkerGlobalScope, Attr: A._Attr, CSSRuleList: A._CssRuleList, ClientRect: A._DomRect, DOMRect: A._DomRect, GamepadList: A._GamepadList, NamedNodeMap: A._NamedNodeMap, MozNamedAttrMap: A._NamedNodeMap, SpeechRecognitionResultList: A._SpeechRecognitionResultList, StyleSheetList: A._StyleSheetList, IDBKeyRange: A.KeyRange, SVGLength: A.Length, SVGLengthList: A.LengthList, SVGNumber: A.Number, SVGNumberList: A.NumberList, SVGPointList: A.PointList, SVGScriptElement: A.ScriptElement0, SVGStringList: A.StringList, SVGAElement: A.SvgElement, SVGAnimateElement: A.SvgElement, SVGAnimateMotionElement: A.SvgElement, SVGAnimateTransformElement: A.SvgElement, SVGAnimationElement: A.SvgElement, SVGCircleElement: A.SvgElement, SVGClipPathElement: A.SvgElement, SVGDefsElement: A.SvgElement, SVGDescElement: A.SvgElement, SVGDiscardElement: A.SvgElement, SVGEllipseElement: A.SvgElement, SVGFEBlendElement: A.SvgElement, SVGFEColorMatrixElement: A.SvgElement, SVGFEComponentTransferElement: A.SvgElement, SVGFECompositeElement: A.SvgElement, SVGFEConvolveMatrixElement: A.SvgElement, SVGFEDiffuseLightingElement: A.SvgElement, SVGFEDisplacementMapElement: A.SvgElement, SVGFEDistantLightElement: A.SvgElement, SVGFEFloodElement: A.SvgElement, SVGFEFuncAElement: A.SvgElement, SVGFEFuncBElement: A.SvgElement, SVGFEFuncGElement: A.SvgElement, SVGFEFuncRElement: A.SvgElement, SVGFEGaussianBlurElement: A.SvgElement, SVGFEImageElement: A.SvgElement, SVGFEMergeElement: A.SvgElement, SVGFEMergeNodeElement: A.SvgElement, SVGFEMorphologyElement: A.SvgElement, SVGFEOffsetElement: A.SvgElement, SVGFEPointLightElement: A.SvgElement, SVGFESpecularLightingElement: A.SvgElement, SVGFESpotLightElement: A.SvgElement, SVGFETileElement: A.SvgElement, SVGFETurbulenceElement: A.SvgElement, SVGFilterElement: A.SvgElement, SVGForeignObjectElement: A.SvgElement, SVGGElement: A.SvgElement, SVGGeometryElement: A.SvgElement, SVGGraphicsElement: A.SvgElement, SVGImageElement: A.SvgElement, SVGLineElement: A.SvgElement, SVGLinearGradientElement: A.SvgElement, SVGMarkerElement: A.SvgElement, SVGMaskElement: A.SvgElement, SVGMetadataElement: A.SvgElement, SVGPathElement: A.SvgElement, SVGPatternElement: A.SvgElement, SVGPolygonElement: A.SvgElement, SVGPolylineElement: A.SvgElement, SVGRadialGradientElement: A.SvgElement, SVGRectElement: A.SvgElement, SVGSetElement: A.SvgElement, SVGStopElement: A.SvgElement, SVGStyleElement: A.SvgElement, SVGSVGElement: A.SvgElement, SVGSwitchElement: A.SvgElement, SVGSymbolElement: A.SvgElement, SVGTSpanElement: A.SvgElement, SVGTextContentElement: A.SvgElement, SVGTextElement: A.SvgElement, SVGTextPathElement: A.SvgElement, SVGTextPositioningElement: A.SvgElement, SVGTitleElement: A.SvgElement, SVGUseElement: A.SvgElement, SVGViewElement: A.SvgElement, SVGGradientElement: A.SvgElement, SVGComponentTransferFunctionElement: A.SvgElement, SVGFEDropShadowElement: A.SvgElement, SVGMPathElement: A.SvgElement, SVGElement: A.SvgElement, SVGTransform: A.Transform, SVGTransformList: A.TransformList, AudioBuffer: A.AudioBuffer, AudioParamMap: A.AudioParamMap, AudioTrackList: A.AudioTrackList, AudioContext: A.BaseAudioContext, webkitAudioContext: A.BaseAudioContext, BaseAudioContext: A.BaseAudioContext, OfflineAudioContext: A.OfflineAudioContext}); - hunkHelpers.setOrUpdateLeafTags({WebGL: true, AnimationEffectReadOnly: true, AnimationEffectTiming: true, AnimationEffectTimingReadOnly: true, AnimationTimeline: true, AnimationWorkletGlobalScope: true, AuthenticatorAssertionResponse: true, AuthenticatorAttestationResponse: true, AuthenticatorResponse: true, BackgroundFetchFetch: true, BackgroundFetchManager: true, BackgroundFetchSettledFetch: true, BarProp: true, BarcodeDetector: true, BluetoothRemoteGATTDescriptor: true, Body: true, BudgetState: true, CacheStorage: true, CanvasGradient: true, CanvasPattern: true, CanvasRenderingContext2D: true, Client: true, Clients: true, CookieStore: true, Coordinates: true, Credential: true, CredentialUserData: true, CredentialsContainer: true, Crypto: true, CryptoKey: true, CSS: true, CSSVariableReferenceValue: true, CustomElementRegistry: true, DataTransfer: true, DataTransferItem: true, DeprecatedStorageInfo: true, DeprecatedStorageQuota: true, DeprecationReport: true, DetectedBarcode: true, DetectedFace: true, DetectedText: true, DeviceAcceleration: true, DeviceRotationRate: true, DirectoryEntry: true, webkitFileSystemDirectoryEntry: true, FileSystemDirectoryEntry: true, DirectoryReader: true, WebKitDirectoryReader: true, webkitFileSystemDirectoryReader: true, FileSystemDirectoryReader: true, DocumentOrShadowRoot: true, DocumentTimeline: true, DOMError: true, Iterator: true, DOMMatrix: true, DOMMatrixReadOnly: true, DOMParser: true, DOMPoint: true, DOMPointReadOnly: true, DOMQuad: true, DOMStringMap: true, Entry: true, webkitFileSystemEntry: true, FileSystemEntry: true, External: true, FaceDetector: true, FederatedCredential: true, FileEntry: true, webkitFileSystemFileEntry: true, FileSystemFileEntry: true, DOMFileSystem: true, WebKitFileSystem: true, webkitFileSystem: true, FileSystem: true, FontFace: true, FontFaceSource: true, FormData: true, GamepadButton: true, GamepadPose: true, Geolocation: true, Position: true, GeolocationPosition: true, Headers: true, HTMLHyperlinkElementUtils: true, IdleDeadline: true, ImageBitmap: true, ImageBitmapRenderingContext: true, ImageCapture: true, InputDeviceCapabilities: true, IntersectionObserver: true, IntersectionObserverEntry: true, InterventionReport: true, KeyframeEffect: true, KeyframeEffectReadOnly: true, MediaCapabilities: true, MediaCapabilitiesInfo: true, MediaDeviceInfo: true, MediaError: true, MediaKeyStatusMap: true, MediaKeySystemAccess: true, MediaKeys: true, MediaKeysPolicy: true, MediaMetadata: true, MediaSession: true, MediaSettingsRange: true, MemoryInfo: true, MessageChannel: true, Metadata: true, MutationObserver: true, WebKitMutationObserver: true, MutationRecord: true, NavigationPreloadManager: true, Navigator: true, NavigatorAutomationInformation: true, NavigatorConcurrentHardware: true, NavigatorCookies: true, NavigatorUserMediaError: true, NodeFilter: true, NodeIterator: true, NonDocumentTypeChildNode: true, NonElementParentNode: true, NoncedElement: true, OffscreenCanvasRenderingContext2D: true, OverconstrainedError: true, PaintRenderingContext2D: true, PaintSize: true, PaintWorkletGlobalScope: true, PasswordCredential: true, Path2D: true, PaymentAddress: true, PaymentInstruments: true, PaymentManager: true, PaymentResponse: true, PerformanceEntry: true, PerformanceLongTaskTiming: true, PerformanceMark: true, PerformanceMeasure: true, PerformanceNavigation: true, PerformanceNavigationTiming: true, PerformanceObserver: true, PerformanceObserverEntryList: true, PerformancePaintTiming: true, PerformanceResourceTiming: true, PerformanceServerTiming: true, PerformanceTiming: true, Permissions: true, PhotoCapabilities: true, PositionError: true, GeolocationPositionError: true, Presentation: true, PresentationReceiver: true, PublicKeyCredential: true, PushManager: true, PushMessageData: true, PushSubscription: true, PushSubscriptionOptions: true, Range: true, RelatedApplication: true, ReportBody: true, ReportingObserver: true, ResizeObserver: true, ResizeObserverEntry: true, RTCCertificate: true, RTCIceCandidate: true, mozRTCIceCandidate: true, RTCLegacyStatsReport: true, RTCRtpContributingSource: true, RTCRtpReceiver: true, RTCRtpSender: true, RTCSessionDescription: true, mozRTCSessionDescription: true, RTCStatsResponse: true, Screen: true, ScrollState: true, ScrollTimeline: true, Selection: true, SharedArrayBuffer: true, SpeechRecognitionAlternative: true, SpeechSynthesisVoice: true, StaticRange: true, StorageManager: true, StyleMedia: true, StylePropertyMap: true, StylePropertyMapReadonly: true, SyncManager: true, TaskAttributionTiming: true, TextDetector: true, TextMetrics: true, TrackDefault: true, TreeWalker: true, TrustedHTML: true, TrustedScriptURL: true, TrustedURL: true, UnderlyingSourceBase: true, URLSearchParams: true, VRCoordinateSystem: true, VRDisplayCapabilities: true, VREyeParameters: true, VRFrameData: true, VRFrameOfReference: true, VRPose: true, VRStageBounds: true, VRStageBoundsPoint: true, VRStageParameters: true, ValidityState: true, VideoPlaybackQuality: true, VideoTrack: true, VTTRegion: true, WindowClient: true, WorkletAnimation: true, WorkletGlobalScope: true, XPathEvaluator: true, XPathExpression: true, XPathNSResolver: true, XPathResult: true, XMLSerializer: true, XSLTProcessor: true, Bluetooth: true, BluetoothCharacteristicProperties: true, BluetoothRemoteGATTServer: true, BluetoothRemoteGATTService: true, BluetoothUUID: true, BudgetService: true, Cache: true, DOMFileSystemSync: true, DirectoryEntrySync: true, DirectoryReaderSync: true, EntrySync: true, FileEntrySync: true, FileReaderSync: true, FileWriterSync: true, HTMLAllCollection: true, Mojo: true, MojoHandle: true, MojoWatcher: true, NFC: true, PagePopupController: true, Report: true, Request: true, Response: true, SubtleCrypto: true, USBAlternateInterface: true, USBConfiguration: true, USBDevice: true, USBEndpoint: true, USBInTransferResult: true, USBInterface: true, USBIsochronousInTransferPacket: true, USBIsochronousInTransferResult: true, USBIsochronousOutTransferPacket: true, USBIsochronousOutTransferResult: true, USBOutTransferResult: true, WorkerLocation: true, WorkerNavigator: true, Worklet: true, IDBCursor: true, IDBCursorWithValue: true, IDBFactory: true, IDBIndex: true, IDBObjectStore: true, IDBObservation: true, IDBObserver: true, IDBObserverChanges: true, SVGAngle: true, SVGAnimatedAngle: true, SVGAnimatedBoolean: true, SVGAnimatedEnumeration: true, SVGAnimatedInteger: true, SVGAnimatedLength: true, SVGAnimatedLengthList: true, SVGAnimatedNumber: true, SVGAnimatedNumberList: true, SVGAnimatedPreserveAspectRatio: true, SVGAnimatedRect: true, SVGAnimatedString: true, SVGAnimatedTransformList: true, SVGMatrix: true, SVGPoint: true, SVGPreserveAspectRatio: true, SVGRect: true, SVGUnitTypes: true, AudioListener: true, AudioParam: true, AudioTrack: true, AudioWorkletGlobalScope: true, AudioWorkletProcessor: true, PeriodicWave: true, WebGLActiveInfo: true, ANGLEInstancedArrays: true, ANGLE_instanced_arrays: true, WebGLBuffer: true, WebGLCanvas: true, WebGLColorBufferFloat: true, WebGLCompressedTextureASTC: true, WebGLCompressedTextureATC: true, WEBGL_compressed_texture_atc: true, WebGLCompressedTextureETC1: true, WEBGL_compressed_texture_etc1: true, WebGLCompressedTextureETC: true, WebGLCompressedTexturePVRTC: true, WEBGL_compressed_texture_pvrtc: true, WebGLCompressedTextureS3TC: true, WEBGL_compressed_texture_s3tc: true, WebGLCompressedTextureS3TCsRGB: true, WebGLDebugRendererInfo: true, WEBGL_debug_renderer_info: true, WebGLDebugShaders: true, WEBGL_debug_shaders: true, WebGLDepthTexture: true, WEBGL_depth_texture: true, WebGLDrawBuffers: true, WEBGL_draw_buffers: true, EXTsRGB: true, EXT_sRGB: true, EXTBlendMinMax: true, EXT_blend_minmax: true, EXTColorBufferFloat: true, EXTColorBufferHalfFloat: true, EXTDisjointTimerQuery: true, EXTDisjointTimerQueryWebGL2: true, EXTFragDepth: true, EXT_frag_depth: true, EXTShaderTextureLOD: true, EXT_shader_texture_lod: true, EXTTextureFilterAnisotropic: true, EXT_texture_filter_anisotropic: true, WebGLFramebuffer: true, WebGLGetBufferSubDataAsync: true, WebGLLoseContext: true, WebGLExtensionLoseContext: true, WEBGL_lose_context: true, OESElementIndexUint: true, OES_element_index_uint: true, OESStandardDerivatives: true, OES_standard_derivatives: true, OESTextureFloat: true, OES_texture_float: true, OESTextureFloatLinear: true, OES_texture_float_linear: true, OESTextureHalfFloat: true, OES_texture_half_float: true, OESTextureHalfFloatLinear: true, OES_texture_half_float_linear: true, OESVertexArrayObject: true, OES_vertex_array_object: true, WebGLProgram: true, WebGLQuery: true, WebGLRenderbuffer: true, WebGLRenderingContext: true, WebGL2RenderingContext: true, WebGLSampler: true, WebGLShader: true, WebGLShaderPrecisionFormat: true, WebGLSync: true, WebGLTexture: true, WebGLTimerQueryEXT: true, WebGLTransformFeedback: true, WebGLUniformLocation: true, WebGLVertexArrayObject: true, WebGLVertexArrayObjectOES: true, WebGL2RenderingContextBase: true, ArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false, HTMLAudioElement: true, HTMLBRElement: true, HTMLButtonElement: true, HTMLCanvasElement: true, HTMLContentElement: true, HTMLDListElement: true, HTMLDataElement: true, HTMLDataListElement: true, HTMLDetailsElement: true, HTMLDialogElement: true, HTMLDivElement: true, HTMLEmbedElement: true, HTMLFieldSetElement: true, HTMLHRElement: true, HTMLHeadElement: true, HTMLHeadingElement: true, HTMLHtmlElement: true, HTMLIFrameElement: true, HTMLImageElement: true, HTMLInputElement: true, HTMLLIElement: true, HTMLLabelElement: true, HTMLLegendElement: true, HTMLLinkElement: true, HTMLMapElement: true, HTMLMediaElement: true, HTMLMenuElement: true, HTMLMetaElement: true, HTMLMeterElement: true, HTMLModElement: true, HTMLOListElement: true, HTMLObjectElement: true, HTMLOptGroupElement: true, HTMLOptionElement: true, HTMLOutputElement: true, HTMLParagraphElement: true, HTMLParamElement: true, HTMLPictureElement: true, HTMLPreElement: true, HTMLProgressElement: true, HTMLQuoteElement: true, HTMLShadowElement: true, HTMLSlotElement: true, HTMLSourceElement: true, HTMLSpanElement: true, HTMLStyleElement: true, HTMLTableCaptionElement: true, HTMLTableCellElement: true, HTMLTableDataCellElement: true, HTMLTableHeaderCellElement: true, HTMLTableColElement: true, HTMLTextAreaElement: true, HTMLTimeElement: true, HTMLTitleElement: true, HTMLTrackElement: true, HTMLUListElement: true, HTMLUnknownElement: true, HTMLVideoElement: true, HTMLDirectoryElement: true, HTMLFontElement: true, HTMLFrameElement: true, HTMLFrameSetElement: true, HTMLMarqueeElement: true, HTMLElement: false, AccessibleNodeList: true, HTMLAnchorElement: true, HTMLAreaElement: true, HTMLBaseElement: true, Blob: false, HTMLBodyElement: true, CDATASection: true, CharacterData: true, Comment: true, ProcessingInstruction: true, Text: true, CloseEvent: true, CSSPerspective: true, CSSCharsetRule: true, CSSConditionRule: true, CSSFontFaceRule: true, CSSGroupingRule: true, CSSImportRule: true, CSSKeyframeRule: true, MozCSSKeyframeRule: true, WebKitCSSKeyframeRule: true, CSSKeyframesRule: true, MozCSSKeyframesRule: true, WebKitCSSKeyframesRule: true, CSSMediaRule: true, CSSNamespaceRule: true, CSSPageRule: true, CSSRule: true, CSSStyleRule: true, CSSSupportsRule: true, CSSViewportRule: true, CSSStyleDeclaration: true, MSStyleCSSProperties: true, CSS2Properties: true, CSSImageValue: true, CSSKeywordValue: true, CSSNumericValue: true, CSSPositionValue: true, CSSResourceValue: true, CSSUnitValue: true, CSSURLImageValue: true, CSSStyleValue: false, CSSMatrixComponent: true, CSSRotation: true, CSSScale: true, CSSSkew: true, CSSTranslation: true, CSSTransformComponent: false, CSSTransformValue: true, CSSUnparsedValue: true, CustomEvent: true, DataTransferItemList: true, XMLDocument: true, Document: false, DOMException: true, DOMImplementation: true, ClientRectList: true, DOMRectList: true, DOMRectReadOnly: false, DOMStringList: true, DOMTokenList: true, MathMLElement: true, Element: false, AbortPaymentEvent: true, AnimationEvent: true, AnimationPlaybackEvent: true, ApplicationCacheErrorEvent: true, BackgroundFetchClickEvent: true, BackgroundFetchEvent: true, BackgroundFetchFailEvent: true, BackgroundFetchedEvent: true, BeforeInstallPromptEvent: true, BeforeUnloadEvent: true, BlobEvent: true, CanMakePaymentEvent: true, ClipboardEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PopStateEvent: true, PresentationConnectionAvailableEvent: true, PresentationConnectionCloseEvent: true, PromiseRejectionEvent: true, PushEvent: true, RTCDataChannelEvent: true, RTCDTMFToneChangeEvent: true, RTCPeerConnectionIceEvent: true, RTCTrackEvent: true, SecurityPolicyViolationEvent: true, SensorErrorEvent: true, SpeechRecognitionError: true, SpeechRecognitionEvent: true, SpeechSynthesisEvent: true, StorageEvent: true, SyncEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, MojoInterfaceRequestEvent: true, USBConnectionEvent: true, IDBVersionChangeEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, EventSource: true, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, FileReader: true, FontFaceSet: true, Gyroscope: true, LinearAccelerationSensor: true, Magnetometer: true, MediaDevices: true, MediaKeySession: true, MediaQueryList: true, MediaRecorder: true, MediaSource: true, MediaStream: true, MediaStreamTrack: true, MIDIAccess: true, MIDIInput: true, MIDIOutput: true, MIDIPort: true, NetworkInformation: true, Notification: true, OffscreenCanvas: true, OrientationSensor: true, PaymentRequest: true, Performance: true, PermissionStatus: true, PresentationAvailability: true, PresentationConnection: true, PresentationConnectionList: true, PresentationRequest: true, RelativeOrientationSensor: true, RemotePlayback: true, RTCDataChannel: true, DataChannel: true, RTCDTMFSender: true, RTCPeerConnection: true, webkitRTCPeerConnection: true, mozRTCPeerConnection: true, ScreenOrientation: true, Sensor: true, ServiceWorker: true, ServiceWorkerContainer: true, ServiceWorkerRegistration: true, SharedWorker: true, SpeechRecognition: true, SpeechSynthesis: true, SpeechSynthesisUtterance: true, VR: true, VRDevice: true, VRDisplay: true, VRSession: true, VisualViewport: true, Worker: true, WorkerPerformance: true, BluetoothDevice: true, BluetoothRemoteGATTCharacteristic: true, Clipboard: true, MojoInterfaceInterceptor: true, USB: true, IDBDatabase: true, IDBOpenDBRequest: true, IDBVersionChangeRequest: true, IDBRequest: true, IDBTransaction: true, AnalyserNode: true, RealtimeAnalyserNode: true, AudioBufferSourceNode: true, AudioDestinationNode: true, AudioNode: true, AudioScheduledSourceNode: true, AudioWorkletNode: true, BiquadFilterNode: true, ChannelMergerNode: true, AudioChannelMerger: true, ChannelSplitterNode: true, AudioChannelSplitter: true, ConstantSourceNode: true, ConvolverNode: true, DelayNode: true, DynamicsCompressorNode: true, GainNode: true, AudioGainNode: true, IIRFilterNode: true, MediaElementAudioSourceNode: true, MediaStreamAudioDestinationNode: true, MediaStreamAudioSourceNode: true, OscillatorNode: true, Oscillator: true, PannerNode: true, AudioPannerNode: true, webkitAudioPannerNode: true, ScriptProcessorNode: true, JavaScriptAudioNode: true, StereoPannerNode: true, WaveShaperNode: true, EventTarget: false, File: true, FileList: true, FileWriter: true, HTMLFormElement: true, Gamepad: true, History: true, HTMLCollection: true, HTMLFormControlsCollection: true, HTMLOptionsCollection: true, HTMLDocument: true, XMLHttpRequest: true, XMLHttpRequestUpload: true, XMLHttpRequestEventTarget: false, ImageData: true, KeyboardEvent: true, Location: true, MediaList: true, MessageEvent: true, MessagePort: true, MIDIInputMap: true, MIDIOutputMap: true, MimeType: true, MimeTypeArray: true, DocumentFragment: true, ShadowRoot: true, DocumentType: true, Node: false, NodeList: true, RadioNodeList: true, Plugin: true, PluginArray: true, ProgressEvent: true, ResourceProgressEvent: true, RTCStatsReport: true, HTMLScriptElement: true, HTMLSelectElement: true, SourceBuffer: true, SourceBufferList: true, SpeechGrammar: true, SpeechGrammarList: true, SpeechRecognitionResult: true, Storage: true, CSSStyleSheet: true, StyleSheet: true, HTMLTableElement: true, HTMLTableRowElement: true, HTMLTableSectionElement: true, HTMLTemplateElement: true, TextTrack: true, TextTrackCue: true, VTTCue: true, TextTrackCueList: true, TextTrackList: true, TimeRanges: true, Touch: true, TouchList: true, TrackDefaultList: true, CompositionEvent: true, FocusEvent: true, MouseEvent: true, DragEvent: true, PointerEvent: true, TextEvent: true, TouchEvent: true, WheelEvent: true, UIEvent: false, URL: true, VideoTrackList: true, WebSocket: true, Window: true, DOMWindow: true, DedicatedWorkerGlobalScope: true, ServiceWorkerGlobalScope: true, SharedWorkerGlobalScope: true, WorkerGlobalScope: true, Attr: true, CSSRuleList: true, ClientRect: true, DOMRect: true, GamepadList: true, NamedNodeMap: true, MozNamedAttrMap: true, SpeechRecognitionResultList: true, StyleSheetList: true, IDBKeyRange: true, SVGLength: true, SVGLengthList: true, SVGNumber: true, SVGNumberList: true, SVGPointList: true, SVGScriptElement: true, SVGStringList: true, SVGAElement: true, SVGAnimateElement: true, SVGAnimateMotionElement: true, SVGAnimateTransformElement: true, SVGAnimationElement: true, SVGCircleElement: true, SVGClipPathElement: true, SVGDefsElement: true, SVGDescElement: true, SVGDiscardElement: true, SVGEllipseElement: true, SVGFEBlendElement: true, SVGFEColorMatrixElement: true, SVGFEComponentTransferElement: true, SVGFECompositeElement: true, SVGFEConvolveMatrixElement: true, SVGFEDiffuseLightingElement: true, SVGFEDisplacementMapElement: true, SVGFEDistantLightElement: true, SVGFEFloodElement: true, SVGFEFuncAElement: true, SVGFEFuncBElement: true, SVGFEFuncGElement: true, SVGFEFuncRElement: true, SVGFEGaussianBlurElement: true, SVGFEImageElement: true, SVGFEMergeElement: true, SVGFEMergeNodeElement: true, SVGFEMorphologyElement: true, SVGFEOffsetElement: true, SVGFEPointLightElement: true, SVGFESpecularLightingElement: true, SVGFESpotLightElement: true, SVGFETileElement: true, SVGFETurbulenceElement: true, SVGFilterElement: true, SVGForeignObjectElement: true, SVGGElement: true, SVGGeometryElement: true, SVGGraphicsElement: true, SVGImageElement: true, SVGLineElement: true, SVGLinearGradientElement: true, SVGMarkerElement: true, SVGMaskElement: true, SVGMetadataElement: true, SVGPathElement: true, SVGPatternElement: true, SVGPolygonElement: true, SVGPolylineElement: true, SVGRadialGradientElement: true, SVGRectElement: true, SVGSetElement: true, SVGStopElement: true, SVGStyleElement: true, SVGSVGElement: true, SVGSwitchElement: true, SVGSymbolElement: true, SVGTSpanElement: true, SVGTextContentElement: true, SVGTextElement: true, SVGTextPathElement: true, SVGTextPositioningElement: true, SVGTitleElement: true, SVGUseElement: true, SVGViewElement: true, SVGGradientElement: true, SVGComponentTransferFunctionElement: true, SVGFEDropShadowElement: true, SVGMPathElement: true, SVGElement: false, SVGTransform: true, SVGTransformList: true, AudioBuffer: true, AudioParamMap: true, AudioTrackList: true, AudioContext: true, webkitAudioContext: true, BaseAudioContext: false, OfflineAudioContext: true}); + hunkHelpers.setOrUpdateInterceptorsByTag({WebGL: J.Interceptor, AnimationEffectReadOnly: J.JavaScriptObject, AnimationEffectTiming: J.JavaScriptObject, AnimationEffectTimingReadOnly: J.JavaScriptObject, AnimationTimeline: J.JavaScriptObject, AnimationWorkletGlobalScope: J.JavaScriptObject, AuthenticatorAssertionResponse: J.JavaScriptObject, AuthenticatorAttestationResponse: J.JavaScriptObject, AuthenticatorResponse: J.JavaScriptObject, BackgroundFetchFetch: J.JavaScriptObject, BackgroundFetchManager: J.JavaScriptObject, BackgroundFetchSettledFetch: J.JavaScriptObject, BarProp: J.JavaScriptObject, BarcodeDetector: J.JavaScriptObject, BluetoothRemoteGATTDescriptor: J.JavaScriptObject, Body: J.JavaScriptObject, BudgetState: J.JavaScriptObject, CacheStorage: J.JavaScriptObject, CanvasGradient: J.JavaScriptObject, CanvasPattern: J.JavaScriptObject, CanvasRenderingContext2D: J.JavaScriptObject, Client: J.JavaScriptObject, Clients: J.JavaScriptObject, CookieStore: J.JavaScriptObject, Coordinates: J.JavaScriptObject, Credential: J.JavaScriptObject, CredentialUserData: J.JavaScriptObject, CredentialsContainer: J.JavaScriptObject, Crypto: J.JavaScriptObject, CryptoKey: J.JavaScriptObject, CSS: J.JavaScriptObject, CSSVariableReferenceValue: J.JavaScriptObject, CustomElementRegistry: J.JavaScriptObject, DataTransfer: J.JavaScriptObject, DataTransferItem: J.JavaScriptObject, DeprecatedStorageInfo: J.JavaScriptObject, DeprecatedStorageQuota: J.JavaScriptObject, DeprecationReport: J.JavaScriptObject, DetectedBarcode: J.JavaScriptObject, DetectedFace: J.JavaScriptObject, DetectedText: J.JavaScriptObject, DeviceAcceleration: J.JavaScriptObject, DeviceRotationRate: J.JavaScriptObject, DirectoryEntry: J.JavaScriptObject, webkitFileSystemDirectoryEntry: J.JavaScriptObject, FileSystemDirectoryEntry: J.JavaScriptObject, DirectoryReader: J.JavaScriptObject, WebKitDirectoryReader: J.JavaScriptObject, webkitFileSystemDirectoryReader: J.JavaScriptObject, FileSystemDirectoryReader: J.JavaScriptObject, DocumentOrShadowRoot: J.JavaScriptObject, DocumentTimeline: J.JavaScriptObject, DOMError: J.JavaScriptObject, Iterator: J.JavaScriptObject, DOMMatrix: J.JavaScriptObject, DOMMatrixReadOnly: J.JavaScriptObject, DOMParser: J.JavaScriptObject, DOMPoint: J.JavaScriptObject, DOMPointReadOnly: J.JavaScriptObject, DOMQuad: J.JavaScriptObject, DOMStringMap: J.JavaScriptObject, Entry: J.JavaScriptObject, webkitFileSystemEntry: J.JavaScriptObject, FileSystemEntry: J.JavaScriptObject, External: J.JavaScriptObject, FaceDetector: J.JavaScriptObject, FederatedCredential: J.JavaScriptObject, FileEntry: J.JavaScriptObject, webkitFileSystemFileEntry: J.JavaScriptObject, FileSystemFileEntry: J.JavaScriptObject, DOMFileSystem: J.JavaScriptObject, WebKitFileSystem: J.JavaScriptObject, webkitFileSystem: J.JavaScriptObject, FileSystem: J.JavaScriptObject, FontFace: J.JavaScriptObject, FontFaceSource: J.JavaScriptObject, FormData: J.JavaScriptObject, GamepadButton: J.JavaScriptObject, GamepadPose: J.JavaScriptObject, Geolocation: J.JavaScriptObject, Position: J.JavaScriptObject, GeolocationPosition: J.JavaScriptObject, Headers: J.JavaScriptObject, HTMLHyperlinkElementUtils: J.JavaScriptObject, IdleDeadline: J.JavaScriptObject, ImageBitmap: J.JavaScriptObject, ImageBitmapRenderingContext: J.JavaScriptObject, ImageCapture: J.JavaScriptObject, InputDeviceCapabilities: J.JavaScriptObject, IntersectionObserver: J.JavaScriptObject, IntersectionObserverEntry: J.JavaScriptObject, InterventionReport: J.JavaScriptObject, KeyframeEffect: J.JavaScriptObject, KeyframeEffectReadOnly: J.JavaScriptObject, MediaCapabilities: J.JavaScriptObject, MediaCapabilitiesInfo: J.JavaScriptObject, MediaDeviceInfo: J.JavaScriptObject, MediaError: J.JavaScriptObject, MediaKeyStatusMap: J.JavaScriptObject, MediaKeySystemAccess: J.JavaScriptObject, MediaKeys: J.JavaScriptObject, MediaKeysPolicy: J.JavaScriptObject, MediaMetadata: J.JavaScriptObject, MediaSession: J.JavaScriptObject, MediaSettingsRange: J.JavaScriptObject, MemoryInfo: J.JavaScriptObject, MessageChannel: J.JavaScriptObject, Metadata: J.JavaScriptObject, MutationObserver: J.JavaScriptObject, WebKitMutationObserver: J.JavaScriptObject, MutationRecord: J.JavaScriptObject, NavigationPreloadManager: J.JavaScriptObject, Navigator: J.JavaScriptObject, NavigatorAutomationInformation: J.JavaScriptObject, NavigatorConcurrentHardware: J.JavaScriptObject, NavigatorCookies: J.JavaScriptObject, NavigatorUserMediaError: J.JavaScriptObject, NodeFilter: J.JavaScriptObject, NodeIterator: J.JavaScriptObject, NonDocumentTypeChildNode: J.JavaScriptObject, NonElementParentNode: J.JavaScriptObject, NoncedElement: J.JavaScriptObject, OffscreenCanvasRenderingContext2D: J.JavaScriptObject, OverconstrainedError: J.JavaScriptObject, PaintRenderingContext2D: J.JavaScriptObject, PaintSize: J.JavaScriptObject, PaintWorkletGlobalScope: J.JavaScriptObject, PasswordCredential: J.JavaScriptObject, Path2D: J.JavaScriptObject, PaymentAddress: J.JavaScriptObject, PaymentInstruments: J.JavaScriptObject, PaymentManager: J.JavaScriptObject, PaymentResponse: J.JavaScriptObject, PerformanceEntry: J.JavaScriptObject, PerformanceLongTaskTiming: J.JavaScriptObject, PerformanceMark: J.JavaScriptObject, PerformanceMeasure: J.JavaScriptObject, PerformanceNavigation: J.JavaScriptObject, PerformanceNavigationTiming: J.JavaScriptObject, PerformanceObserver: J.JavaScriptObject, PerformanceObserverEntryList: J.JavaScriptObject, PerformancePaintTiming: J.JavaScriptObject, PerformanceResourceTiming: J.JavaScriptObject, PerformanceServerTiming: J.JavaScriptObject, PerformanceTiming: J.JavaScriptObject, Permissions: J.JavaScriptObject, PhotoCapabilities: J.JavaScriptObject, PositionError: J.JavaScriptObject, GeolocationPositionError: J.JavaScriptObject, Presentation: J.JavaScriptObject, PresentationReceiver: J.JavaScriptObject, PublicKeyCredential: J.JavaScriptObject, PushManager: J.JavaScriptObject, PushMessageData: J.JavaScriptObject, PushSubscription: J.JavaScriptObject, PushSubscriptionOptions: J.JavaScriptObject, Range: J.JavaScriptObject, RelatedApplication: J.JavaScriptObject, ReportBody: J.JavaScriptObject, ReportingObserver: J.JavaScriptObject, ResizeObserver: J.JavaScriptObject, ResizeObserverEntry: J.JavaScriptObject, RTCCertificate: J.JavaScriptObject, RTCIceCandidate: J.JavaScriptObject, mozRTCIceCandidate: J.JavaScriptObject, RTCLegacyStatsReport: J.JavaScriptObject, RTCRtpContributingSource: J.JavaScriptObject, RTCRtpReceiver: J.JavaScriptObject, RTCRtpSender: J.JavaScriptObject, RTCSessionDescription: J.JavaScriptObject, mozRTCSessionDescription: J.JavaScriptObject, RTCStatsResponse: J.JavaScriptObject, Screen: J.JavaScriptObject, ScrollState: J.JavaScriptObject, ScrollTimeline: J.JavaScriptObject, Selection: J.JavaScriptObject, SpeechRecognitionAlternative: J.JavaScriptObject, SpeechSynthesisVoice: J.JavaScriptObject, StaticRange: J.JavaScriptObject, StorageManager: J.JavaScriptObject, StyleMedia: J.JavaScriptObject, StylePropertyMap: J.JavaScriptObject, StylePropertyMapReadonly: J.JavaScriptObject, SyncManager: J.JavaScriptObject, TaskAttributionTiming: J.JavaScriptObject, TextDetector: J.JavaScriptObject, TextMetrics: J.JavaScriptObject, TrackDefault: J.JavaScriptObject, TreeWalker: J.JavaScriptObject, TrustedHTML: J.JavaScriptObject, TrustedScriptURL: J.JavaScriptObject, TrustedURL: J.JavaScriptObject, UnderlyingSourceBase: J.JavaScriptObject, URLSearchParams: J.JavaScriptObject, VRCoordinateSystem: J.JavaScriptObject, VRDisplayCapabilities: J.JavaScriptObject, VREyeParameters: J.JavaScriptObject, VRFrameData: J.JavaScriptObject, VRFrameOfReference: J.JavaScriptObject, VRPose: J.JavaScriptObject, VRStageBounds: J.JavaScriptObject, VRStageBoundsPoint: J.JavaScriptObject, VRStageParameters: J.JavaScriptObject, ValidityState: J.JavaScriptObject, VideoPlaybackQuality: J.JavaScriptObject, VideoTrack: J.JavaScriptObject, VTTRegion: J.JavaScriptObject, WindowClient: J.JavaScriptObject, WorkletAnimation: J.JavaScriptObject, WorkletGlobalScope: J.JavaScriptObject, XPathEvaluator: J.JavaScriptObject, XPathExpression: J.JavaScriptObject, XPathNSResolver: J.JavaScriptObject, XPathResult: J.JavaScriptObject, XMLSerializer: J.JavaScriptObject, XSLTProcessor: J.JavaScriptObject, Bluetooth: J.JavaScriptObject, BluetoothCharacteristicProperties: J.JavaScriptObject, BluetoothRemoteGATTServer: J.JavaScriptObject, BluetoothRemoteGATTService: J.JavaScriptObject, BluetoothUUID: J.JavaScriptObject, BudgetService: J.JavaScriptObject, Cache: J.JavaScriptObject, DOMFileSystemSync: J.JavaScriptObject, DirectoryEntrySync: J.JavaScriptObject, DirectoryReaderSync: J.JavaScriptObject, EntrySync: J.JavaScriptObject, FileEntrySync: J.JavaScriptObject, FileReaderSync: J.JavaScriptObject, FileWriterSync: J.JavaScriptObject, HTMLAllCollection: J.JavaScriptObject, Mojo: J.JavaScriptObject, MojoHandle: J.JavaScriptObject, MojoWatcher: J.JavaScriptObject, NFC: J.JavaScriptObject, PagePopupController: J.JavaScriptObject, Report: J.JavaScriptObject, Request: J.JavaScriptObject, Response: J.JavaScriptObject, SubtleCrypto: J.JavaScriptObject, USBAlternateInterface: J.JavaScriptObject, USBConfiguration: J.JavaScriptObject, USBDevice: J.JavaScriptObject, USBEndpoint: J.JavaScriptObject, USBInTransferResult: J.JavaScriptObject, USBInterface: J.JavaScriptObject, USBIsochronousInTransferPacket: J.JavaScriptObject, USBIsochronousInTransferResult: J.JavaScriptObject, USBIsochronousOutTransferPacket: J.JavaScriptObject, USBIsochronousOutTransferResult: J.JavaScriptObject, USBOutTransferResult: J.JavaScriptObject, WorkerLocation: J.JavaScriptObject, WorkerNavigator: J.JavaScriptObject, Worklet: J.JavaScriptObject, IDBCursor: J.JavaScriptObject, IDBCursorWithValue: J.JavaScriptObject, IDBFactory: J.JavaScriptObject, IDBIndex: J.JavaScriptObject, IDBObjectStore: J.JavaScriptObject, IDBObservation: J.JavaScriptObject, IDBObserver: J.JavaScriptObject, IDBObserverChanges: J.JavaScriptObject, SVGAngle: J.JavaScriptObject, SVGAnimatedAngle: J.JavaScriptObject, SVGAnimatedBoolean: J.JavaScriptObject, SVGAnimatedEnumeration: J.JavaScriptObject, SVGAnimatedInteger: J.JavaScriptObject, SVGAnimatedLength: J.JavaScriptObject, SVGAnimatedLengthList: J.JavaScriptObject, SVGAnimatedNumber: J.JavaScriptObject, SVGAnimatedNumberList: J.JavaScriptObject, SVGAnimatedPreserveAspectRatio: J.JavaScriptObject, SVGAnimatedRect: J.JavaScriptObject, SVGAnimatedString: J.JavaScriptObject, SVGAnimatedTransformList: J.JavaScriptObject, SVGMatrix: J.JavaScriptObject, SVGPoint: J.JavaScriptObject, SVGPreserveAspectRatio: J.JavaScriptObject, SVGRect: J.JavaScriptObject, SVGUnitTypes: J.JavaScriptObject, AudioListener: J.JavaScriptObject, AudioParam: J.JavaScriptObject, AudioTrack: J.JavaScriptObject, AudioWorkletGlobalScope: J.JavaScriptObject, AudioWorkletProcessor: J.JavaScriptObject, PeriodicWave: J.JavaScriptObject, WebGLActiveInfo: J.JavaScriptObject, ANGLEInstancedArrays: J.JavaScriptObject, ANGLE_instanced_arrays: J.JavaScriptObject, WebGLBuffer: J.JavaScriptObject, WebGLCanvas: J.JavaScriptObject, WebGLColorBufferFloat: J.JavaScriptObject, WebGLCompressedTextureASTC: J.JavaScriptObject, WebGLCompressedTextureATC: J.JavaScriptObject, WEBGL_compressed_texture_atc: J.JavaScriptObject, WebGLCompressedTextureETC1: J.JavaScriptObject, WEBGL_compressed_texture_etc1: J.JavaScriptObject, WebGLCompressedTextureETC: J.JavaScriptObject, WebGLCompressedTexturePVRTC: J.JavaScriptObject, WEBGL_compressed_texture_pvrtc: J.JavaScriptObject, WebGLCompressedTextureS3TC: J.JavaScriptObject, WEBGL_compressed_texture_s3tc: J.JavaScriptObject, WebGLCompressedTextureS3TCsRGB: J.JavaScriptObject, WebGLDebugRendererInfo: J.JavaScriptObject, WEBGL_debug_renderer_info: J.JavaScriptObject, WebGLDebugShaders: J.JavaScriptObject, WEBGL_debug_shaders: J.JavaScriptObject, WebGLDepthTexture: J.JavaScriptObject, WEBGL_depth_texture: J.JavaScriptObject, WebGLDrawBuffers: J.JavaScriptObject, WEBGL_draw_buffers: J.JavaScriptObject, EXTsRGB: J.JavaScriptObject, EXT_sRGB: J.JavaScriptObject, EXTBlendMinMax: J.JavaScriptObject, EXT_blend_minmax: J.JavaScriptObject, EXTColorBufferFloat: J.JavaScriptObject, EXTColorBufferHalfFloat: J.JavaScriptObject, EXTDisjointTimerQuery: J.JavaScriptObject, EXTDisjointTimerQueryWebGL2: J.JavaScriptObject, EXTFragDepth: J.JavaScriptObject, EXT_frag_depth: J.JavaScriptObject, EXTShaderTextureLOD: J.JavaScriptObject, EXT_shader_texture_lod: J.JavaScriptObject, EXTTextureFilterAnisotropic: J.JavaScriptObject, EXT_texture_filter_anisotropic: J.JavaScriptObject, WebGLFramebuffer: J.JavaScriptObject, WebGLGetBufferSubDataAsync: J.JavaScriptObject, WebGLLoseContext: J.JavaScriptObject, WebGLExtensionLoseContext: J.JavaScriptObject, WEBGL_lose_context: J.JavaScriptObject, OESElementIndexUint: J.JavaScriptObject, OES_element_index_uint: J.JavaScriptObject, OESStandardDerivatives: J.JavaScriptObject, OES_standard_derivatives: J.JavaScriptObject, OESTextureFloat: J.JavaScriptObject, OES_texture_float: J.JavaScriptObject, OESTextureFloatLinear: J.JavaScriptObject, OES_texture_float_linear: J.JavaScriptObject, OESTextureHalfFloat: J.JavaScriptObject, OES_texture_half_float: J.JavaScriptObject, OESTextureHalfFloatLinear: J.JavaScriptObject, OES_texture_half_float_linear: J.JavaScriptObject, OESVertexArrayObject: J.JavaScriptObject, OES_vertex_array_object: J.JavaScriptObject, WebGLProgram: J.JavaScriptObject, WebGLQuery: J.JavaScriptObject, WebGLRenderbuffer: J.JavaScriptObject, WebGLRenderingContext: J.JavaScriptObject, WebGL2RenderingContext: J.JavaScriptObject, WebGLSampler: J.JavaScriptObject, WebGLShader: J.JavaScriptObject, WebGLShaderPrecisionFormat: J.JavaScriptObject, WebGLSync: J.JavaScriptObject, WebGLTexture: J.JavaScriptObject, WebGLTimerQueryEXT: J.JavaScriptObject, WebGLTransformFeedback: J.JavaScriptObject, WebGLUniformLocation: J.JavaScriptObject, WebGLVertexArrayObject: J.JavaScriptObject, WebGLVertexArrayObjectOES: J.JavaScriptObject, WebGL2RenderingContextBase: J.JavaScriptObject, ArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List, HTMLAudioElement: A.HtmlElement, HTMLBRElement: A.HtmlElement, HTMLButtonElement: A.HtmlElement, HTMLCanvasElement: A.HtmlElement, HTMLContentElement: A.HtmlElement, HTMLDListElement: A.HtmlElement, HTMLDataElement: A.HtmlElement, HTMLDataListElement: A.HtmlElement, HTMLDetailsElement: A.HtmlElement, HTMLDialogElement: A.HtmlElement, HTMLDivElement: A.HtmlElement, HTMLEmbedElement: A.HtmlElement, HTMLFieldSetElement: A.HtmlElement, HTMLHRElement: A.HtmlElement, HTMLHeadElement: A.HtmlElement, HTMLHeadingElement: A.HtmlElement, HTMLHtmlElement: A.HtmlElement, HTMLIFrameElement: A.HtmlElement, HTMLImageElement: A.HtmlElement, HTMLInputElement: A.HtmlElement, HTMLLIElement: A.HtmlElement, HTMLLabelElement: A.HtmlElement, HTMLLegendElement: A.HtmlElement, HTMLLinkElement: A.HtmlElement, HTMLMapElement: A.HtmlElement, HTMLMediaElement: A.HtmlElement, HTMLMenuElement: A.HtmlElement, HTMLMetaElement: A.HtmlElement, HTMLMeterElement: A.HtmlElement, HTMLModElement: A.HtmlElement, HTMLOListElement: A.HtmlElement, HTMLObjectElement: A.HtmlElement, HTMLOptGroupElement: A.HtmlElement, HTMLOptionElement: A.HtmlElement, HTMLOutputElement: A.HtmlElement, HTMLParagraphElement: A.HtmlElement, HTMLParamElement: A.HtmlElement, HTMLPictureElement: A.HtmlElement, HTMLPreElement: A.HtmlElement, HTMLProgressElement: A.HtmlElement, HTMLQuoteElement: A.HtmlElement, HTMLShadowElement: A.HtmlElement, HTMLSlotElement: A.HtmlElement, HTMLSourceElement: A.HtmlElement, HTMLSpanElement: A.HtmlElement, HTMLStyleElement: A.HtmlElement, HTMLTableCaptionElement: A.HtmlElement, HTMLTableCellElement: A.HtmlElement, HTMLTableDataCellElement: A.HtmlElement, HTMLTableHeaderCellElement: A.HtmlElement, HTMLTableColElement: A.HtmlElement, HTMLTextAreaElement: A.HtmlElement, HTMLTimeElement: A.HtmlElement, HTMLTitleElement: A.HtmlElement, HTMLTrackElement: A.HtmlElement, HTMLUListElement: A.HtmlElement, HTMLUnknownElement: A.HtmlElement, HTMLVideoElement: A.HtmlElement, HTMLDirectoryElement: A.HtmlElement, HTMLFontElement: A.HtmlElement, HTMLFrameElement: A.HtmlElement, HTMLFrameSetElement: A.HtmlElement, HTMLMarqueeElement: A.HtmlElement, HTMLElement: A.HtmlElement, AccessibleNodeList: A.AccessibleNodeList, HTMLAnchorElement: A.AnchorElement, HTMLAreaElement: A.AreaElement, HTMLBaseElement: A.BaseElement, Blob: A.Blob, HTMLBodyElement: A.BodyElement, CDATASection: A.CharacterData, CharacterData: A.CharacterData, Comment: A.CharacterData, ProcessingInstruction: A.CharacterData, Text: A.CharacterData, CloseEvent: A.CloseEvent, CSSPerspective: A.CssPerspective, CSSCharsetRule: A.CssRule, CSSConditionRule: A.CssRule, CSSFontFaceRule: A.CssRule, CSSGroupingRule: A.CssRule, CSSImportRule: A.CssRule, CSSKeyframeRule: A.CssRule, MozCSSKeyframeRule: A.CssRule, WebKitCSSKeyframeRule: A.CssRule, CSSKeyframesRule: A.CssRule, MozCSSKeyframesRule: A.CssRule, WebKitCSSKeyframesRule: A.CssRule, CSSMediaRule: A.CssRule, CSSNamespaceRule: A.CssRule, CSSPageRule: A.CssRule, CSSRule: A.CssRule, CSSStyleRule: A.CssRule, CSSSupportsRule: A.CssRule, CSSViewportRule: A.CssRule, CSSStyleDeclaration: A.CssStyleDeclaration, MSStyleCSSProperties: A.CssStyleDeclaration, CSS2Properties: A.CssStyleDeclaration, CSSImageValue: A.CssStyleValue, CSSKeywordValue: A.CssStyleValue, CSSNumericValue: A.CssStyleValue, CSSPositionValue: A.CssStyleValue, CSSResourceValue: A.CssStyleValue, CSSUnitValue: A.CssStyleValue, CSSURLImageValue: A.CssStyleValue, CSSStyleValue: A.CssStyleValue, CSSMatrixComponent: A.CssTransformComponent, CSSRotation: A.CssTransformComponent, CSSScale: A.CssTransformComponent, CSSSkew: A.CssTransformComponent, CSSTranslation: A.CssTransformComponent, CSSTransformComponent: A.CssTransformComponent, CSSTransformValue: A.CssTransformValue, CSSUnparsedValue: A.CssUnparsedValue, CustomEvent: A.CustomEvent, DataTransferItemList: A.DataTransferItemList, XMLDocument: A.Document, Document: A.Document, DOMException: A.DomException, DOMImplementation: A.DomImplementation, ClientRectList: A.DomRectList, DOMRectList: A.DomRectList, DOMRectReadOnly: A.DomRectReadOnly, DOMStringList: A.DomStringList, DOMTokenList: A.DomTokenList, MathMLElement: A.Element, Element: A.Element, AbortPaymentEvent: A.Event, AnimationEvent: A.Event, AnimationPlaybackEvent: A.Event, ApplicationCacheErrorEvent: A.Event, BackgroundFetchClickEvent: A.Event, BackgroundFetchEvent: A.Event, BackgroundFetchFailEvent: A.Event, BackgroundFetchedEvent: A.Event, BeforeInstallPromptEvent: A.Event, BeforeUnloadEvent: A.Event, BlobEvent: A.Event, CanMakePaymentEvent: A.Event, ClipboardEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PopStateEvent: A.Event, PresentationConnectionAvailableEvent: A.Event, PresentationConnectionCloseEvent: A.Event, PromiseRejectionEvent: A.Event, PushEvent: A.Event, RTCDataChannelEvent: A.Event, RTCDTMFToneChangeEvent: A.Event, RTCPeerConnectionIceEvent: A.Event, RTCTrackEvent: A.Event, SecurityPolicyViolationEvent: A.Event, SensorErrorEvent: A.Event, SpeechRecognitionError: A.Event, SpeechRecognitionEvent: A.Event, SpeechSynthesisEvent: A.Event, StorageEvent: A.Event, SyncEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, MojoInterfaceRequestEvent: A.Event, USBConnectionEvent: A.Event, IDBVersionChangeEvent: A.Event, AudioProcessingEvent: A.Event, OfflineAudioCompletionEvent: A.Event, WebGLContextEvent: A.Event, Event: A.Event, InputEvent: A.Event, SubmitEvent: A.Event, EventSource: A.EventSource, AbsoluteOrientationSensor: A.EventTarget, Accelerometer: A.EventTarget, AccessibleNode: A.EventTarget, AmbientLightSensor: A.EventTarget, Animation: A.EventTarget, ApplicationCache: A.EventTarget, DOMApplicationCache: A.EventTarget, OfflineResourceList: A.EventTarget, BackgroundFetchRegistration: A.EventTarget, BatteryManager: A.EventTarget, BroadcastChannel: A.EventTarget, CanvasCaptureMediaStreamTrack: A.EventTarget, FileReader: A.EventTarget, FontFaceSet: A.EventTarget, Gyroscope: A.EventTarget, LinearAccelerationSensor: A.EventTarget, Magnetometer: A.EventTarget, MediaDevices: A.EventTarget, MediaKeySession: A.EventTarget, MediaQueryList: A.EventTarget, MediaRecorder: A.EventTarget, MediaSource: A.EventTarget, MediaStream: A.EventTarget, MediaStreamTrack: A.EventTarget, MIDIAccess: A.EventTarget, MIDIInput: A.EventTarget, MIDIOutput: A.EventTarget, MIDIPort: A.EventTarget, NetworkInformation: A.EventTarget, Notification: A.EventTarget, OffscreenCanvas: A.EventTarget, OrientationSensor: A.EventTarget, PaymentRequest: A.EventTarget, Performance: A.EventTarget, PermissionStatus: A.EventTarget, PresentationAvailability: A.EventTarget, PresentationConnection: A.EventTarget, PresentationConnectionList: A.EventTarget, PresentationRequest: A.EventTarget, RelativeOrientationSensor: A.EventTarget, RemotePlayback: A.EventTarget, RTCDataChannel: A.EventTarget, DataChannel: A.EventTarget, RTCDTMFSender: A.EventTarget, RTCPeerConnection: A.EventTarget, webkitRTCPeerConnection: A.EventTarget, mozRTCPeerConnection: A.EventTarget, ScreenOrientation: A.EventTarget, Sensor: A.EventTarget, ServiceWorker: A.EventTarget, ServiceWorkerContainer: A.EventTarget, ServiceWorkerRegistration: A.EventTarget, SharedWorker: A.EventTarget, SpeechRecognition: A.EventTarget, SpeechSynthesis: A.EventTarget, SpeechSynthesisUtterance: A.EventTarget, VR: A.EventTarget, VRDevice: A.EventTarget, VRDisplay: A.EventTarget, VRSession: A.EventTarget, VisualViewport: A.EventTarget, Worker: A.EventTarget, WorkerPerformance: A.EventTarget, BluetoothDevice: A.EventTarget, BluetoothRemoteGATTCharacteristic: A.EventTarget, Clipboard: A.EventTarget, MojoInterfaceInterceptor: A.EventTarget, USB: A.EventTarget, IDBDatabase: A.EventTarget, IDBOpenDBRequest: A.EventTarget, IDBVersionChangeRequest: A.EventTarget, IDBRequest: A.EventTarget, IDBTransaction: A.EventTarget, AnalyserNode: A.EventTarget, RealtimeAnalyserNode: A.EventTarget, AudioBufferSourceNode: A.EventTarget, AudioDestinationNode: A.EventTarget, AudioNode: A.EventTarget, AudioScheduledSourceNode: A.EventTarget, AudioWorkletNode: A.EventTarget, BiquadFilterNode: A.EventTarget, ChannelMergerNode: A.EventTarget, AudioChannelMerger: A.EventTarget, ChannelSplitterNode: A.EventTarget, AudioChannelSplitter: A.EventTarget, ConstantSourceNode: A.EventTarget, ConvolverNode: A.EventTarget, DelayNode: A.EventTarget, DynamicsCompressorNode: A.EventTarget, GainNode: A.EventTarget, AudioGainNode: A.EventTarget, IIRFilterNode: A.EventTarget, MediaElementAudioSourceNode: A.EventTarget, MediaStreamAudioDestinationNode: A.EventTarget, MediaStreamAudioSourceNode: A.EventTarget, OscillatorNode: A.EventTarget, Oscillator: A.EventTarget, PannerNode: A.EventTarget, AudioPannerNode: A.EventTarget, webkitAudioPannerNode: A.EventTarget, ScriptProcessorNode: A.EventTarget, JavaScriptAudioNode: A.EventTarget, StereoPannerNode: A.EventTarget, WaveShaperNode: A.EventTarget, EventTarget: A.EventTarget, File: A.File, FileList: A.FileList, FileWriter: A.FileWriter, HTMLFormElement: A.FormElement, Gamepad: A.Gamepad, History: A.History, HTMLCollection: A.HtmlCollection, HTMLFormControlsCollection: A.HtmlCollection, HTMLOptionsCollection: A.HtmlCollection, HTMLDocument: A.HtmlDocument, XMLHttpRequest: A.HttpRequest, XMLHttpRequestUpload: A.HttpRequestEventTarget, XMLHttpRequestEventTarget: A.HttpRequestEventTarget, ImageData: A.ImageData, KeyboardEvent: A.KeyboardEvent, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, MessagePort: A.MessagePort, MIDIInputMap: A.MidiInputMap, MIDIOutputMap: A.MidiOutputMap, MimeType: A.MimeType, MimeTypeArray: A.MimeTypeArray, DocumentFragment: A.Node, ShadowRoot: A.Node, DocumentType: A.Node, Node: A.Node, NodeList: A.NodeList, RadioNodeList: A.NodeList, Plugin: A.Plugin, PluginArray: A.PluginArray, ProgressEvent: A.ProgressEvent, ResourceProgressEvent: A.ProgressEvent, RTCStatsReport: A.RtcStatsReport, HTMLScriptElement: A.ScriptElement, HTMLSelectElement: A.SelectElement, SharedArrayBuffer: A.SharedArrayBuffer, SourceBuffer: A.SourceBuffer, SourceBufferList: A.SourceBufferList, SpeechGrammar: A.SpeechGrammar, SpeechGrammarList: A.SpeechGrammarList, SpeechRecognitionResult: A.SpeechRecognitionResult, Storage: A.Storage, CSSStyleSheet: A.StyleSheet, StyleSheet: A.StyleSheet, HTMLTableElement: A.TableElement, HTMLTableRowElement: A.TableRowElement, HTMLTableSectionElement: A.TableSectionElement, HTMLTemplateElement: A.TemplateElement, TextTrack: A.TextTrack, TextTrackCue: A.TextTrackCue, VTTCue: A.TextTrackCue, TextTrackCueList: A.TextTrackCueList, TextTrackList: A.TextTrackList, TimeRanges: A.TimeRanges, Touch: A.Touch, TouchList: A.TouchList, TrackDefaultList: A.TrackDefaultList, CompositionEvent: A.UIEvent, FocusEvent: A.UIEvent, MouseEvent: A.UIEvent, DragEvent: A.UIEvent, PointerEvent: A.UIEvent, TextEvent: A.UIEvent, TouchEvent: A.UIEvent, WheelEvent: A.UIEvent, UIEvent: A.UIEvent, URL: A.Url, VideoTrackList: A.VideoTrackList, WebSocket: A.WebSocket, Window: A.Window, DOMWindow: A.Window, DedicatedWorkerGlobalScope: A.WorkerGlobalScope, ServiceWorkerGlobalScope: A.WorkerGlobalScope, SharedWorkerGlobalScope: A.WorkerGlobalScope, WorkerGlobalScope: A.WorkerGlobalScope, Attr: A._Attr, CSSRuleList: A._CssRuleList, ClientRect: A._DomRect, DOMRect: A._DomRect, GamepadList: A._GamepadList, NamedNodeMap: A._NamedNodeMap, MozNamedAttrMap: A._NamedNodeMap, SpeechRecognitionResultList: A._SpeechRecognitionResultList, StyleSheetList: A._StyleSheetList, IDBKeyRange: A.KeyRange, SVGLength: A.Length, SVGLengthList: A.LengthList, SVGNumber: A.Number, SVGNumberList: A.NumberList, SVGPointList: A.PointList, SVGScriptElement: A.ScriptElement0, SVGStringList: A.StringList, SVGAElement: A.SvgElement, SVGAnimateElement: A.SvgElement, SVGAnimateMotionElement: A.SvgElement, SVGAnimateTransformElement: A.SvgElement, SVGAnimationElement: A.SvgElement, SVGCircleElement: A.SvgElement, SVGClipPathElement: A.SvgElement, SVGDefsElement: A.SvgElement, SVGDescElement: A.SvgElement, SVGDiscardElement: A.SvgElement, SVGEllipseElement: A.SvgElement, SVGFEBlendElement: A.SvgElement, SVGFEColorMatrixElement: A.SvgElement, SVGFEComponentTransferElement: A.SvgElement, SVGFECompositeElement: A.SvgElement, SVGFEConvolveMatrixElement: A.SvgElement, SVGFEDiffuseLightingElement: A.SvgElement, SVGFEDisplacementMapElement: A.SvgElement, SVGFEDistantLightElement: A.SvgElement, SVGFEFloodElement: A.SvgElement, SVGFEFuncAElement: A.SvgElement, SVGFEFuncBElement: A.SvgElement, SVGFEFuncGElement: A.SvgElement, SVGFEFuncRElement: A.SvgElement, SVGFEGaussianBlurElement: A.SvgElement, SVGFEImageElement: A.SvgElement, SVGFEMergeElement: A.SvgElement, SVGFEMergeNodeElement: A.SvgElement, SVGFEMorphologyElement: A.SvgElement, SVGFEOffsetElement: A.SvgElement, SVGFEPointLightElement: A.SvgElement, SVGFESpecularLightingElement: A.SvgElement, SVGFESpotLightElement: A.SvgElement, SVGFETileElement: A.SvgElement, SVGFETurbulenceElement: A.SvgElement, SVGFilterElement: A.SvgElement, SVGForeignObjectElement: A.SvgElement, SVGGElement: A.SvgElement, SVGGeometryElement: A.SvgElement, SVGGraphicsElement: A.SvgElement, SVGImageElement: A.SvgElement, SVGLineElement: A.SvgElement, SVGLinearGradientElement: A.SvgElement, SVGMarkerElement: A.SvgElement, SVGMaskElement: A.SvgElement, SVGMetadataElement: A.SvgElement, SVGPathElement: A.SvgElement, SVGPatternElement: A.SvgElement, SVGPolygonElement: A.SvgElement, SVGPolylineElement: A.SvgElement, SVGRadialGradientElement: A.SvgElement, SVGRectElement: A.SvgElement, SVGSetElement: A.SvgElement, SVGStopElement: A.SvgElement, SVGStyleElement: A.SvgElement, SVGSVGElement: A.SvgElement, SVGSwitchElement: A.SvgElement, SVGSymbolElement: A.SvgElement, SVGTSpanElement: A.SvgElement, SVGTextContentElement: A.SvgElement, SVGTextElement: A.SvgElement, SVGTextPathElement: A.SvgElement, SVGTextPositioningElement: A.SvgElement, SVGTitleElement: A.SvgElement, SVGUseElement: A.SvgElement, SVGViewElement: A.SvgElement, SVGGradientElement: A.SvgElement, SVGComponentTransferFunctionElement: A.SvgElement, SVGFEDropShadowElement: A.SvgElement, SVGMPathElement: A.SvgElement, SVGElement: A.SvgElement, SVGTransform: A.Transform, SVGTransformList: A.TransformList, AudioBuffer: A.AudioBuffer, AudioParamMap: A.AudioParamMap, AudioTrackList: A.AudioTrackList, AudioContext: A.BaseAudioContext, webkitAudioContext: A.BaseAudioContext, BaseAudioContext: A.BaseAudioContext, OfflineAudioContext: A.OfflineAudioContext}); + hunkHelpers.setOrUpdateLeafTags({WebGL: true, AnimationEffectReadOnly: true, AnimationEffectTiming: true, AnimationEffectTimingReadOnly: true, AnimationTimeline: true, AnimationWorkletGlobalScope: true, AuthenticatorAssertionResponse: true, AuthenticatorAttestationResponse: true, AuthenticatorResponse: true, BackgroundFetchFetch: true, BackgroundFetchManager: true, BackgroundFetchSettledFetch: true, BarProp: true, BarcodeDetector: true, BluetoothRemoteGATTDescriptor: true, Body: true, BudgetState: true, CacheStorage: true, CanvasGradient: true, CanvasPattern: true, CanvasRenderingContext2D: true, Client: true, Clients: true, CookieStore: true, Coordinates: true, Credential: true, CredentialUserData: true, CredentialsContainer: true, Crypto: true, CryptoKey: true, CSS: true, CSSVariableReferenceValue: true, CustomElementRegistry: true, DataTransfer: true, DataTransferItem: true, DeprecatedStorageInfo: true, DeprecatedStorageQuota: true, DeprecationReport: true, DetectedBarcode: true, DetectedFace: true, DetectedText: true, DeviceAcceleration: true, DeviceRotationRate: true, DirectoryEntry: true, webkitFileSystemDirectoryEntry: true, FileSystemDirectoryEntry: true, DirectoryReader: true, WebKitDirectoryReader: true, webkitFileSystemDirectoryReader: true, FileSystemDirectoryReader: true, DocumentOrShadowRoot: true, DocumentTimeline: true, DOMError: true, Iterator: true, DOMMatrix: true, DOMMatrixReadOnly: true, DOMParser: true, DOMPoint: true, DOMPointReadOnly: true, DOMQuad: true, DOMStringMap: true, Entry: true, webkitFileSystemEntry: true, FileSystemEntry: true, External: true, FaceDetector: true, FederatedCredential: true, FileEntry: true, webkitFileSystemFileEntry: true, FileSystemFileEntry: true, DOMFileSystem: true, WebKitFileSystem: true, webkitFileSystem: true, FileSystem: true, FontFace: true, FontFaceSource: true, FormData: true, GamepadButton: true, GamepadPose: true, Geolocation: true, Position: true, GeolocationPosition: true, Headers: true, HTMLHyperlinkElementUtils: true, IdleDeadline: true, ImageBitmap: true, ImageBitmapRenderingContext: true, ImageCapture: true, InputDeviceCapabilities: true, IntersectionObserver: true, IntersectionObserverEntry: true, InterventionReport: true, KeyframeEffect: true, KeyframeEffectReadOnly: true, MediaCapabilities: true, MediaCapabilitiesInfo: true, MediaDeviceInfo: true, MediaError: true, MediaKeyStatusMap: true, MediaKeySystemAccess: true, MediaKeys: true, MediaKeysPolicy: true, MediaMetadata: true, MediaSession: true, MediaSettingsRange: true, MemoryInfo: true, MessageChannel: true, Metadata: true, MutationObserver: true, WebKitMutationObserver: true, MutationRecord: true, NavigationPreloadManager: true, Navigator: true, NavigatorAutomationInformation: true, NavigatorConcurrentHardware: true, NavigatorCookies: true, NavigatorUserMediaError: true, NodeFilter: true, NodeIterator: true, NonDocumentTypeChildNode: true, NonElementParentNode: true, NoncedElement: true, OffscreenCanvasRenderingContext2D: true, OverconstrainedError: true, PaintRenderingContext2D: true, PaintSize: true, PaintWorkletGlobalScope: true, PasswordCredential: true, Path2D: true, PaymentAddress: true, PaymentInstruments: true, PaymentManager: true, PaymentResponse: true, PerformanceEntry: true, PerformanceLongTaskTiming: true, PerformanceMark: true, PerformanceMeasure: true, PerformanceNavigation: true, PerformanceNavigationTiming: true, PerformanceObserver: true, PerformanceObserverEntryList: true, PerformancePaintTiming: true, PerformanceResourceTiming: true, PerformanceServerTiming: true, PerformanceTiming: true, Permissions: true, PhotoCapabilities: true, PositionError: true, GeolocationPositionError: true, Presentation: true, PresentationReceiver: true, PublicKeyCredential: true, PushManager: true, PushMessageData: true, PushSubscription: true, PushSubscriptionOptions: true, Range: true, RelatedApplication: true, ReportBody: true, ReportingObserver: true, ResizeObserver: true, ResizeObserverEntry: true, RTCCertificate: true, RTCIceCandidate: true, mozRTCIceCandidate: true, RTCLegacyStatsReport: true, RTCRtpContributingSource: true, RTCRtpReceiver: true, RTCRtpSender: true, RTCSessionDescription: true, mozRTCSessionDescription: true, RTCStatsResponse: true, Screen: true, ScrollState: true, ScrollTimeline: true, Selection: true, SpeechRecognitionAlternative: true, SpeechSynthesisVoice: true, StaticRange: true, StorageManager: true, StyleMedia: true, StylePropertyMap: true, StylePropertyMapReadonly: true, SyncManager: true, TaskAttributionTiming: true, TextDetector: true, TextMetrics: true, TrackDefault: true, TreeWalker: true, TrustedHTML: true, TrustedScriptURL: true, TrustedURL: true, UnderlyingSourceBase: true, URLSearchParams: true, VRCoordinateSystem: true, VRDisplayCapabilities: true, VREyeParameters: true, VRFrameData: true, VRFrameOfReference: true, VRPose: true, VRStageBounds: true, VRStageBoundsPoint: true, VRStageParameters: true, ValidityState: true, VideoPlaybackQuality: true, VideoTrack: true, VTTRegion: true, WindowClient: true, WorkletAnimation: true, WorkletGlobalScope: true, XPathEvaluator: true, XPathExpression: true, XPathNSResolver: true, XPathResult: true, XMLSerializer: true, XSLTProcessor: true, Bluetooth: true, BluetoothCharacteristicProperties: true, BluetoothRemoteGATTServer: true, BluetoothRemoteGATTService: true, BluetoothUUID: true, BudgetService: true, Cache: true, DOMFileSystemSync: true, DirectoryEntrySync: true, DirectoryReaderSync: true, EntrySync: true, FileEntrySync: true, FileReaderSync: true, FileWriterSync: true, HTMLAllCollection: true, Mojo: true, MojoHandle: true, MojoWatcher: true, NFC: true, PagePopupController: true, Report: true, Request: true, Response: true, SubtleCrypto: true, USBAlternateInterface: true, USBConfiguration: true, USBDevice: true, USBEndpoint: true, USBInTransferResult: true, USBInterface: true, USBIsochronousInTransferPacket: true, USBIsochronousInTransferResult: true, USBIsochronousOutTransferPacket: true, USBIsochronousOutTransferResult: true, USBOutTransferResult: true, WorkerLocation: true, WorkerNavigator: true, Worklet: true, IDBCursor: true, IDBCursorWithValue: true, IDBFactory: true, IDBIndex: true, IDBObjectStore: true, IDBObservation: true, IDBObserver: true, IDBObserverChanges: true, SVGAngle: true, SVGAnimatedAngle: true, SVGAnimatedBoolean: true, SVGAnimatedEnumeration: true, SVGAnimatedInteger: true, SVGAnimatedLength: true, SVGAnimatedLengthList: true, SVGAnimatedNumber: true, SVGAnimatedNumberList: true, SVGAnimatedPreserveAspectRatio: true, SVGAnimatedRect: true, SVGAnimatedString: true, SVGAnimatedTransformList: true, SVGMatrix: true, SVGPoint: true, SVGPreserveAspectRatio: true, SVGRect: true, SVGUnitTypes: true, AudioListener: true, AudioParam: true, AudioTrack: true, AudioWorkletGlobalScope: true, AudioWorkletProcessor: true, PeriodicWave: true, WebGLActiveInfo: true, ANGLEInstancedArrays: true, ANGLE_instanced_arrays: true, WebGLBuffer: true, WebGLCanvas: true, WebGLColorBufferFloat: true, WebGLCompressedTextureASTC: true, WebGLCompressedTextureATC: true, WEBGL_compressed_texture_atc: true, WebGLCompressedTextureETC1: true, WEBGL_compressed_texture_etc1: true, WebGLCompressedTextureETC: true, WebGLCompressedTexturePVRTC: true, WEBGL_compressed_texture_pvrtc: true, WebGLCompressedTextureS3TC: true, WEBGL_compressed_texture_s3tc: true, WebGLCompressedTextureS3TCsRGB: true, WebGLDebugRendererInfo: true, WEBGL_debug_renderer_info: true, WebGLDebugShaders: true, WEBGL_debug_shaders: true, WebGLDepthTexture: true, WEBGL_depth_texture: true, WebGLDrawBuffers: true, WEBGL_draw_buffers: true, EXTsRGB: true, EXT_sRGB: true, EXTBlendMinMax: true, EXT_blend_minmax: true, EXTColorBufferFloat: true, EXTColorBufferHalfFloat: true, EXTDisjointTimerQuery: true, EXTDisjointTimerQueryWebGL2: true, EXTFragDepth: true, EXT_frag_depth: true, EXTShaderTextureLOD: true, EXT_shader_texture_lod: true, EXTTextureFilterAnisotropic: true, EXT_texture_filter_anisotropic: true, WebGLFramebuffer: true, WebGLGetBufferSubDataAsync: true, WebGLLoseContext: true, WebGLExtensionLoseContext: true, WEBGL_lose_context: true, OESElementIndexUint: true, OES_element_index_uint: true, OESStandardDerivatives: true, OES_standard_derivatives: true, OESTextureFloat: true, OES_texture_float: true, OESTextureFloatLinear: true, OES_texture_float_linear: true, OESTextureHalfFloat: true, OES_texture_half_float: true, OESTextureHalfFloatLinear: true, OES_texture_half_float_linear: true, OESVertexArrayObject: true, OES_vertex_array_object: true, WebGLProgram: true, WebGLQuery: true, WebGLRenderbuffer: true, WebGLRenderingContext: true, WebGL2RenderingContext: true, WebGLSampler: true, WebGLShader: true, WebGLShaderPrecisionFormat: true, WebGLSync: true, WebGLTexture: true, WebGLTimerQueryEXT: true, WebGLTransformFeedback: true, WebGLUniformLocation: true, WebGLVertexArrayObject: true, WebGLVertexArrayObjectOES: true, WebGL2RenderingContextBase: true, ArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false, HTMLAudioElement: true, HTMLBRElement: true, HTMLButtonElement: true, HTMLCanvasElement: true, HTMLContentElement: true, HTMLDListElement: true, HTMLDataElement: true, HTMLDataListElement: true, HTMLDetailsElement: true, HTMLDialogElement: true, HTMLDivElement: true, HTMLEmbedElement: true, HTMLFieldSetElement: true, HTMLHRElement: true, HTMLHeadElement: true, HTMLHeadingElement: true, HTMLHtmlElement: true, HTMLIFrameElement: true, HTMLImageElement: true, HTMLInputElement: true, HTMLLIElement: true, HTMLLabelElement: true, HTMLLegendElement: true, HTMLLinkElement: true, HTMLMapElement: true, HTMLMediaElement: true, HTMLMenuElement: true, HTMLMetaElement: true, HTMLMeterElement: true, HTMLModElement: true, HTMLOListElement: true, HTMLObjectElement: true, HTMLOptGroupElement: true, HTMLOptionElement: true, HTMLOutputElement: true, HTMLParagraphElement: true, HTMLParamElement: true, HTMLPictureElement: true, HTMLPreElement: true, HTMLProgressElement: true, HTMLQuoteElement: true, HTMLShadowElement: true, HTMLSlotElement: true, HTMLSourceElement: true, HTMLSpanElement: true, HTMLStyleElement: true, HTMLTableCaptionElement: true, HTMLTableCellElement: true, HTMLTableDataCellElement: true, HTMLTableHeaderCellElement: true, HTMLTableColElement: true, HTMLTextAreaElement: true, HTMLTimeElement: true, HTMLTitleElement: true, HTMLTrackElement: true, HTMLUListElement: true, HTMLUnknownElement: true, HTMLVideoElement: true, HTMLDirectoryElement: true, HTMLFontElement: true, HTMLFrameElement: true, HTMLFrameSetElement: true, HTMLMarqueeElement: true, HTMLElement: false, AccessibleNodeList: true, HTMLAnchorElement: true, HTMLAreaElement: true, HTMLBaseElement: true, Blob: false, HTMLBodyElement: true, CDATASection: true, CharacterData: true, Comment: true, ProcessingInstruction: true, Text: true, CloseEvent: true, CSSPerspective: true, CSSCharsetRule: true, CSSConditionRule: true, CSSFontFaceRule: true, CSSGroupingRule: true, CSSImportRule: true, CSSKeyframeRule: true, MozCSSKeyframeRule: true, WebKitCSSKeyframeRule: true, CSSKeyframesRule: true, MozCSSKeyframesRule: true, WebKitCSSKeyframesRule: true, CSSMediaRule: true, CSSNamespaceRule: true, CSSPageRule: true, CSSRule: true, CSSStyleRule: true, CSSSupportsRule: true, CSSViewportRule: true, CSSStyleDeclaration: true, MSStyleCSSProperties: true, CSS2Properties: true, CSSImageValue: true, CSSKeywordValue: true, CSSNumericValue: true, CSSPositionValue: true, CSSResourceValue: true, CSSUnitValue: true, CSSURLImageValue: true, CSSStyleValue: false, CSSMatrixComponent: true, CSSRotation: true, CSSScale: true, CSSSkew: true, CSSTranslation: true, CSSTransformComponent: false, CSSTransformValue: true, CSSUnparsedValue: true, CustomEvent: true, DataTransferItemList: true, XMLDocument: true, Document: false, DOMException: true, DOMImplementation: true, ClientRectList: true, DOMRectList: true, DOMRectReadOnly: false, DOMStringList: true, DOMTokenList: true, MathMLElement: true, Element: false, AbortPaymentEvent: true, AnimationEvent: true, AnimationPlaybackEvent: true, ApplicationCacheErrorEvent: true, BackgroundFetchClickEvent: true, BackgroundFetchEvent: true, BackgroundFetchFailEvent: true, BackgroundFetchedEvent: true, BeforeInstallPromptEvent: true, BeforeUnloadEvent: true, BlobEvent: true, CanMakePaymentEvent: true, ClipboardEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PopStateEvent: true, PresentationConnectionAvailableEvent: true, PresentationConnectionCloseEvent: true, PromiseRejectionEvent: true, PushEvent: true, RTCDataChannelEvent: true, RTCDTMFToneChangeEvent: true, RTCPeerConnectionIceEvent: true, RTCTrackEvent: true, SecurityPolicyViolationEvent: true, SensorErrorEvent: true, SpeechRecognitionError: true, SpeechRecognitionEvent: true, SpeechSynthesisEvent: true, StorageEvent: true, SyncEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, MojoInterfaceRequestEvent: true, USBConnectionEvent: true, IDBVersionChangeEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, EventSource: true, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, FileReader: true, FontFaceSet: true, Gyroscope: true, LinearAccelerationSensor: true, Magnetometer: true, MediaDevices: true, MediaKeySession: true, MediaQueryList: true, MediaRecorder: true, MediaSource: true, MediaStream: true, MediaStreamTrack: true, MIDIAccess: true, MIDIInput: true, MIDIOutput: true, MIDIPort: true, NetworkInformation: true, Notification: true, OffscreenCanvas: true, OrientationSensor: true, PaymentRequest: true, Performance: true, PermissionStatus: true, PresentationAvailability: true, PresentationConnection: true, PresentationConnectionList: true, PresentationRequest: true, RelativeOrientationSensor: true, RemotePlayback: true, RTCDataChannel: true, DataChannel: true, RTCDTMFSender: true, RTCPeerConnection: true, webkitRTCPeerConnection: true, mozRTCPeerConnection: true, ScreenOrientation: true, Sensor: true, ServiceWorker: true, ServiceWorkerContainer: true, ServiceWorkerRegistration: true, SharedWorker: true, SpeechRecognition: true, SpeechSynthesis: true, SpeechSynthesisUtterance: true, VR: true, VRDevice: true, VRDisplay: true, VRSession: true, VisualViewport: true, Worker: true, WorkerPerformance: true, BluetoothDevice: true, BluetoothRemoteGATTCharacteristic: true, Clipboard: true, MojoInterfaceInterceptor: true, USB: true, IDBDatabase: true, IDBOpenDBRequest: true, IDBVersionChangeRequest: true, IDBRequest: true, IDBTransaction: true, AnalyserNode: true, RealtimeAnalyserNode: true, AudioBufferSourceNode: true, AudioDestinationNode: true, AudioNode: true, AudioScheduledSourceNode: true, AudioWorkletNode: true, BiquadFilterNode: true, ChannelMergerNode: true, AudioChannelMerger: true, ChannelSplitterNode: true, AudioChannelSplitter: true, ConstantSourceNode: true, ConvolverNode: true, DelayNode: true, DynamicsCompressorNode: true, GainNode: true, AudioGainNode: true, IIRFilterNode: true, MediaElementAudioSourceNode: true, MediaStreamAudioDestinationNode: true, MediaStreamAudioSourceNode: true, OscillatorNode: true, Oscillator: true, PannerNode: true, AudioPannerNode: true, webkitAudioPannerNode: true, ScriptProcessorNode: true, JavaScriptAudioNode: true, StereoPannerNode: true, WaveShaperNode: true, EventTarget: false, File: true, FileList: true, FileWriter: true, HTMLFormElement: true, Gamepad: true, History: true, HTMLCollection: true, HTMLFormControlsCollection: true, HTMLOptionsCollection: true, HTMLDocument: true, XMLHttpRequest: true, XMLHttpRequestUpload: true, XMLHttpRequestEventTarget: false, ImageData: true, KeyboardEvent: true, Location: true, MediaList: true, MessageEvent: true, MessagePort: true, MIDIInputMap: true, MIDIOutputMap: true, MimeType: true, MimeTypeArray: true, DocumentFragment: true, ShadowRoot: true, DocumentType: true, Node: false, NodeList: true, RadioNodeList: true, Plugin: true, PluginArray: true, ProgressEvent: true, ResourceProgressEvent: true, RTCStatsReport: true, HTMLScriptElement: true, HTMLSelectElement: true, SharedArrayBuffer: true, SourceBuffer: true, SourceBufferList: true, SpeechGrammar: true, SpeechGrammarList: true, SpeechRecognitionResult: true, Storage: true, CSSStyleSheet: true, StyleSheet: true, HTMLTableElement: true, HTMLTableRowElement: true, HTMLTableSectionElement: true, HTMLTemplateElement: true, TextTrack: true, TextTrackCue: true, VTTCue: true, TextTrackCueList: true, TextTrackList: true, TimeRanges: true, Touch: true, TouchList: true, TrackDefaultList: true, CompositionEvent: true, FocusEvent: true, MouseEvent: true, DragEvent: true, PointerEvent: true, TextEvent: true, TouchEvent: true, WheelEvent: true, UIEvent: false, URL: true, VideoTrackList: true, WebSocket: true, Window: true, DOMWindow: true, DedicatedWorkerGlobalScope: true, ServiceWorkerGlobalScope: true, SharedWorkerGlobalScope: true, WorkerGlobalScope: true, Attr: true, CSSRuleList: true, ClientRect: true, DOMRect: true, GamepadList: true, NamedNodeMap: true, MozNamedAttrMap: true, SpeechRecognitionResultList: true, StyleSheetList: true, IDBKeyRange: true, SVGLength: true, SVGLengthList: true, SVGNumber: true, SVGNumberList: true, SVGPointList: true, SVGScriptElement: true, SVGStringList: true, SVGAElement: true, SVGAnimateElement: true, SVGAnimateMotionElement: true, SVGAnimateTransformElement: true, SVGAnimationElement: true, SVGCircleElement: true, SVGClipPathElement: true, SVGDefsElement: true, SVGDescElement: true, SVGDiscardElement: true, SVGEllipseElement: true, SVGFEBlendElement: true, SVGFEColorMatrixElement: true, SVGFEComponentTransferElement: true, SVGFECompositeElement: true, SVGFEConvolveMatrixElement: true, SVGFEDiffuseLightingElement: true, SVGFEDisplacementMapElement: true, SVGFEDistantLightElement: true, SVGFEFloodElement: true, SVGFEFuncAElement: true, SVGFEFuncBElement: true, SVGFEFuncGElement: true, SVGFEFuncRElement: true, SVGFEGaussianBlurElement: true, SVGFEImageElement: true, SVGFEMergeElement: true, SVGFEMergeNodeElement: true, SVGFEMorphologyElement: true, SVGFEOffsetElement: true, SVGFEPointLightElement: true, SVGFESpecularLightingElement: true, SVGFESpotLightElement: true, SVGFETileElement: true, SVGFETurbulenceElement: true, SVGFilterElement: true, SVGForeignObjectElement: true, SVGGElement: true, SVGGeometryElement: true, SVGGraphicsElement: true, SVGImageElement: true, SVGLineElement: true, SVGLinearGradientElement: true, SVGMarkerElement: true, SVGMaskElement: true, SVGMetadataElement: true, SVGPathElement: true, SVGPatternElement: true, SVGPolygonElement: true, SVGPolylineElement: true, SVGRadialGradientElement: true, SVGRectElement: true, SVGSetElement: true, SVGStopElement: true, SVGStyleElement: true, SVGSVGElement: true, SVGSwitchElement: true, SVGSymbolElement: true, SVGTSpanElement: true, SVGTextContentElement: true, SVGTextElement: true, SVGTextPathElement: true, SVGTextPositioningElement: true, SVGTitleElement: true, SVGUseElement: true, SVGViewElement: true, SVGGradientElement: true, SVGComponentTransferFunctionElement: true, SVGFEDropShadowElement: true, SVGMPathElement: true, SVGElement: false, SVGTransform: true, SVGTransformList: true, AudioBuffer: true, AudioParamMap: true, AudioTrackList: true, AudioContext: true, webkitAudioContext: true, BaseAudioContext: false, OfflineAudioContext: true}); A.NativeTypedArray.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; diff --git a/dwds/web/messages.dart b/dwds/web/messages.dart new file mode 100644 index 000000000..97cfad49b --- /dev/null +++ b/dwds/web/messages.dart @@ -0,0 +1,49 @@ +// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +@JS() +library messages; + +import 'dart:convert'; + +import 'package:js/js.dart'; + +class DebugInfo { + final String? origin; + final String? extensionUri; + final String? appId; + final String? instanceId; + final String? entrypointPath; + DebugInfo({ + this.origin, + this.extensionUri, + this.appId, + this.instanceId, + this.entrypointPath, + }); + factory DebugInfo.fromJSON(String json) { + final decoded = jsonDecode(json) as Map; + final origin = decoded['origin'] as String?; + final extensionUri = decoded['extensionUri'] as String?; + final appId = decoded['appId'] as String?; + final instanceId = decoded['instanceId'] as String?; + final entrypointPath = decoded['entrypointPath'] as String?; + return DebugInfo( + origin: origin, + extensionUri: extensionUri, + appId: appId, + instanceId: instanceId, + entrypointPath: entrypointPath, + ); + } + String toJSON() { + return jsonEncode({ + 'origin': origin, + 'extensionUri': extensionUri, + 'appId': appId, + 'instanceId': instanceId, + 'entrypointPath': entrypointPath, + }); + } +} From a468829c088b403f3db48168ffd00f0bc760704f Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 31 Oct 2022 16:17:18 -0700 Subject: [PATCH 02/12] DWDS-side changes --- dwds/debug_extension_mv3/pubspec.yaml | 6 ++ dwds/debug_extension_mv3/web/background.dart | 2 +- dwds/debug_extension_mv3/web/debug_tab.dart | 59 --------------- dwds/debug_extension_mv3/web/iframe.dart | 75 ------------------- dwds/debug_extension_mv3/web/iframe.html | 9 --- .../web/iframe_injector.dart | 72 ------------------ 6 files changed, 7 insertions(+), 216 deletions(-) delete mode 100644 dwds/debug_extension_mv3/web/debug_tab.dart delete mode 100644 dwds/debug_extension_mv3/web/iframe.dart delete mode 100644 dwds/debug_extension_mv3/web/iframe.html delete mode 100644 dwds/debug_extension_mv3/web/iframe_injector.dart diff --git a/dwds/debug_extension_mv3/pubspec.yaml b/dwds/debug_extension_mv3/pubspec.yaml index a1167d138..dc8b9f91a 100644 --- a/dwds/debug_extension_mv3/pubspec.yaml +++ b/dwds/debug_extension_mv3/pubspec.yaml @@ -15,3 +15,9 @@ dev_dependencies: build: ^2.0.0 build_web_compilers: ^3.0.0 build_runner: ^2.0.6 + dwds: ^16.0.0 + +dependency_overrides: + dwds: + path: .. + diff --git a/dwds/debug_extension_mv3/web/background.dart b/dwds/debug_extension_mv3/web/background.dart index f2c5b92f8..81c0bba82 100644 --- a/dwds/debug_extension_mv3/web/background.dart +++ b/dwds/debug_extension_mv3/web/background.dart @@ -23,7 +23,7 @@ void _registerListeners() { // Detect clicks on the Dart Debug Extension icon. chrome.action.onClicked.addListener(allowInterop((_) async { - _keepDebugSessionAlive(); + // _keepDebugSessionAlive(); _createTab('https://www.wikipedia.org/', inNewWindow: true); })); } diff --git a/dwds/debug_extension_mv3/web/debug_tab.dart b/dwds/debug_extension_mv3/web/debug_tab.dart deleted file mode 100644 index 338f0e642..000000000 --- a/dwds/debug_extension_mv3/web/debug_tab.dart +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -@JS() -library debug_tab; - -import 'dart:html'; - -import 'package:js/js.dart'; - -import 'chrome_api.dart'; -import 'messaging.dart'; - -final _channel = BroadcastChannel(debugTabChannelName); - -void main() { - _registerListeners(); -} - -void _registerListeners() { - _channel.addEventListener( - 'message', - allowInterop(_handleChannelMessageEvents), - ); -} - -void _handleChannelMessageEvents(Event event) { - final messageData = - jsEventToMessageData(event, expectedOrigin: chrome.runtime.getURL('')); - if (messageData == null) return; - - interceptMessage( - message: messageData, - expectedType: MessageType.debugInfo, - expectedSender: Script.iframe, - expectedRecipient: Script.debugTab, - messageHandler: _debugInfoMessageHandler, - ); -} - -void _debugInfoMessageHandler(DebugInfo message) { - final tabId = message.tabId; - _startDebugging(tabId); -} - -void _startDebugging(int tabId) { - final debuggee = Debuggee(tabId: tabId); - chrome.debugger.attach(debuggee, '1.3', allowInterop(() async { - chrome.debugger.sendCommand( - debuggee, 'Runtime.enable', EmptyParam(), allowInterop((e) {})); - })); -} - -@JS() -@anonymous -class EmptyParam { - external factory EmptyParam(); -} diff --git a/dwds/debug_extension_mv3/web/iframe.dart b/dwds/debug_extension_mv3/web/iframe.dart deleted file mode 100644 index 9da414451..000000000 --- a/dwds/debug_extension_mv3/web/iframe.dart +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -@JS() -library iframe; - -import 'dart:html'; - -import 'package:js/js.dart'; - -import 'chrome_api.dart'; -import 'messaging.dart'; - -final _channel = BroadcastChannel(debugTabChannelName); - -void main() { - _registerListeners(); - - // Send a message to the injector script that the IFRAME has loaded. - _sendMessageToIframeInjector( - type: MessageType.iframeReady, - encodedBody: IframeReady(isReady: true).toJSON(), - ); -} - -void _registerListeners() { - chrome.runtime.onMessage.addListener(allowInterop(_handleRuntimeMessages)); -} - -void _sendMessageToIframeInjector({ - required MessageType type, - required String encodedBody, -}) { - final message = Message( - to: Script.iframeInjector, - from: Script.iframe, - type: type, - encodedBody: encodedBody, - ); - window.parent?.postMessage(message.toJSON(), '*'); -} - -void _handleRuntimeMessages( - dynamic jsRequest, MessageSender sender, Function sendResponse) { - if (jsRequest is! String) return; - - interceptMessage( - message: jsRequest, - expectedType: MessageType.debugState, - expectedSender: Script.iframeInjector, - expectedRecipient: Script.iframe, - messageHandler: (DebugState message) { - final tabId = sender.tab?.id; - if (tabId == null) return; - - _sendMessageToDebugTab( - type: MessageType.debugInfo, - encodedBody: DebugInfo(tabId: tabId).toJSON(), - ); - }); -} - -void _sendMessageToDebugTab({ - required MessageType type, - required String encodedBody, -}) { - final message = Message( - to: Script.debugTab, - from: Script.iframe, - type: type, - encodedBody: encodedBody, - ); - _channel.postMessage(message.toJSON()); -} diff --git a/dwds/debug_extension_mv3/web/iframe.html b/dwds/debug_extension_mv3/web/iframe.html deleted file mode 100644 index 1b4ba17bc..000000000 --- a/dwds/debug_extension_mv3/web/iframe.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - -

Dart Debug IFRAME

- - - - \ No newline at end of file diff --git a/dwds/debug_extension_mv3/web/iframe_injector.dart b/dwds/debug_extension_mv3/web/iframe_injector.dart deleted file mode 100644 index a83f14520..000000000 --- a/dwds/debug_extension_mv3/web/iframe_injector.dart +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -import 'dart:html'; -import 'dart:js'; - -import 'chrome_api.dart'; -import 'messaging.dart'; - -void main() { - _registerListeners(); - - // Inject the IFRAME into the current tab. - _injectIframe(); -} - -void _registerListeners() { - window.addEventListener( - 'message', - allowInterop(_handleWindowMessageEvents), - ); -} - -void _injectIframe() { - final iframe = document.createElement('iframe'); - final iframeSrc = chrome.runtime.getURL('iframe.html'); - iframe.setAttribute('src', iframeSrc); - document.body?.append(iframe); -} - -void _handleWindowMessageEvents(Event event) { - final messageData = - jsEventToMessageData(event, expectedOrigin: chrome.runtime.getURL('')); - if (messageData == null) return; - - interceptMessage( - message: messageData, - expectedType: MessageType.iframeReady, - expectedSender: Script.iframe, - expectedRecipient: Script.iframeInjector, - messageHandler: _iframeReadyMessageHandler, - ); -} - -void _iframeReadyMessageHandler(IframeReady message) { - if (message.isReady != true) return; - // TODO(elliette): Inject a script to fetch debug info global variables. - - // Send a message back to IFRAME so that it has access to the tab ID. - _sendMessageToIframe( - type: MessageType.debugState, - encodedBody: DebugState(shouldDebug: true).toJSON()); -} - -void _sendMessageToIframe({ - required MessageType type, - required String encodedBody, -}) { - final message = Message( - to: Script.iframe, - from: Script.iframeInjector, - type: type, - encodedBody: encodedBody, - ); - chrome.runtime.sendMessage( - /*id*/ null, - message.toJSON(), - /*options*/ null, - /*callback*/ null, - ); -} From fa15cb16146ff0e4f58538ff382b7437029688d4 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 31 Oct 2022 16:20:54 -0700 Subject: [PATCH 03/12] Committed in wrong directory --- dwds/lib/dart_web_debug_service.dart | 1 + dwds/lib/data/README.md | 11 +- dwds/lib/data/debug_info.dart | 1 + dwds/lib/data/debug_info.g.dart | 91 +++-- dwds/lib/data/serializers.dart | 1 + dwds/lib/data/serializers.g.dart | 1 + dwds/lib/src/handlers/injector.dart | 10 +- dwds/lib/src/injected/client.js | 522 ++++++++++++++++++++------- dwds/web/client.dart | 17 +- 9 files changed, 481 insertions(+), 174 deletions(-) diff --git a/dwds/lib/dart_web_debug_service.dart b/dwds/lib/dart_web_debug_service.dart index b65004169..ce6971798 100644 --- a/dwds/lib/dart_web_debug_service.dart +++ b/dwds/lib/dart_web_debug_service.dart @@ -86,6 +86,7 @@ class Dwds { bool launchDevToolsInNewWindow = true, SdkConfigurationProvider? sdkConfigurationProvider, bool emitDebugEvents = true, + bool isInternalBuild = false, }) async { globalLoadStrategy = loadStrategy; sdkConfigurationProvider ??= DefaultSdkConfigurationProvider(); diff --git a/dwds/lib/data/README.md b/dwds/lib/data/README.md index 7be95395a..0f5f3d1b6 100644 --- a/dwds/lib/data/README.md +++ b/dwds/lib/data/README.md @@ -1,3 +1,12 @@ # How to generate data files: -Run: `dart run build_runner build` from DWDS root. \ No newline at end of file +## Creating a new data file: +1. Create a new file for your data type in the `/data` directory with the `.dart` extension +2. Create an abstract class for your data type (see existing files for examples) +3. Add the new data type to `/data/serializers.dart` +4 Run: `dart run build_runner build` from DWDS root (this will generate the `.g.dart` file) + +## To update an existing data file: +1. Make your changes +2. Run: `dart run build_runner clean` from DWDS root +3. Run: `dart run build_runner build` from DWDS root diff --git a/dwds/lib/data/debug_info.dart b/dwds/lib/data/debug_info.dart index 1b6a787c5..3be8d827b 100644 --- a/dwds/lib/data/debug_info.dart +++ b/dwds/lib/data/debug_info.dart @@ -22,4 +22,5 @@ abstract class DebugInfo implements Built { String? get appUrl; String? get dwdsVersion; String? get extensionUrl; + bool? get isInternalBuild; } diff --git a/dwds/lib/data/debug_info.g.dart b/dwds/lib/data/debug_info.g.dart index 0875b1ead..6fb126599 100644 --- a/dwds/lib/data/debug_info.g.dart +++ b/dwds/lib/data/debug_info.g.dart @@ -47,10 +47,10 @@ class _$DebugInfoSerializer implements StructuredSerializer { ..add(serializers.serialize(value, specifiedType: const FullType(String))); } - value = object.appUri; + value = object.appUrl; if (value != null) { result - ..add('appUri') + ..add('appUrl') ..add(serializers.serialize(value, specifiedType: const FullType(String))); } @@ -61,13 +61,20 @@ class _$DebugInfoSerializer implements StructuredSerializer { ..add(serializers.serialize(value, specifiedType: const FullType(String))); } - value = object.extensionUri; + value = object.extensionUrl; if (value != null) { result - ..add('extensionUri') + ..add('extensionUrl') ..add(serializers.serialize(value, specifiedType: const FullType(String))); } + value = object.isInternalBuild; + if (value != null) { + result + ..add('isInternalBuild') + ..add( + serializers.serialize(value, specifiedType: const FullType(bool))); + } return result; } @@ -98,18 +105,22 @@ class _$DebugInfoSerializer implements StructuredSerializer { result.appOrigin = serializers.deserialize(value, specifiedType: const FullType(String)) as String?; break; - case 'appUri': - result.appUri = serializers.deserialize(value, + case 'appUrl': + result.appUrl = serializers.deserialize(value, specifiedType: const FullType(String)) as String?; break; case 'dwdsVersion': result.dwdsVersion = serializers.deserialize(value, specifiedType: const FullType(String)) as String?; break; - case 'extensionUri': - result.extensionUri = serializers.deserialize(value, + case 'extensionUrl': + result.extensionUrl = serializers.deserialize(value, specifiedType: const FullType(String)) as String?; break; + case 'isInternalBuild': + result.isInternalBuild = serializers.deserialize(value, + specifiedType: const FullType(bool)) as bool?; + break; } } @@ -127,11 +138,13 @@ class _$DebugInfo extends DebugInfo { @override final String? appOrigin; @override - final String? appUri; + final String? appUrl; @override final String? dwdsVersion; @override - final String? extensionUri; + final String? extensionUrl; + @override + final bool? isInternalBuild; factory _$DebugInfo([void Function(DebugInfoBuilder)? updates]) => (new DebugInfoBuilder()..update(updates))._build(); @@ -141,9 +154,10 @@ class _$DebugInfo extends DebugInfo { this.appId, this.appInstanceId, this.appOrigin, - this.appUri, + this.appUrl, this.dwdsVersion, - this.extensionUri}) + this.extensionUrl, + this.isInternalBuild}) : super._(); @override @@ -161,9 +175,10 @@ class _$DebugInfo extends DebugInfo { appId == other.appId && appInstanceId == other.appInstanceId && appOrigin == other.appOrigin && - appUri == other.appUri && + appUrl == other.appUrl && dwdsVersion == other.dwdsVersion && - extensionUri == other.extensionUri; + extensionUrl == other.extensionUrl && + isInternalBuild == other.isInternalBuild; } @override @@ -172,12 +187,16 @@ class _$DebugInfo extends DebugInfo { $jc( $jc( $jc( - $jc($jc($jc(0, appEntrypointPath.hashCode), appId.hashCode), - appInstanceId.hashCode), - appOrigin.hashCode), - appUri.hashCode), - dwdsVersion.hashCode), - extensionUri.hashCode)); + $jc( + $jc( + $jc($jc(0, appEntrypointPath.hashCode), + appId.hashCode), + appInstanceId.hashCode), + appOrigin.hashCode), + appUrl.hashCode), + dwdsVersion.hashCode), + extensionUrl.hashCode), + isInternalBuild.hashCode)); } @override @@ -187,9 +206,10 @@ class _$DebugInfo extends DebugInfo { ..add('appId', appId) ..add('appInstanceId', appInstanceId) ..add('appOrigin', appOrigin) - ..add('appUri', appUri) + ..add('appUrl', appUrl) ..add('dwdsVersion', dwdsVersion) - ..add('extensionUri', extensionUri)) + ..add('extensionUrl', extensionUrl) + ..add('isInternalBuild', isInternalBuild)) .toString(); } } @@ -215,17 +235,22 @@ class DebugInfoBuilder implements Builder { String? get appOrigin => _$this._appOrigin; set appOrigin(String? appOrigin) => _$this._appOrigin = appOrigin; - String? _appUri; - String? get appUri => _$this._appUri; - set appUri(String? appUri) => _$this._appUri = appUri; + String? _appUrl; + String? get appUrl => _$this._appUrl; + set appUrl(String? appUrl) => _$this._appUrl = appUrl; String? _dwdsVersion; String? get dwdsVersion => _$this._dwdsVersion; set dwdsVersion(String? dwdsVersion) => _$this._dwdsVersion = dwdsVersion; - String? _extensionUri; - String? get extensionUri => _$this._extensionUri; - set extensionUri(String? extensionUri) => _$this._extensionUri = extensionUri; + String? _extensionUrl; + String? get extensionUrl => _$this._extensionUrl; + set extensionUrl(String? extensionUrl) => _$this._extensionUrl = extensionUrl; + + bool? _isInternalBuild; + bool? get isInternalBuild => _$this._isInternalBuild; + set isInternalBuild(bool? isInternalBuild) => + _$this._isInternalBuild = isInternalBuild; DebugInfoBuilder(); @@ -236,9 +261,10 @@ class DebugInfoBuilder implements Builder { _appId = $v.appId; _appInstanceId = $v.appInstanceId; _appOrigin = $v.appOrigin; - _appUri = $v.appUri; + _appUrl = $v.appUrl; _dwdsVersion = $v.dwdsVersion; - _extensionUri = $v.extensionUri; + _extensionUrl = $v.extensionUrl; + _isInternalBuild = $v.isInternalBuild; _$v = null; } return this; @@ -265,9 +291,10 @@ class DebugInfoBuilder implements Builder { appId: appId, appInstanceId: appInstanceId, appOrigin: appOrigin, - appUri: appUri, + appUrl: appUrl, dwdsVersion: dwdsVersion, - extensionUri: extensionUri); + extensionUrl: extensionUrl, + isInternalBuild: isInternalBuild); replace(_$result); return _$result; } diff --git a/dwds/lib/data/serializers.dart b/dwds/lib/data/serializers.dart index ffeb31edc..25f4e2af2 100644 --- a/dwds/lib/data/serializers.dart +++ b/dwds/lib/data/serializers.dart @@ -8,6 +8,7 @@ import 'package:built_value/serializer.dart'; import 'build_result.dart'; import 'connect_request.dart'; import 'debug_event.dart'; +import 'debug_info.dart'; import 'devtools_request.dart'; import 'error_response.dart'; import 'extension_request.dart'; diff --git a/dwds/lib/data/serializers.g.dart b/dwds/lib/data/serializers.g.dart index da06e8a67..279911897 100644 --- a/dwds/lib/data/serializers.g.dart +++ b/dwds/lib/data/serializers.g.dart @@ -13,6 +13,7 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(BuildStatus.serializer) ..add(ConnectRequest.serializer) ..add(DebugEvent.serializer) + ..add(DebugInfo.serializer) ..add(DevToolsRequest.serializer) ..add(DevToolsResponse.serializer) ..add(ErrorResponse.serializer) diff --git a/dwds/lib/src/handlers/injector.dart b/dwds/lib/src/handlers/injector.dart index 9ad89cbac..71c1824c2 100644 --- a/dwds/lib/src/handlers/injector.dart +++ b/dwds/lib/src/handlers/injector.dart @@ -36,6 +36,7 @@ class DwdsInjector { final bool _enableDevtoolsLaunch; final bool _useSseForInjectedClient; final bool _emitDebugEvents; + final bool _isInternalBuild; DwdsInjector( this._loadStrategy, { @@ -43,10 +44,12 @@ class DwdsInjector { bool enableDevtoolsLaunch = false, bool useSseForInjectedClient = true, bool emitDebugEvents = true, + bool isInternalBuild = false, }) : _extensionUri = extensionUri, _enableDevtoolsLaunch = enableDevtoolsLaunch, _useSseForInjectedClient = useSseForInjectedClient, - _emitDebugEvents = emitDebugEvents; + _emitDebugEvents = emitDebugEvents, + _isInternalBuild = isInternalBuild; /// Returns the embedded dev handler paths. /// @@ -111,6 +114,7 @@ class DwdsInjector { _loadStrategy, _enableDevtoolsLaunch, _emitDebugEvents, + _isInternalBuild, ); body += await _loadStrategy.bootstrapFor(entrypoint); _logger.info('Injected debugging metadata for ' @@ -144,6 +148,7 @@ String _injectClientAndHoistMain( LoadStrategy loadStrategy, bool enableDevtoolsLaunch, bool emitDebugEvents, + bool isInternalBuild, ) { final bodyLines = body.split('\n'); final extensionIndex = @@ -164,6 +169,7 @@ String _injectClientAndHoistMain( loadStrategy, enableDevtoolsLaunch, emitDebugEvents, + isInternalBuild ); result += ''' // Injected by dwds for debugging support. @@ -198,6 +204,7 @@ String _injectedClientSnippet( LoadStrategy loadStrategy, bool enableDevtoolsLaunch, bool emitDebugEvents, + bool isInternalBuild, ) { var injectedBody = 'window.\$dartAppId = "$appId";\n' 'window.\$dartReloadConfiguration = "${loadStrategy.reloadConfiguration}";\n' @@ -208,6 +215,7 @@ String _injectedClientSnippet( 'window.\$dwdsEnableDevtoolsLaunch = $enableDevtoolsLaunch;\n' 'window.\$dartEntrypointPath = "$entrypointPath";\n' 'window.\$dartEmitDebugEvents = $emitDebugEvents;\n' + 'window.\$isInternalBuild = $isInternalBuild;\n' '${loadStrategy.loadClientSnippet(_clientScript)}'; if (extensionUri != null) { injectedBody += 'window.\$dartExtensionUri = "$extensionUri";\n'; diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js index b728f6589..56edcefc3 100644 --- a/dwds/lib/src/injected/client.js +++ b/dwds/lib/src/injected/client.js @@ -684,7 +684,7 @@ this.$ti = t1; }, Symbol: function Symbol(t0) { - this.__internal$_name = t0; + this._name = t0; }, __CastListBase__CastIterableBase_ListMixin: function __CastListBase__CastIterableBase_ListMixin() { }, @@ -1673,7 +1673,7 @@ ConstantStringMap: function ConstantStringMap(t0, t1, t2, t3) { var _ = this; _._length = t0; - _._jsObject = t1; + _.__js_helper$_jsObject = t1; _.__js_helper$_keys = t2; _.$ti = t3; }, @@ -1835,7 +1835,7 @@ return t1.__late_helper$_value = t1; }, _Cell: function _Cell(t0) { - this._name = t0; + this.__late_helper$_name = t0; this.__late_helper$_value = null; }, _ensureNativeList(list) { @@ -6830,12 +6830,12 @@ this._jsWeakMap = t0; this.$ti = t1; }, - CustomEvent_CustomEvent(type) { - var e, exception, + CustomEvent_CustomEvent(type, detail) { + var e, t1, exception, canBubble = true, - cancelable = true, - detail = null, - t1 = document.createEvent("CustomEvent"); + cancelable = true; + detail = detail; + t1 = document.createEvent("CustomEvent"); t1.toString; e = type$.CustomEvent._as(t1); e._dartDetail = detail; @@ -7500,7 +7500,7 @@ if (o == null || typeof o == "string" || typeof o == "number" || A._isBool(o)) return o; if (o instanceof A.JsObject) - return o._js$_jsObject; + return o._jsObject; if (A.isBrowserObject(o)) return o; if (type$.TypedData._is(o)) @@ -7587,13 +7587,13 @@ _wrapToDart_closure1: function _wrapToDart_closure1() { }, JsObject: function JsObject(t0) { - this._js$_jsObject = t0; + this._jsObject = t0; }, JsFunction: function JsFunction(t0) { - this._js$_jsObject = t0; + this._jsObject = t0; }, JsArray: function JsArray(t0, t1) { - this._js$_jsObject = t0; + this._jsObject = t0; this.$ti = t1; }, _JsArray_JsObject_ListMixin: function _JsArray_JsObject_ListMixin() { @@ -7776,17 +7776,17 @@ this.$ti = t0; }, BuiltListMultimap_BuiltListMultimap($K, $V) { - var t1 = A._BuiltListMultimap$copy(B.Map_empty.get$keys(B.Map_empty), new A.BuiltListMultimap_BuiltListMultimap_closure(B.Map_empty), $K, $V); + var t1 = A._BuiltListMultimap$copy(B.Map_empty0.get$keys(B.Map_empty0), new A.BuiltListMultimap_BuiltListMultimap_closure(B.Map_empty0), $K, $V); return t1; }, _BuiltListMultimap$copy(keys, lookup, $K, $V) { - var t1 = new A._BuiltListMultimap(A.LinkedHashMap_LinkedHashMap$_empty($K, $V._eval$1("BuiltList<0>")), A.BuiltList_BuiltList$from(B.List_empty0, $V), $K._eval$1("@<0>")._bind$1($V)._eval$1("_BuiltListMultimap<1,2>")); + var t1 = new A._BuiltListMultimap(A.LinkedHashMap_LinkedHashMap$_empty($K, $V._eval$1("BuiltList<0>")), A.BuiltList_BuiltList$from(B.List_empty, $V), $K._eval$1("@<0>")._bind$1($V)._eval$1("_BuiltListMultimap<1,2>")); t1._BuiltListMultimap$copy$2(keys, lookup, $K, $V); return t1; }, ListMultimapBuilder_ListMultimapBuilder($K, $V) { var t1 = new A.ListMultimapBuilder($K._eval$1("@<0>")._bind$1($V)._eval$1("ListMultimapBuilder<1,2>")); - t1.replace$1(0, B.Map_empty); + t1.replace$1(0, B.Map_empty0); return t1; }, BuiltListMultimap: function BuiltListMultimap() { @@ -7816,12 +7816,12 @@ }, BuiltMap_BuiltMap($K, $V) { var t1 = new A._BuiltMap(null, A.LinkedHashMap_LinkedHashMap$_empty($K, $V), $K._eval$1("@<0>")._bind$1($V)._eval$1("_BuiltMap<1,2>")); - t1._BuiltMap$copyAndCheckTypes$2(B.Map_empty.get$keys(B.Map_empty), new A.BuiltMap_BuiltMap_closure(B.Map_empty), $K, $V); + t1._BuiltMap$copyAndCheckTypes$2(B.Map_empty0.get$keys(B.Map_empty0), new A.BuiltMap_BuiltMap_closure(B.Map_empty0), $K, $V); return t1; }, MapBuilder_MapBuilder($K, $V) { var t1 = new A.MapBuilder(null, $, null, $K._eval$1("@<0>")._bind$1($V)._eval$1("MapBuilder<1,2>")); - t1.replace$1(0, B.Map_empty); + t1.replace$1(0, B.Map_empty0); return t1; }, BuiltMap: function BuiltMap() { @@ -7857,7 +7857,7 @@ }, SetBuilder_SetBuilder($E) { var t1 = new A.SetBuilder(null, $, null, $E._eval$1("SetBuilder<0>")); - t1.replace$1(0, B.List_empty0); + t1.replace$1(0, B.List_empty); return t1; }, BuiltSet: function BuiltSet() { @@ -7881,7 +7881,7 @@ }, SetMultimapBuilder_SetMultimapBuilder($K, $V) { var t1 = new A.SetMultimapBuilder($K._eval$1("@<0>")._bind$1($V)._eval$1("SetMultimapBuilder<1,2>")); - t1.replace$1(0, B.Map_empty); + t1.replace$1(0, B.Map_empty0); return t1; }, BuiltSetMultimap: function BuiltSetMultimap() { @@ -7977,14 +7977,14 @@ var t1 = type$.Type, t2 = type$.Serializer_dynamic, t3 = type$.String; - t2 = new A.BuiltJsonSerializersBuilder(A.MapBuilder_MapBuilder(t1, t2), A.MapBuilder_MapBuilder(t3, t2), A.MapBuilder_MapBuilder(t3, t2), A.MapBuilder_MapBuilder(type$.FullType, type$.Function), A.ListBuilder_ListBuilder(B.List_empty0, type$.SerializerPlugin)); + t2 = new A.BuiltJsonSerializersBuilder(A.MapBuilder_MapBuilder(t1, t2), A.MapBuilder_MapBuilder(t3, t2), A.MapBuilder_MapBuilder(t3, t2), A.MapBuilder_MapBuilder(type$.FullType, type$.Function), A.ListBuilder_ListBuilder(B.List_empty, type$.SerializerPlugin)); t2.add$1(0, new A.BigIntSerializer(A.BuiltList_BuiltList$from([B.Type_BigInt_8OV, A.getRuntimeType($.$get$_BigIntImpl_zero())], t1))); t2.add$1(0, new A.BoolSerializer(A.BuiltList_BuiltList$from([B.Type_bool_lhE], t1))); t3 = type$.Object; - t2.add$1(0, new A.BuiltListSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltList_iTR, A.getRuntimeType(A.BuiltList_BuiltList$from(B.List_empty0, t3))], t1))); + t2.add$1(0, new A.BuiltListSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltList_iTR, A.getRuntimeType(A.BuiltList_BuiltList$from(B.List_empty, t3))], t1))); t2.add$1(0, new A.BuiltListMultimapSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltListMultimap_2Mt, A.getRuntimeType(A.BuiltListMultimap_BuiltListMultimap(t3, t3))], t1))); t2.add$1(0, new A.BuiltMapSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltMap_qd4, A.getRuntimeType(A.BuiltMap_BuiltMap(t3, t3))], t1))); - t2.add$1(0, new A.BuiltSetSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltSet_fcN, A.getRuntimeType(A.BuiltSet_BuiltSet$from(B.List_empty0, t3))], t1))); + t2.add$1(0, new A.BuiltSetSerializer(A.BuiltList_BuiltList$from([B.Type_BuiltSet_fcN, A.getRuntimeType(A.BuiltSet_BuiltSet$from(B.List_empty, t3))], t1))); t2.add$1(0, new A.BuiltSetMultimapSerializer(A.BuiltSet_BuiltSet$from([B.Type_BuiltSetMultimap_9Fi], t1))); t2.add$1(0, new A.DateTimeSerializer(A.BuiltList_BuiltList$from([B.Type_DateTime_8AS], t1))); t2.add$1(0, new A.DoubleSerializer(A.BuiltList_BuiltList$from([B.Type_double_K1J], t1))); @@ -8231,7 +8231,7 @@ }, ConnectRequestBuilder: function ConnectRequestBuilder() { var _ = this; - _._entrypointPath = _._instanceId = _._appId = _._$v = null; + _._entrypointPath = _._instanceId = _._connect_request$_appId = _._connect_request$_$v = null; }, DebugEvent: function DebugEvent() { }, @@ -8256,6 +8256,25 @@ BatchedDebugEventsBuilder: function BatchedDebugEventsBuilder() { this._events = this._debug_event$_$v = null; }, + DebugInfo: function DebugInfo() { + }, + _$DebugInfoSerializer: function _$DebugInfoSerializer() { + }, + _$DebugInfo: function _$DebugInfo(t0, t1, t2, t3, t4, t5, t6, t7) { + var _ = this; + _.appEntrypointPath = t0; + _.appId = t1; + _.appInstanceId = t2; + _.appOrigin = t3; + _.appUrl = t4; + _.dwdsVersion = t5; + _.extensionUrl = t6; + _.isInternalBuild = t7; + }, + DebugInfoBuilder: function DebugInfoBuilder() { + var _ = this; + _._isInternalBuild = _._extensionUrl = _._dwdsVersion = _._appUrl = _._appOrigin = _._appInstanceId = _._appId = _._appEntrypointPath = _._$v = null; + }, DevToolsRequest: function DevToolsRequest() { }, DevToolsResponse: function DevToolsResponse() { @@ -8783,6 +8802,9 @@ }, main__closure7: function main__closure7() { }, + main__closure8: function main__closure8(t0) { + this.windowContext = t0; + }, main_closure0: function main_closure0() { }, LegacyRestarter: function LegacyRestarter() { @@ -10519,17 +10541,17 @@ var hash = this._hashCode; if (hash != null) return hash; - hash = 664597 * J.get$hashCode$(this.__internal$_name) & 536870911; + hash = 664597 * J.get$hashCode$(this._name) & 536870911; this._hashCode = hash; return hash; }, toString$0(_) { - return 'Symbol("' + A.S(this.__internal$_name) + '")'; + return 'Symbol("' + A.S(this._name) + '")'; }, $eq(_, other) { if (other == null) return false; - return other instanceof A.Symbol && this.__internal$_name == other.__internal$_name; + return other instanceof A.Symbol && this._name == other._name; }, $isSymbol0: 1 }; @@ -10581,19 +10603,19 @@ return false; if ("__proto__" === key) return false; - return this._jsObject.hasOwnProperty(key); + return this.__js_helper$_jsObject.hasOwnProperty(key); }, $index(_, key) { if (!this.containsKey$1(0, key)) return null; - return this._jsObject[A._asString(key)]; + return this.__js_helper$_jsObject[A._asString(key)]; }, forEach$1(_, f) { var keys, t2, t3, i, t4, t1 = this.$ti; t1._eval$1("~(1,2)")._as(f); keys = this.__js_helper$_keys; - for (t2 = keys.length, t3 = this._jsObject, t1 = t1._rest[1], i = 0; i < t2; ++i) { + for (t2 = keys.length, t3 = this.__js_helper$_jsObject, t1 = t1._rest[1], i = 0; i < t2; ++i) { t4 = A._asString(keys[i]); f.call$2(t4, t1._as(t3[t4])); } @@ -10619,11 +10641,11 @@ get$positionalArguments() { var t1, argumentCount, list, index, _this = this; if (_this.__js_helper$_kind === 1) - return B.List_empty0; + return B.List_empty; t1 = _this._arguments; argumentCount = t1.length - _this._namedArgumentNames.length - _this._typeArgumentCount; if (argumentCount === 0) - return B.List_empty0; + return B.List_empty; list = []; for (index = 0; index < argumentCount; ++index) { if (!(index < t1.length)) @@ -10635,13 +10657,13 @@ get$namedArguments() { var t1, namedArgumentCount, t2, namedArgumentsStartIndex, map, i, t3, t4, _this = this; if (_this.__js_helper$_kind !== 0) - return B.Map_empty0; + return B.Map_empty; t1 = _this._namedArgumentNames; namedArgumentCount = t1.length; t2 = _this._arguments; namedArgumentsStartIndex = t2.length - namedArgumentCount - _this._typeArgumentCount; if (namedArgumentCount === 0) - return B.Map_empty0; + return B.Map_empty; map = new A.JsLinkedHashMap(type$.JsLinkedHashMap_Symbol_dynamic); for (i = 0; i < namedArgumentCount; ++i) { if (!(i < t1.length)) @@ -11259,7 +11281,7 @@ readLocal$1$0() { var t1 = this.__late_helper$_value; if (t1 === this) - A.throwExpression(new A.LateError("Local '" + this._name + "' has not been initialized.")); + A.throwExpression(new A.LateError("Local '" + this.__late_helper$_name + "' has not been initialized.")); return t1; }, readLocal$0() { @@ -11268,7 +11290,7 @@ _readField$0() { var t1 = this.__late_helper$_value; if (t1 === this) - throw A.wrapException(A.LateError$fieldNI(this._name)); + throw A.wrapException(A.LateError$fieldNI(this.__late_helper$_name)); return t1; } }; @@ -11493,7 +11515,7 @@ t2 = this.span; t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); }, - $signature: 70 + $signature: 72 }; A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = { call$0() { @@ -11600,13 +11622,13 @@ call$2(error, stackTrace) { this.bodyFunction.call$2(1, new A.ExceptionAndStackTrace(error, type$.StackTrace._as(stackTrace))); }, - $signature: 72 + $signature: 83 }; A._wrapJsFunctionForAsync_closure.prototype = { call$2(errorCode, result) { this.$protected(A._asInt(errorCode), result); }, - $signature: 44 + $signature: 53 }; A.AsyncError.prototype = { toString$0(_) { @@ -12020,7 +12042,7 @@ call$1(_) { return this.originalSource; }, - $signature: 99 + $signature: 50 }; A._Future__propagateToListeners_handleValueCallback.prototype = { call$0() { @@ -13373,7 +13395,7 @@ t2._processUncaughtError$3(zone, type$.Object._as(e), t1._as(s)); } }, - $signature: 64 + $signature: 71 }; A._HashMap.prototype = { get$length(_) { @@ -15422,7 +15444,7 @@ }; A._symbolMapToStringMap_closure.prototype = { call$2(key, value) { - this.result.$indexSet(0, type$.Symbol._as(key).__internal$_name, value); + this.result.$indexSet(0, type$.Symbol._as(key)._name, value); }, $signature: 19 }; @@ -15433,7 +15455,7 @@ t1 = this.sb; t2 = this._box_0; t3 = t1._contents += t2.comma; - t3 += key.__internal$_name; + t3 += key._name; t1._contents = t3; t1._contents = t3 + ": "; t1._contents += A.Error_safeToString(value); @@ -15931,7 +15953,7 @@ _this._namedArguments.forEach$1(0, new A.NoSuchMethodError_toString_closure(_box_0, sb)); receiverText = A.Error_safeToString(_this._core$_receiver); actualParameters = sb.toString$0(0); - return "NoSuchMethodError: method not found: '" + _this._core$_memberName.__internal$_name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]"; + return "NoSuchMethodError: method not found: '" + _this._core$_memberName._name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]"; } }; A.UnsupportedError.prototype = { @@ -16202,13 +16224,13 @@ call$2(msg, position) { throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, this.host, position)); }, - $signature: 82 + $signature: 85 }; A.Uri_parseIPv6Address_error.prototype = { call$2(msg, position) { throw A.wrapException(A.FormatException$("Illegal IPv6 address, " + msg, this.host, position)); }, - $signature: 84 + $signature: 45 }; A.Uri_parseIPv6Address_parseHex.prototype = { call$2(start, end) { @@ -16428,7 +16450,7 @@ B.NativeUint8List_methods.fillRange$3(t1, 0, 96, defaultTransition); return t1; }, - $signature: 53 + $signature: 60 }; A._createTables_setChars.prototype = { call$3(target, chars, transition) { @@ -16941,7 +16963,7 @@ call$1(e) { return type$.Element._is(type$.Node._as(e)); }, - $signature: 63 + $signature: 64 }; A.Event.prototype = {$isEvent: 1}; A.EventSource.prototype = {$isEventSource: 1}; @@ -17088,12 +17110,27 @@ else t3.completeError$1(e); }, - $signature: 83 + $signature: 65 }; A.HttpRequestEventTarget.prototype = {}; A.ImageData.prototype = {$isImageData: 1}; A.KeyboardEvent.prototype = {$isKeyboardEvent: 1}; A.Location.prototype = { + get$origin(receiver) { + var t2, + t1 = "origin" in receiver; + t1.toString; + if (t1) { + t1 = receiver.origin; + t1.toString; + return t1; + } + t1 = receiver.protocol; + t1.toString; + t2 = receiver.host; + t2.toString; + return t1 + "//" + t2; + }, toString$0(receiver) { var t1 = String(receiver); t1.toString; @@ -17591,7 +17628,7 @@ call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, - $signature: 25 + $signature: 17 }; A.StyleSheet.prototype = {$isStyleSheet: 1}; A.TableElement.prototype = { @@ -18258,13 +18295,13 @@ call$1(v) { return type$.NodeValidator._as(v).allowsElement$1(this.element); }, - $signature: 27 + $signature: 26 }; A.NodeValidatorBuilder_allowsAttribute_closure.prototype = { call$1(v) { return type$.NodeValidator._as(v).allowsAttribute$3(this.element, this.attributeName, this.value); }, - $signature: 27 + $signature: 26 }; A._SimpleNodeValidator.prototype = { _SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttributes(uriPolicy, allowedAttributes, allowedElements, allowedUriAttributes) { @@ -18274,7 +18311,7 @@ extraUriAttributes = allowedAttributes.where$1(0, new A._SimpleNodeValidator_closure0()); this.allowedAttributes.addAll$1(0, legalAttributes); t1 = this.allowedUriAttributes; - t1.addAll$1(0, B.List_empty); + t1.addAll$1(0, B.List_empty0); t1.addAll$1(0, extraUriAttributes); }, allowsElement$1(element) { @@ -18311,13 +18348,13 @@ call$1(x) { return !B.JSArray_methods.contains$1(B.List_yrN, A._asString(x)); }, - $signature: 28 + $signature: 27 }; A._SimpleNodeValidator_closure0.prototype = { call$1(x) { return B.JSArray_methods.contains$1(B.List_yrN, A._asString(x)); }, - $signature: 28 + $signature: 27 }; A._TemplatingNodeValidator.prototype = { allowsAttribute$3(element, attributeName, value) { @@ -18895,28 +18932,28 @@ call$1(o) { return new A.JsObject(o == null ? type$.Object._as(o) : o); }, - $signature: 37 + $signature: 44 }; A.JsObject.prototype = { $index(_, property) { if (typeof property != "string" && typeof property != "number") throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); - return A._convertToDart(this._js$_jsObject[property]); + return A._convertToDart(this._jsObject[property]); }, $indexSet(_, property, value) { if (typeof property != "string" && typeof property != "number") throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); - this._js$_jsObject[property] = A._convertToJS(value); + this._jsObject[property] = A._convertToJS(value); }, $eq(_, other) { if (other == null) return false; - return other instanceof A.JsObject && this._js$_jsObject === other._js$_jsObject; + return other instanceof A.JsObject && this._jsObject === other._jsObject; }, toString$0(_) { var t1, exception; try { - t1 = String(this._js$_jsObject); + t1 = String(this._jsObject); return t1; } catch (exception) { t1 = this.super$Object$toString(0); @@ -18925,7 +18962,7 @@ }, callMethod$2(method, args) { var t2, - t1 = this._js$_jsObject; + t1 = this._jsObject; if (args == null) t2 = null; else { @@ -18959,7 +18996,7 @@ this.super$_JsArray_JsObject_ListMixin$$indexSet(0, index, value); }, get$length(_) { - var len = this._js$_jsObject.length; + var len = this._jsObject.length; if (typeof len === "number" && len >>> 0 === len) return len; throw A.wrapException(A.StateError$("Bad JsArray length")); @@ -19573,7 +19610,7 @@ call$2(h, i) { return A._combine(A._asInt(h), J.get$hashCode$(i)); }, - $signature: 45 + $signature: 37 }; A.BuiltList.prototype = { toBuilder$0() { @@ -19860,7 +19897,7 @@ t1 === $ && A.throwLateFieldNI(_s9_); t2 = _this.$ti; t3 = t2._rest[1]; - _this.set$_list_multimap$_builtMapOwner(new A._BuiltListMultimap(t1, A.BuiltList_BuiltList$from(B.List_empty0, t3), t2._eval$1("@<1>")._bind$1(t3)._eval$1("_BuiltListMultimap<1,2>"))); + _this.set$_list_multimap$_builtMapOwner(new A._BuiltListMultimap(t1, A.BuiltList_BuiltList$from(B.List_empty, t3), t2._eval$1("@<1>")._bind$1(t3)._eval$1("_BuiltListMultimap<1,2>"))); } t1 = _this._list_multimap$_builtMapOwner; t1.toString; @@ -19880,7 +19917,7 @@ t2 = _this.__ListMultimapBuilder__builtMap_A; t2 === $ && A.throwLateFieldNI("_builtMap"); builtValues = t2.$index(0, key); - result = builtValues == null ? A.ListBuilder_ListBuilder(B.List_empty0, t1._rest[1]) : A.ListBuilder_ListBuilder(builtValues, builtValues.$ti._precomputed1); + result = builtValues == null ? A.ListBuilder_ListBuilder(B.List_empty, t1._rest[1]) : A.ListBuilder_ListBuilder(builtValues, builtValues.$ti._precomputed1); _this.__ListMultimapBuilder__builderMap_A.$indexSet(0, key, result); } return result; @@ -20454,7 +20491,7 @@ t1 === $ && A.throwLateFieldNI(_s9_); t2 = _this.$ti; t3 = t2._rest[1]; - _this.set$_builtMapOwner(new A._BuiltSetMultimap(t1, A.BuiltSet_BuiltSet$from(B.List_empty0, t3), t2._eval$1("@<1>")._bind$1(t3)._eval$1("_BuiltSetMultimap<1,2>"))); + _this.set$_builtMapOwner(new A._BuiltSetMultimap(t1, A.BuiltSet_BuiltSet$from(B.List_empty, t3), t2._eval$1("@<1>")._bind$1(t3)._eval$1("_BuiltSetMultimap<1,2>"))); } t1 = _this._builtMapOwner; t1.toString; @@ -20706,7 +20743,7 @@ }; A.Serializers_Serializers_closure.prototype = { call$0() { - return A.ListBuilder_ListBuilder(B.List_empty0, type$.Object); + return A.ListBuilder_ListBuilder(B.List_empty, type$.Object); }, $signature: 47 }; @@ -20728,7 +20765,7 @@ call$0() { return A.SetBuilder_SetBuilder(type$.Object); }, - $signature: 50 + $signature: 100 }; A.Serializers_Serializers_closure3.prototype = { call$0() { @@ -21157,7 +21194,7 @@ call$1(value) { return this.serializers.deserialize$2$specifiedType(value, this.valueType); }, - $signature: 30 + $signature: 29 }; A.BuiltListSerializer.prototype = { serialize$3$specifiedType(serializers, builtList, specifiedType) { @@ -21195,7 +21232,7 @@ return A.ioore(t1, 0); elementType = t1[0]; } - result = isUnderspecified ? A.ListBuilder_ListBuilder(B.List_empty0, type$.Object) : type$.ListBuilder_dynamic._as(serializers.newBuilder$1(specifiedType)); + result = isUnderspecified ? A.ListBuilder_ListBuilder(B.List_empty, type$.Object) : type$.ListBuilder_dynamic._as(serializers.newBuilder$1(specifiedType)); result.replace$1(0, J.map$1$1$ax(serialized, new A.BuiltListSerializer_deserialize_closure(serializers, elementType), type$.dynamic)); return result.build$0(); }, @@ -22191,19 +22228,19 @@ t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); t1.toString; A._asString(t1); - result.get$_$this()._appId = t1; + result.get$_connect_request$_$this()._connect_request$_appId = t1; break; case "instanceId": t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); t1.toString; A._asString(t1); - result.get$_$this()._instanceId = t1; + result.get$_connect_request$_$this()._instanceId = t1; break; case "entrypointPath": t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); t1.toString; A._asString(t1); - result.get$_$this()._entrypointPath = t1; + result.get$_connect_request$_$this()._entrypointPath = t1; break; } } @@ -22243,14 +22280,14 @@ } }; A.ConnectRequestBuilder.prototype = { - get$_$this() { + get$_connect_request$_$this() { var _this = this, - $$v = _this._$v; + $$v = _this._connect_request$_$v; if ($$v != null) { - _this._appId = $$v.appId; + _this._connect_request$_appId = $$v.appId; _this._instanceId = $$v.instanceId; _this._entrypointPath = $$v.entrypointPath; - _this._$v = null; + _this._connect_request$_$v = null; } return _this; }, @@ -22259,19 +22296,19 @@ _s14_ = "ConnectRequest", _s10_ = "instanceId", _s14_0 = "entrypointPath", - _$result = _this._$v; + _$result = _this._connect_request$_$v; if (_$result == null) { t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_$this()._appId, _s14_, "appId", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_$this()._instanceId, _s14_, _s10_, t1); - t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_$this()._entrypointPath, _s14_, _s14_0, t1); + t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._connect_request$_appId, _s14_, "appId", t1); + t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._instanceId, _s14_, _s10_, t1); + t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._entrypointPath, _s14_, _s14_0, t1); _$result = new A._$ConnectRequest(t2, t3, t4); A.BuiltValueNullFieldError_checkNotNull(t2, _s14_, "appId", t1); A.BuiltValueNullFieldError_checkNotNull(t3, _s14_, _s10_, t1); A.BuiltValueNullFieldError_checkNotNull(t4, _s14_, _s14_0, t1); } A.ArgumentError_checkNotNull(_$result, "other", type$.ConnectRequest); - return _this._$v = _$result; + return _this._connect_request$_$v = _$result; } }; A.DebugEvent.prototype = {}; @@ -22369,7 +22406,7 @@ t5 = result._events; if (t5 == null) { t5 = new A.ListBuilder(t4); - t5.set$__ListBuilder__list_A(t3._as(A.List_List$from(B.List_empty0, true, t2))); + t5.set$__ListBuilder__list_A(t3._as(A.List_List$from(B.List_empty, true, t2))); t5.set$_listOwner(null); result.set$_events(t5); } @@ -22482,7 +22519,7 @@ var t1 = this.get$_debug_event$_$this(), t2 = t1._events; if (t2 == null) { - t2 = A.ListBuilder_ListBuilder(B.List_empty0, type$.DebugEvent); + t2 = A.ListBuilder_ListBuilder(B.List_empty, type$.DebugEvent); t1.set$_events(t2); t1 = t2; } else @@ -22533,6 +22570,170 @@ this._events = type$.nullable_ListBuilder_DebugEvent._as(_events); } }; + A.DebugInfo.prototype = {}; + A._$DebugInfoSerializer.prototype = { + serialize$3$specifiedType(serializers, object, specifiedType) { + var result, value; + type$.DebugInfo._as(object); + result = []; + value = object.appEntrypointPath; + if (value != null) { + result.push("appEntrypointPath"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.appId; + if (value != null) { + result.push("appId"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.appInstanceId; + if (value != null) { + result.push("appInstanceId"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.appOrigin; + if (value != null) { + result.push("appOrigin"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.appUrl; + if (value != null) { + result.push("appUrl"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.dwdsVersion; + if (value != null) { + result.push("dwdsVersion"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.extensionUrl; + if (value != null) { + result.push("extensionUrl"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_h8g)); + } + value = object.isInternalBuild; + if (value != null) { + result.push("isInternalBuild"); + result.push(serializers.serialize$2$specifiedType(value, B.FullType_MtR)); + } + return result; + }, + serialize$2(serializers, object) { + return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false); + }, + deserialize$3$specifiedType(serializers, serialized, specifiedType) { + var t1, value, + result = new A.DebugInfoBuilder(), + iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); + for (; iterator.moveNext$0();) { + t1 = iterator.get$current(iterator); + t1.toString; + A._asString(t1); + iterator.moveNext$0(); + value = iterator.get$current(iterator); + switch (t1) { + case "appEntrypointPath": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._appEntrypointPath = t1; + break; + case "appId": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._appId = t1; + break; + case "appInstanceId": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._appInstanceId = t1; + break; + case "appOrigin": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._appOrigin = t1; + break; + case "appUrl": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._appUrl = t1; + break; + case "dwdsVersion": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._dwdsVersion = t1; + break; + case "extensionUrl": + t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); + result.get$_$this()._extensionUrl = t1; + break; + case "isInternalBuild": + t1 = A._asBoolQ(serializers.deserialize$2$specifiedType(value, B.FullType_MtR)); + result.get$_$this()._isInternalBuild = t1; + break; + } + } + return result._debug_info$_build$0(); + }, + deserialize$2(serializers, serialized) { + return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false); + }, + $isSerializer: 1, + $isStructuredSerializer: 1, + get$types() { + return B.List_2mv; + }, + get$wireName() { + return "DebugInfo"; + } + }; + A._$DebugInfo.prototype = { + $eq(_, other) { + var _this = this; + if (other == null) + return false; + if (other === _this) + return true; + return other instanceof A.DebugInfo && _this.appEntrypointPath == other.appEntrypointPath && _this.appId == other.appId && _this.appInstanceId == other.appInstanceId && _this.appOrigin == other.appOrigin && _this.appUrl == other.appUrl && _this.dwdsVersion == other.dwdsVersion && _this.extensionUrl == other.extensionUrl && _this.isInternalBuild == other.isInternalBuild; + }, + get$hashCode(_) { + var _this = this; + return A.$jf(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(A.$jc(0, J.get$hashCode$(_this.appEntrypointPath)), J.get$hashCode$(_this.appId)), J.get$hashCode$(_this.appInstanceId)), J.get$hashCode$(_this.appOrigin)), J.get$hashCode$(_this.appUrl)), J.get$hashCode$(_this.dwdsVersion)), J.get$hashCode$(_this.extensionUrl)), J.get$hashCode$(_this.isInternalBuild))); + }, + toString$0(_) { + var _this = this, + t1 = $.$get$newBuiltValueToStringHelper().call$1("DebugInfo"), + t2 = J.getInterceptor$ax(t1); + t2.add$2(t1, "appEntrypointPath", _this.appEntrypointPath); + t2.add$2(t1, "appId", _this.appId); + t2.add$2(t1, "appInstanceId", _this.appInstanceId); + t2.add$2(t1, "appOrigin", _this.appOrigin); + t2.add$2(t1, "appUrl", _this.appUrl); + t2.add$2(t1, "dwdsVersion", _this.dwdsVersion); + t2.add$2(t1, "extensionUrl", _this.extensionUrl); + t2.add$2(t1, "isInternalBuild", _this.isInternalBuild); + return t2.toString$0(t1); + } + }; + A.DebugInfoBuilder.prototype = { + get$_$this() { + var _this = this, + $$v = _this._$v; + if ($$v != null) { + _this._appEntrypointPath = $$v.appEntrypointPath; + _this._appId = $$v.appId; + _this._appInstanceId = $$v.appInstanceId; + _this._appOrigin = $$v.appOrigin; + _this._appUrl = $$v.appUrl; + _this._dwdsVersion = $$v.dwdsVersion; + _this._extensionUrl = $$v.extensionUrl; + _this._isInternalBuild = $$v.isInternalBuild; + _this._$v = null; + } + return _this; + }, + _debug_info$_build$0() { + var _this = this, + _$result = _this._$v; + if (_$result == null) + _$result = new A._$DebugInfo(_this.get$_$this()._appEntrypointPath, _this.get$_$this()._appId, _this.get$_$this()._appInstanceId, _this.get$_$this()._appOrigin, _this.get$_$this()._appUrl, _this.get$_$this()._dwdsVersion, _this.get$_$this()._extensionUrl, _this.get$_$this()._isInternalBuild); + A.ArgumentError_checkNotNull(_$result, "other", type$.DebugInfo); + return _this._$v = _$result; + } + }; A.DevToolsRequest.prototype = {}; A.DevToolsResponse.prototype = {}; A._$DevToolsRequestSerializer.prototype = { @@ -23137,7 +23338,7 @@ t5 = result._extension_request$_events; if (t5 == null) { t5 = new A.ListBuilder(t4); - t5.set$__ListBuilder__list_A(t3._as(A.List_List$from(B.List_empty0, true, t2))); + t5.set$__ListBuilder__list_A(t3._as(A.List_List$from(B.List_empty, true, t2))); t5.set$_listOwner(null); result.set$_extension_request$_events(t5); } @@ -23305,7 +23506,7 @@ } t1 = _this._extension_request$_events; if (t1 == null) { - t1 = A.ListBuilder_ListBuilder(B.List_empty0, type$.ExtensionEvent); + t1 = A.ListBuilder_ListBuilder(B.List_empty, type$.ExtensionEvent); _this.set$_extension_request$_events(t1); } return t1; @@ -23596,13 +23797,13 @@ }; A._$serializers_closure.prototype = { call$0() { - return A.ListBuilder_ListBuilder(B.List_empty0, type$.DebugEvent); + return A.ListBuilder_ListBuilder(B.List_empty, type$.DebugEvent); }, $signature: 57 }; A._$serializers_closure0.prototype = { call$0() { - return A.ListBuilder_ListBuilder(B.List_empty0, type$.ExtensionEvent); + return A.ListBuilder_ListBuilder(B.List_empty, type$.ExtensionEvent); }, $signature: 58 }; @@ -23755,13 +23956,13 @@ call$0() { return true; }, - $signature: 31 + $signature: 30 }; A.BatchedStreamController__hasEventDuring_closure.prototype = { call$0() { return false; }, - $signature: 31 + $signature: 30 }; A.Int64.prototype = { $eq(_, other) { @@ -24321,13 +24522,13 @@ call$2(value, count) { return B.JSString_methods.padLeft$2(B.JSInt_methods.toRadixString$1(value, 16), count, "0"); }, - $signature: 32 + $signature: 31 }; A.generateUuidV4__bitsDigits.prototype = { call$2(bitCount, digitCount) { return this._printDigits.call$2(this._generateBits.call$1(bitCount), digitCount); }, - $signature: 32 + $signature: 31 }; A.GuaranteeChannel.prototype = { GuaranteeChannel$3$allowSinkErrors(innerSink, allowSinkErrors, _box_0, $T) { @@ -24645,7 +24846,7 @@ type$.Event._as(_); this.$this._listen$0(); }, - $signature: 33 + $signature: 32 }; A.HtmlWebSocketChannel_closure0.prototype = { call$1(_) { @@ -24660,7 +24861,7 @@ t1 === $ && A.throwLateFieldNI("_sink"); t1.close$0(0); }, - $signature: 33 + $signature: 32 }; A.HtmlWebSocketChannel_closure1.prototype = { call$1($event) { @@ -24674,7 +24875,7 @@ t1 === $ && A.throwLateFieldNI("_sink"); t1.add$1(0, data); }, - $signature: 17 + $signature: 33 }; A.HtmlWebSocketChannel_closure2.prototype = { call$1($event) { @@ -24688,7 +24889,7 @@ t1 === $ && A.throwLateFieldNI("_sink"); t1.close$0(0); }, - $signature: 66 + $signature: 84 }; A.HtmlWebSocketChannel__listen_closure.prototype = { call$0() { @@ -24785,7 +24986,16 @@ A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._build$0()), null), type$.dynamic); } else A.runMain(); - self.window.top.document.dispatchEvent(A.CustomEvent_CustomEvent("dart-app-ready")); + t1 = window; + t1.toString; + t2 = false; + if (t2) + A.throwExpression(A.ArgumentError$("object cannot be a num, string, bool, or null", null)); + t1 = A._wrapToDart(A._convertToJS(t1)); + t2 = $.$get$serializers(); + t3 = new A.DebugInfoBuilder(); + type$.nullable_void_Function_DebugInfoBuilder._as(new A.main__closure8(t1)).call$1(t3); + self.window.top.document.dispatchEvent(A.CustomEvent_CustomEvent("dart-app-ready", B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._debug_info$_build$0()), null))); // implicit return return A._asyncReturn(null, $async$completer); } @@ -24821,7 +25031,7 @@ b.get$_debug_event$_$this().set$_events(t1); return t1; }, - $signature: 98 + $signature: 70 }; A.main__closure1.prototype = { call$2(kind, eventData) { @@ -24835,7 +25045,7 @@ A._trySendEvent(new A._StreamSinkWrapper(t1, A._instanceType(t1)._eval$1("_StreamSinkWrapper<1>")), t2._debug_event$_build$0(), type$.DebugEvent); } }, - $signature: 25 + $signature: 17 }; A.main___closure1.prototype = { call$1(b) { @@ -24845,7 +25055,7 @@ b.get$_debug_event$_$this()._eventData = this.eventData; return b; }, - $signature: 71 + $signature: 99 }; A.main__closure2.prototype = { call$1(eventData) { @@ -25028,15 +25238,40 @@ A.main__closure7.prototype = { call$1(b) { var t1 = A._asStringQ(self.$dartAppId); - b.get$_$this()._appId = t1; + b.get$_connect_request$_$this()._connect_request$_appId = t1; t1 = A._asStringQ(self.$dartAppInstanceId); - b.get$_$this()._instanceId = t1; + b.get$_connect_request$_$this()._instanceId = t1; t1 = A._asStringQ(self.$dartEntrypointPath); - b.get$_$this()._entrypointPath = t1; + b.get$_connect_request$_$this()._entrypointPath = t1; return b; }, $signature: 76 }; + A.main__closure8.prototype = { + call$1(b) { + var t2, t3, + _s17_ = "$dartExtensionUri", + t1 = A._asStringQ(self.$dartEntrypointPath); + b.get$_$this()._appEntrypointPath = t1; + t1 = this.windowContext; + t2 = A._asStringQ(t1.$index(0, _s17_)); + b.get$_$this()._appId = t2; + t2 = A._asStringQ(self.$dartAppInstanceId); + b.get$_$this()._appInstanceId = t2; + t2 = type$.Location; + t3 = B.Location_methods.get$origin(t2._as(window.location)); + b.get$_$this()._appOrigin = t3; + t2 = t2._as(window.location).href; + t2.toString; + b.get$_$this()._appUrl = t2; + t2 = A._asStringQ(t1.$index(0, _s17_)); + b.get$_$this()._extensionUrl = t2; + t1 = A._asBoolQ(t1.$index(0, "$isInternalDartBuild")); + b.get$_$this()._isInternalBuild = t1; + return b; + }, + $signature: 77 + }; A.main_closure0.prototype = { call$2(error, stackTrace) { type$.Object._as(error); @@ -25095,7 +25330,7 @@ if (t1) this.reloadCompleter.complete$1(0, true); }, - $signature: 17 + $signature: 33 }; A.LegacyRestarter_restart_closure0.prototype = { call$1(value) { @@ -25103,7 +25338,7 @@ this.sub.cancel$0(0); return value; }, - $signature: 77 + $signature: 78 }; A.ReloadingManager.prototype = { hotRestart$1$runId(runId) { @@ -25214,7 +25449,7 @@ t5 = t2.get$current(t2); t6 = $.___lastKnownDigests.__late_helper$_value; if (t6 == null ? $.___lastKnownDigests == null : t6 === $.___lastKnownDigests) - A.throwExpression(A.LateError$fieldNI($.___lastKnownDigests._name)); + A.throwExpression(A.LateError$fieldNI($.___lastKnownDigests.__late_helper$_name)); if (!J.containsKey$1$x(t6, t5)) { line = "Error during script reloading, refreshing the page. \nUnable to find an existing digest for module: " + t5 + "."; toZone = $.printToZone; @@ -25226,11 +25461,11 @@ } else { t6 = $.___lastKnownDigests.__late_helper$_value; if (t6 == null ? $.___lastKnownDigests == null : t6 === $.___lastKnownDigests) - A.throwExpression(A.LateError$fieldNI($.___lastKnownDigests._name)); + A.throwExpression(A.LateError$fieldNI($.___lastKnownDigests.__late_helper$_name)); if (!J.$eq$(J.$index$asx(t6, t5), t1.$index(newDigests, t5))) { t6 = $.___lastKnownDigests.__late_helper$_value; if (t6 == null ? $.___lastKnownDigests == null : t6 === $.___lastKnownDigests) - A.throwExpression(A.LateError$fieldNI($.___lastKnownDigests._name)); + A.throwExpression(A.LateError$fieldNI($.___lastKnownDigests.__late_helper$_name)); t7 = t1.$index(newDigests, t5); t7.toString; J.$indexSet$ax(t6, t5, t7); @@ -25523,7 +25758,7 @@ call$1(e) { this.completer.completeError$2(new A.HotReloadFailedException(J.get$message$x(type$.JsError._as(e))), this.stackTrace); }, - $signature: 80 + $signature: 81 }; A._createScript_closure.prototype = { call$0() { @@ -25532,7 +25767,7 @@ return new A._createScript__closure(); return new A._createScript__closure0(nonce); }, - $signature: 81 + $signature: 82 }; A._createScript__closure.prototype = { call$0() { @@ -25600,50 +25835,50 @@ _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 3); _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 11); _static_0(A, "async___nullDoneHandler$closure", "_nullDoneHandler", 0); - _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 85, 0); + _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 86, 0); _static(A, "async___rootRun$closure", 4, null, ["call$1$4", "call$4"], ["_rootRun", function($self, $parent, zone, f) { return A._rootRun($self, $parent, zone, f, type$.dynamic); - }], 86, 1); + }], 87, 1); _static(A, "async___rootRunUnary$closure", 5, null, ["call$2$5", "call$5"], ["_rootRunUnary", function($self, $parent, zone, f, arg) { return A._rootRunUnary($self, $parent, zone, f, arg, type$.dynamic, type$.dynamic); - }], 87, 1); + }], 88, 1); _static(A, "async___rootRunBinary$closure", 6, null, ["call$3$6", "call$6"], ["_rootRunBinary", function($self, $parent, zone, f, arg1, arg2) { return A._rootRunBinary($self, $parent, zone, f, arg1, arg2, type$.dynamic, type$.dynamic, type$.dynamic); - }], 88, 1); + }], 89, 1); _static(A, "async___rootRegisterCallback$closure", 4, null, ["call$1$4", "call$4"], ["_rootRegisterCallback", function($self, $parent, zone, f) { return A._rootRegisterCallback($self, $parent, zone, f, type$.dynamic); - }], 89, 0); + }], 90, 0); _static(A, "async___rootRegisterUnaryCallback$closure", 4, null, ["call$2$4", "call$4"], ["_rootRegisterUnaryCallback", function($self, $parent, zone, f) { return A._rootRegisterUnaryCallback($self, $parent, zone, f, type$.dynamic, type$.dynamic); - }], 90, 0); + }], 91, 0); _static(A, "async___rootRegisterBinaryCallback$closure", 4, null, ["call$3$4", "call$4"], ["_rootRegisterBinaryCallback", function($self, $parent, zone, f) { return A._rootRegisterBinaryCallback($self, $parent, zone, f, type$.dynamic, type$.dynamic, type$.dynamic); - }], 91, 0); - _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 92, 0); - _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 93, 0); - _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 94, 0); - _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 95, 0); - _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 96, 0); + }], 92, 0); + _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 93, 0); + _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 94, 0); + _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 95, 0); + _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 96, 0); + _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 97, 0); _static_1(A, "async___printToZone$closure", "_printToZone", 35); - _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 97, 0); - _instance(A._Completer.prototype, "get$completeError", 0, 1, null, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 26, 0, 0); + _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 98, 0); + _instance(A._Completer.prototype, "get$completeError", 0, 1, null, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 25, 0, 0); _instance(A._AsyncCompleter.prototype, "get$complete", 1, 0, function() { return [null]; }, ["call$1", "call$0"], ["complete$1", "complete$0"], 52, 0, 0); _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 11); var _; - _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 29); + _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 28); _instance(_, "get$addError", 0, 1, function() { return [null]; - }, ["call$2", "call$1"], ["addError$2", "addError$1"], 26, 0, 0); + }, ["call$2", "call$1"], ["addError$2", "addError$1"], 25, 0, 0); _instance_0_u(_ = A._ControllerSubscription.prototype, "get$_onPause", "_onPause$0", 0); _instance_0_u(_, "get$_onResume", "_onResume$0", 0); _instance_0_u(_ = A._BufferingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0); _instance_0_u(_, "get$_onResume", "_onResume$0", 0); _instance_0_u(_ = A._ForwardingStreamSubscription.prototype, "get$_onPause", "_onPause$0", 0); _instance_0_u(_, "get$_onResume", "_onResume$0", 0); - _instance_1_u(_, "get$_handleData", "_handleData$1", 29); - _instance_2_u(_, "get$_handleError", "_handleError$2", 60); + _instance_1_u(_, "get$_handleData", "_handleData$1", 28); + _instance_2_u(_, "get$_handleError", "_handleError$2", 63); _instance_0_u(_, "get$_handleDone", "_handleDone$0", 0); _static_2(A, "collection___defaultEquals$closure", "_defaultEquals", 14); _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 15); @@ -25658,18 +25893,18 @@ _static(A, "html__Html5NodeValidator__uriAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__uriAttributeValidator"], 34, 0); _instance_0_i(A.Node.prototype, "get$remove", "remove$0", 0); _instance_1_i(A.WebSocket.prototype, "get$send", "send$1", 3); - _static_1(A, "js___convertToJS$closure", "_convertToJS", 30); + _static_1(A, "js___convertToJS$closure", "_convertToJS", 29); _static_1(A, "js___convertToDart$closure", "_convertToDart", 2); _instance_2_u(_ = A.DeepCollectionEquality.prototype, "get$equals", "equals$2", 14); _instance_1_i(_, "get$hash", "hash$1", 15); _instance_1_u(_, "get$isValidKey", "isValidKey$1", 56); - _static_2(A, "strongly_connected_components___defaultEquals$closure", "_defaultEquals0", 65); + _static_2(A, "strongly_connected_components___defaultEquals$closure", "_defaultEquals0", 66); _instance_1_u(_ = A.SseClient.prototype, "get$_onIncomingControlMessage", "_onIncomingControlMessage$1", 4); _instance_1_u(_, "get$_onIncomingMessage", "_onIncomingMessage$1", 4); _instance_0_u(_, "get$_onOutgoingDone", "_onOutgoingDone$0", 0); _instance_1_u(_, "get$_onOutgoingMessage", "_onOutgoingMessage$1", 62); - _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 78); - _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 79); + _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 79); + _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 80); })(); (function inheritance() { var _mixin = hunkHelpers.mixin, @@ -25677,7 +25912,7 @@ _inherit = hunkHelpers.inherit, _inheritMany = hunkHelpers.inheritMany; _inherit(A.Object, null); - _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapMixin, A.Error, A.SentinelValue, A.ListIterator, A.Iterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._ListBase_Object_ListMixin, A.Symbol, A.MapView, A.ConstantMap, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A.StreamSubscription, A.StreamTransformerBase, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.__SetBase_Object_SetMixin, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A.IterableMixin, A.ListMixin, A._UnmodifiableMapMixin, A._ListQueueIterator, A.SetMixin, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A._JsonStringifier, A._Utf8Encoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.Expando, A.CssStyleDeclarationBase, A.EventStreamProvider, A._Html5NodeValidator, A.ImmutableListMixin, A.NodeValidatorBuilder, A._SimpleNodeValidator, A._SvgNodeValidator, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._SameOriginUriPolicy, A._ValidatingTreeSanitizer, A._StructuredClone, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A._JSRandom, A._Random, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.CopyOnWriteList, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.UriSerializer, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.SocketClient, A.BatchedStreamController, A.Int64, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.WebSocketChannelException, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]); + _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapMixin, A.Error, A.SentinelValue, A.ListIterator, A.Iterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._ListBase_Object_ListMixin, A.Symbol, A.MapView, A.ConstantMap, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A.StreamSubscription, A.StreamTransformerBase, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.__SetBase_Object_SetMixin, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A.IterableMixin, A.ListMixin, A._UnmodifiableMapMixin, A._ListQueueIterator, A.SetMixin, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A._JsonStringifier, A._Utf8Encoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.Expando, A.CssStyleDeclarationBase, A.EventStreamProvider, A._Html5NodeValidator, A.ImmutableListMixin, A.NodeValidatorBuilder, A._SimpleNodeValidator, A._SvgNodeValidator, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._SameOriginUriPolicy, A._ValidatingTreeSanitizer, A._StructuredClone, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A._JSRandom, A._Random, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.CopyOnWriteList, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.UriSerializer, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.SocketClient, A.BatchedStreamController, A.Int64, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.WebSocketChannelException, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]); _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JSArray, J.JSNumber, J.JSString, A.NativeByteBuffer, A.NativeTypedData]); _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.Event, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A.DomImplementation, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SharedArrayBuffer, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction, A.Promise, A.RequireLoader, A.JsError, A.JsMap]); @@ -25687,7 +25922,7 @@ _inheritMany(A._CastIterableBase, [A.CastIterable, A.__CastListBase__CastIterableBase_ListMixin, A.CastSet, A.CastQueue]); _inherit(A._EfficientLengthCastIterable, A.CastIterable); _inherit(A._CastListBase, A.__CastListBase__CastIterableBase_ListMixin); - _inheritMany(A.Closure, [A.Closure2Args, A.Closure0Args, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__chainForeignFuture_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._Future_timeout_closure0, A.Stream_length_closure, A.Stream_first_closure0, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._CustomHashMap_closure, A._LinkedCustomHashMap_closure, A.SplayTreeSet_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A._createTables_setChars, A._createTables_setRange, A.Element_Element$html_closure, A.HttpRequest_request_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.NodeValidatorBuilder_allowsElement_closure, A.NodeValidatorBuilder_allowsAttribute_closure, A._SimpleNodeValidator_closure, A._SimpleNodeValidator_closure0, A._TemplatingNodeValidator_closure, A._convertDartToNative_Value_closure, A.JsObject__convertDataTree__convert, A._convertToJS_closure, A._convertToJS_closure0, A._wrapToDart_closure, A._wrapToDart_closure0, A._wrapToDart_closure1, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.WebSocketClient_stream_closure, A.stronglyConnectedComponents_strongConnect, A.Pool__runOnRelease_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4__generateBits, A._GuaranteeSink__addError_closure, A.HtmlWebSocketChannel_closure, A.HtmlWebSocketChannel_closure0, A.HtmlWebSocketChannel_closure1, A.HtmlWebSocketChannel_closure2, A.main__closure, A.main__closure0, A.main___closure2, A.main___closure1, A.main__closure2, A.main___closure0, A.main___closure, A.main__closure4, A.main__closure5, A.main__closure6, A.main__closure7, A.LegacyRestarter_restart_closure, A.LegacyRestarter_restart_closure0, A.toFuture_closure, A.RequireRestarter__reloadModule_closure0]); + _inheritMany(A.Closure, [A.Closure2Args, A.Closure0Args, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__chainForeignFuture_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._Future_timeout_closure0, A.Stream_length_closure, A.Stream_first_closure0, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._CustomHashMap_closure, A._LinkedCustomHashMap_closure, A.SplayTreeSet_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A._createTables_setChars, A._createTables_setRange, A.Element_Element$html_closure, A.HttpRequest_request_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.NodeValidatorBuilder_allowsElement_closure, A.NodeValidatorBuilder_allowsAttribute_closure, A._SimpleNodeValidator_closure, A._SimpleNodeValidator_closure0, A._TemplatingNodeValidator_closure, A._convertDartToNative_Value_closure, A.JsObject__convertDataTree__convert, A._convertToJS_closure, A._convertToJS_closure0, A._wrapToDart_closure, A._wrapToDart_closure0, A._wrapToDart_closure1, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.WebSocketClient_stream_closure, A.stronglyConnectedComponents_strongConnect, A.Pool__runOnRelease_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4__generateBits, A._GuaranteeSink__addError_closure, A.HtmlWebSocketChannel_closure, A.HtmlWebSocketChannel_closure0, A.HtmlWebSocketChannel_closure1, A.HtmlWebSocketChannel_closure2, A.main__closure, A.main__closure0, A.main___closure2, A.main___closure1, A.main__closure2, A.main___closure0, A.main___closure, A.main__closure4, A.main__closure5, A.main__closure6, A.main__closure7, A.main__closure8, A.LegacyRestarter_restart_closure, A.LegacyRestarter_restart_closure0, A.toFuture_closure, A.RequireRestarter__reloadModule_closure0]); _inheritMany(A.Closure2Args, [A._CastListBase_sort_closure, A.CastMap_forEach_closure, A.ConstantMap_map_closure, A.Primitives_functionNoSuchMethod_closure, A.JsLinkedHashMap_addAll_closure, A.initHooks_closure0, A._awaitOnObject_closure0, A._wrapJsFunctionForAsync_closure, A._Future__chainForeignFuture_closure0, A._Future_timeout_closure1, A._BufferingStreamSubscription_asFuture_closure0, A.LinkedHashMap_LinkedHashMap$from_closure, A.MapBase_mapToString_closure, A.SplayTreeSet__newSet_closure, A._JsonStringifier_writeMap_closure, A._symbolMapToStringMap_closure, A.NoSuchMethodError_toString_closure, A._BigIntImpl_hashCode_combine, A.Uri__parseIPv4Address_error, A.Uri_parseIPv6Address_error, A.Uri_parseIPv6Address_parseHex, A._createTables_build, A.MidiInputMap_keys_closure, A.MidiOutputMap_keys_closure, A.RtcStatsReport_keys_closure, A.Storage_keys_closure, A._ValidatingTreeSanitizer_sanitizeTree_walk, A._StructuredClone_walk_closure, A._StructuredClone_walk_closure0, A._AcceptStructuredClone_walk_closure, A.convertDartToNative_Dictionary_closure, A.AudioParamMap_keys_closure, A.StreamQueue__ensureListening_closure1, A.hashObjects_closure, A.MapBuilder_replace_closure, A.Pool__runOnRelease_closure0, A.generateUuidV4__printDigits, A.generateUuidV4__bitsDigits, A.main__closure1, A.main_closure0, A.toPromise_closure]); _inherit(A.CastList, A._CastListBase); _inherit(A.MapBase, A.MapMixin); @@ -25827,6 +26062,7 @@ _inherit(A._$ConnectRequest, A.ConnectRequest); _inherit(A._$DebugEvent, A.DebugEvent); _inherit(A._$BatchedDebugEvents, A.BatchedDebugEvents); + _inherit(A._$DebugInfo, A.DebugInfo); _inherit(A._$DevToolsRequest, A.DevToolsRequest); _inherit(A._$DevToolsResponse, A.DevToolsResponse); _inherit(A._$ErrorResponse, A.ErrorResponse); @@ -25909,12 +26145,12 @@ typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []}, mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List"}, mangledNames: {}, - types: ["~()", "@(@)", "Object?(@)", "~(@)", "~(Event)", "Null()", "~(String,@)", "Null(@)", "Null(Object,StackTrace)", "~(@,@)", "~(~())", "~(Object,StackTrace)", "bool(@)", "Set<0^>()", "bool(Object?,Object?)", "int(Object?)", "int(@,@)", "~(MessageEvent)", "~(Object?,Object?)", "~(Symbol0,@)", "int(int,int)", "int(int)", "String(String)", "~(Uint8List,String,int)", "Future()", "~(String,String)", "~(Object[StackTrace?])", "bool(NodeValidator)", "bool(String)", "~(Object?)", "Object?(Object?)", "bool()", "String(int,int)", "Null(Event)", "bool(Element,String,String,_Html5NodeValidator)", "~(String)", "ScriptElement()", "JsObject(@)", "~(Node,Node?)", "Null(@,@)", "@(@,@)", "@(Object?)", "JsFunction(@)", "JsArray<@>(@)", "~(int,@)", "int(int,@)", "IndentingBuiltValueToStringHelper(String)", "ListBuilder()", "ListMultimapBuilder()", "MapBuilder()", "SetBuilder()", "SetMultimapBuilder()", "~([Object?])", "Uint8List(@,@)", "@(String)", "@(@,String)", "bool(Object?)", "ListBuilder()", "ListBuilder()", "String(@)", "~(@,StackTrace)", "Logger()", "~(String?)", "bool(Node)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "bool(Object,Object)", "Null(CloseEvent)", "Future<~>()", "Promise<1&>(String)", "~(List)", "Null(~())", "DebugEventBuilder(DebugEventBuilder)", "Null(@,StackTrace)", "RegisterEventBuilder(RegisterEventBuilder)", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "Future<~>(String)", "ConnectRequestBuilder(ConnectRequestBuilder)", "bool(bool)", "List(String)", "int(String,String)", "~(JsError)", "ScriptElement()()", "~(String,int)", "~(ProgressEvent)", "~(String,int?)", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)", "0^()(Zone,ZoneDelegate,Zone,0^())", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map?)", "ListBuilder(BatchedDebugEventsBuilder)", "_Future<@>(@)"], + types: ["~()", "@(@)", "Object?(@)", "~(@)", "~(Event)", "Null()", "~(String,@)", "Null(@)", "Null(Object,StackTrace)", "~(@,@)", "~(~())", "~(Object,StackTrace)", "bool(@)", "Set<0^>()", "bool(Object?,Object?)", "int(Object?)", "int(@,@)", "~(String,String)", "~(Object?,Object?)", "~(Symbol0,@)", "int(int,int)", "int(int)", "String(String)", "~(Uint8List,String,int)", "Future()", "~(Object[StackTrace?])", "bool(NodeValidator)", "bool(String)", "~(Object?)", "Object?(Object?)", "bool()", "String(int,int)", "Null(Event)", "~(MessageEvent)", "bool(Element,String,String,_Html5NodeValidator)", "~(String)", "ScriptElement()", "int(int,@)", "~(Node,Node?)", "Null(@,@)", "@(@,@)", "@(Object?)", "JsFunction(@)", "JsArray<@>(@)", "JsObject(@)", "~(String,int?)", "IndentingBuiltValueToStringHelper(String)", "ListBuilder()", "ListMultimapBuilder()", "MapBuilder()", "_Future<@>(@)", "SetMultimapBuilder()", "~([Object?])", "~(int,@)", "@(String)", "@(@,String)", "bool(Object?)", "ListBuilder()", "ListBuilder()", "String(@)", "Uint8List(@,@)", "Logger()", "~(String?)", "~(@,StackTrace)", "bool(Node)", "~(ProgressEvent)", "bool(Object,Object)", "Future<~>()", "Promise<1&>(String)", "~(List)", "ListBuilder(BatchedDebugEventsBuilder)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "Null(~())", "RegisterEventBuilder(RegisterEventBuilder)", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "Future<~>(String)", "ConnectRequestBuilder(ConnectRequestBuilder)", "DebugInfoBuilder(DebugInfoBuilder)", "bool(bool)", "List(String)", "int(String,String)", "~(JsError)", "ScriptElement()()", "Null(@,StackTrace)", "Null(CloseEvent)", "~(String,int)", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)", "0^()(Zone,ZoneDelegate,Zone,0^())", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map?)", "DebugEventBuilder(DebugEventBuilder)", "SetBuilder()"], interceptorsByTag: null, leafTags: null, arrayRti: Symbol("$ti") }; - A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","Promise":"LegacyJavaScriptObject","JsError":"LegacyJavaScriptObject","RequireLoader":"LegacyJavaScriptObject","JsMap":"LegacyJavaScriptObject","AbortPaymentEvent":"Event","ExtendableEvent":"Event","AudioContext":"BaseAudioContext","AbsoluteOrientationSensor":"EventTarget","OrientationSensor":"EventTarget","Sensor":"EventTarget","AElement":"SvgElement","GraphicsElement":"SvgElement","_ResourceProgressEvent":"ProgressEvent","AudioElement":"HtmlElement","MediaElement":"HtmlElement","ShadowRoot":"Node","DocumentFragment":"Node","XmlDocument":"Document","VttCue":"TextTrackCue","CompositionEvent":"UIEvent","DedicatedWorkerGlobalScope":"WorkerGlobalScope","CDataSection":"CharacterData","Text":"CharacterData","MathMLElement":"Element","HttpRequestUpload":"HttpRequestEventTarget","HtmlFormControlsCollection":"HtmlCollection","CssCharsetRule":"CssRule","CssStyleSheet":"StyleSheet","JSBool":{"bool":[]},"JSNull":{"Null":[]},"LegacyJavaScriptObject":{"JSObject":[],"Promise":["1&"],"JsError":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","Iterable.E":"2"},"CastSet":{"Set":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"CastMap":{"MapMixin":["3","4"],"Map":["3","4"],"MapMixin.K":"3","MapMixin.V":"4"},"CastQueue":{"Queue":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"LateError":{"Error":[]},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_ConstantMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Function":[]},"Closure2Args":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"ByteBuffer":[]},"NativeTypedData":{"TypedData":[]},"NativeByteData":{"NativeTypedData":[],"TypedData":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"NativeTypedData":[],"TypedData":[]},"NativeTypedArrayOfDouble":{"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"NativeTypedData":[],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"NativeTypedData":[],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeFloat64List":{"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"NativeTypedData":[],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeInt16List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt32List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt8List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint16List":{"ListMixin":["int"],"Uint16List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint32List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8ClampedList":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8List":{"ListMixin":["int"],"Uint8List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"StreamTransformerBase":{"StreamTransformer":["1","2"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","UnmodifiableListMixin.E":"1"},"IterableBase":{"Iterable":["1"]},"ListBase":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"],"Map":["1","2"]},"MapMixin":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"ListIterable":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"_SetBase":{"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.1":"2","_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1"},"SplayTreeSet":{"SetMixin":["1"],"Set":["1"],"IterableMixin":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"_SplayTree.K":"1","_SplayTree.1":"_SplayTreeSetNode<1>"},"_JsonMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"Base64Codec":{"Codec":["List","String"],"Codec.S":"List"},"Base64Encoder":{"Converter":["List","String"],"StreamTransformer":["List","String"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"],"Codec.S":"Object?"},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Utf8Codec":{"Codec":["String","List"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"BigInt":{"Comparable":["BigInt"]},"DateTime":{"Comparable":["DateTime"]},"double":{"num":[],"Comparable":["num"]},"Duration":{"Comparable":["Duration"]},"int":{"num":[],"Comparable":["num"]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"num":{"Comparable":["num"]},"RegExp":{"Pattern":[]},"RegExpMatch":{"Match":[]},"Set":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"String":{"Comparable":["String"],"Pattern":[]},"_BigIntImpl":{"BigInt":[],"Comparable":["BigInt"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"NullThrownError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"CyclicInitializationError":{"Error":[]},"IntegerDivisionByZeroException":{"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"CloseEvent":{"Event":[]},"Element":{"Node":[],"EventTarget":[]},"File":{"Blob":[]},"HttpRequest":{"EventTarget":[]},"KeyboardEvent":{"Event":[]},"MessageEvent":{"Event":[]},"Node":{"EventTarget":[]},"ProgressEvent":{"Event":[]},"ScriptElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"SourceBuffer":{"EventTarget":[]},"TextTrack":{"EventTarget":[]},"TextTrackCue":{"EventTarget":[]},"_Html5NodeValidator":{"NodeValidator":[]},"HtmlElement":{"Element":[],"Node":[],"EventTarget":[]},"AnchorElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"AreaElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"BaseElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"BodyElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"CharacterData":{"Node":[],"EventTarget":[]},"CustomEvent":{"Event":[]},"Document":{"Node":[],"EventTarget":[]},"DomRectList":{"ListMixin":["Rectangle"],"ImmutableListMixin":["Rectangle"],"List":["Rectangle"],"JavaScriptIndexingBehavior":["Rectangle"],"EfficientLengthIterable":["Rectangle"],"Iterable":["Rectangle"],"ImmutableListMixin.E":"Rectangle","ListMixin.E":"Rectangle"},"DomRectReadOnly":{"Rectangle":["num"]},"DomStringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"_FrozenElementList":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1"},"EventSource":{"EventTarget":[]},"FileList":{"ListMixin":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"Iterable":["File"],"ImmutableListMixin.E":"File","ListMixin.E":"File"},"FileWriter":{"EventTarget":[]},"FormElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"HtmlCollection":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"HtmlDocument":{"Document":[],"Node":[],"EventTarget":[]},"HttpRequestEventTarget":{"EventTarget":[]},"MessagePort":{"EventTarget":[]},"MidiInputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MidiOutputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MimeTypeArray":{"ListMixin":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListMixin.E":"MimeType"},"_ChildNodeListLazy":{"ListMixin":["Node"],"List":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ListMixin.E":"Node"},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"PluginArray":{"ListMixin":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListMixin.E":"Plugin"},"RtcStatsReport":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"SelectElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"SourceBufferList":{"ListMixin":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"EventTarget":[],"List":["SourceBuffer"],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListMixin.E":"SourceBuffer"},"SpeechGrammarList":{"ListMixin":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListMixin.E":"SpeechGrammar"},"Storage":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"TableElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TableRowElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TableSectionElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TemplateElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TextTrackCueList":{"ListMixin":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListMixin.E":"TextTrackCue"},"TextTrackList":{"ListMixin":["TextTrack"],"ImmutableListMixin":["TextTrack"],"EventTarget":[],"List":["TextTrack"],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListMixin.E":"TextTrack"},"TouchList":{"ListMixin":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListMixin.E":"Touch"},"UIEvent":{"Event":[]},"VideoTrackList":{"EventTarget":[]},"WebSocket":{"EventTarget":[]},"Window":{"WindowBase":[],"EventTarget":[]},"WorkerGlobalScope":{"EventTarget":[]},"_Attr":{"Node":[],"EventTarget":[]},"_CssRuleList":{"ListMixin":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListMixin.E":"CssRule"},"_DomRect":{"Rectangle":["num"]},"_GamepadList":{"ListMixin":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListMixin.E":"Gamepad?"},"_NamedNodeMap":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"_SpeechRecognitionResultList":{"ListMixin":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListMixin.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListMixin":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListMixin.E":"StyleSheet"},"_AttributeMap":{"MapMixin":["String","String"],"Map":["String","String"]},"_ElementAttributeMap":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"NodeValidatorBuilder":{"NodeValidator":[]},"_SimpleNodeValidator":{"NodeValidator":[]},"_TemplatingNodeValidator":{"NodeValidator":[]},"_SvgNodeValidator":{"NodeValidator":[]},"FixedSizeListIterator":{"Iterator":["1"]},"_DOMWindowCrossFrame":{"WindowBase":[],"EventTarget":[]},"_SameOriginUriPolicy":{"UriPolicy":[]},"_ValidatingTreeSanitizer":{"NodeTreeSanitizer":[]},"JsFunction":{"JsObject":[]},"JsArray":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JsObject":[],"Iterable":["1"],"ListMixin.E":"1"},"LengthList":{"ListMixin":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListMixin.E":"Length"},"NumberList":{"ListMixin":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListMixin.E":"Number"},"ScriptElement0":{"SvgElement":[],"Element":[],"Node":[],"EventTarget":[]},"StringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"SvgElement":{"Element":[],"Node":[],"EventTarget":[]},"TransformList":{"ListMixin":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListMixin.E":"Transform"},"AudioParamMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"AudioTrackList":{"EventTarget":[]},"BaseAudioContext":{"EventTarget":[]},"OfflineAudioContext":{"EventTarget":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"CopyOnWriteList":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"]},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"]},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListMixin":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","QueueList.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListMixin":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","QueueList.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int64":{"Comparable":["Object"]},"Level":{"Comparable":["Level"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"HtmlWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_HtmlWebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannel":{"StreamChannel":["@"]},"LegacyRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"ByteData":{"TypedData":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]}}')); + A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","Promise":"LegacyJavaScriptObject","JsError":"LegacyJavaScriptObject","RequireLoader":"LegacyJavaScriptObject","JsMap":"LegacyJavaScriptObject","AbortPaymentEvent":"Event","ExtendableEvent":"Event","AudioContext":"BaseAudioContext","AbsoluteOrientationSensor":"EventTarget","OrientationSensor":"EventTarget","Sensor":"EventTarget","AElement":"SvgElement","GraphicsElement":"SvgElement","_ResourceProgressEvent":"ProgressEvent","AudioElement":"HtmlElement","MediaElement":"HtmlElement","ShadowRoot":"Node","DocumentFragment":"Node","XmlDocument":"Document","VttCue":"TextTrackCue","CompositionEvent":"UIEvent","DedicatedWorkerGlobalScope":"WorkerGlobalScope","CDataSection":"CharacterData","Text":"CharacterData","MathMLElement":"Element","HttpRequestUpload":"HttpRequestEventTarget","HtmlFormControlsCollection":"HtmlCollection","CssCharsetRule":"CssRule","CssStyleSheet":"StyleSheet","JSBool":{"bool":[]},"JSNull":{"Null":[]},"LegacyJavaScriptObject":{"JSObject":[],"Promise":["1&"],"JsError":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","Iterable.E":"2"},"CastSet":{"Set":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"CastMap":{"MapMixin":["3","4"],"Map":["3","4"],"MapMixin.K":"3","MapMixin.V":"4"},"CastQueue":{"Queue":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"LateError":{"Error":[]},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_ConstantMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Function":[]},"Closure2Args":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"ByteBuffer":[]},"NativeTypedData":{"TypedData":[]},"NativeByteData":{"NativeTypedData":[],"TypedData":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"NativeTypedData":[],"TypedData":[]},"NativeTypedArrayOfDouble":{"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"NativeTypedData":[],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"NativeTypedData":[],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeFloat64List":{"ListMixin":["double"],"JavaScriptIndexingBehavior":["double"],"List":["double"],"NativeTypedData":[],"EfficientLengthIterable":["double"],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeInt16List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt32List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt8List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint16List":{"ListMixin":["int"],"Uint16List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint32List":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8ClampedList":{"ListMixin":["int"],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8List":{"ListMixin":["int"],"Uint8List":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"NativeTypedData":[],"EfficientLengthIterable":["int"],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"StreamTransformerBase":{"StreamTransformer":["1","2"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","UnmodifiableListMixin.E":"1"},"IterableBase":{"Iterable":["1"]},"ListBase":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"],"Map":["1","2"]},"MapMixin":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"ListIterable":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"_SetBase":{"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.1":"2","_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1"},"SplayTreeSet":{"SetMixin":["1"],"Set":["1"],"IterableMixin":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"_SplayTree.K":"1","_SplayTree.1":"_SplayTreeSetNode<1>"},"_JsonMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"Base64Codec":{"Codec":["List","String"],"Codec.S":"List"},"Base64Encoder":{"Converter":["List","String"],"StreamTransformer":["List","String"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"],"Codec.S":"Object?"},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Utf8Codec":{"Codec":["String","List"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"BigInt":{"Comparable":["BigInt"]},"DateTime":{"Comparable":["DateTime"]},"double":{"num":[],"Comparable":["num"]},"Duration":{"Comparable":["Duration"]},"int":{"num":[],"Comparable":["num"]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"num":{"Comparable":["num"]},"RegExp":{"Pattern":[]},"RegExpMatch":{"Match":[]},"Set":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"String":{"Comparable":["String"],"Pattern":[]},"_BigIntImpl":{"BigInt":[],"Comparable":["BigInt"]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"NullThrownError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"CyclicInitializationError":{"Error":[]},"IntegerDivisionByZeroException":{"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"CloseEvent":{"Event":[]},"Element":{"Node":[],"EventTarget":[]},"File":{"Blob":[]},"HttpRequest":{"EventTarget":[]},"KeyboardEvent":{"Event":[]},"MessageEvent":{"Event":[]},"Node":{"EventTarget":[]},"ProgressEvent":{"Event":[]},"ScriptElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"SourceBuffer":{"EventTarget":[]},"TextTrack":{"EventTarget":[]},"TextTrackCue":{"EventTarget":[]},"_Html5NodeValidator":{"NodeValidator":[]},"HtmlElement":{"Element":[],"Node":[],"EventTarget":[]},"AnchorElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"AreaElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"BaseElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"BodyElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"CharacterData":{"Node":[],"EventTarget":[]},"CustomEvent":{"Event":[]},"Document":{"Node":[],"EventTarget":[]},"DomRectList":{"ListMixin":["Rectangle"],"ImmutableListMixin":["Rectangle"],"List":["Rectangle"],"JavaScriptIndexingBehavior":["Rectangle"],"EfficientLengthIterable":["Rectangle"],"Iterable":["Rectangle"],"ImmutableListMixin.E":"Rectangle","ListMixin.E":"Rectangle"},"DomRectReadOnly":{"Rectangle":["num"]},"DomStringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"_FrozenElementList":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1"},"EventSource":{"EventTarget":[]},"FileList":{"ListMixin":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"Iterable":["File"],"ImmutableListMixin.E":"File","ListMixin.E":"File"},"FileWriter":{"EventTarget":[]},"FormElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"HtmlCollection":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"HtmlDocument":{"Document":[],"Node":[],"EventTarget":[]},"HttpRequestEventTarget":{"EventTarget":[]},"MessagePort":{"EventTarget":[]},"MidiInputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MidiOutputMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MimeTypeArray":{"ListMixin":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListMixin.E":"MimeType"},"_ChildNodeListLazy":{"ListMixin":["Node"],"List":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ListMixin.E":"Node"},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"PluginArray":{"ListMixin":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListMixin.E":"Plugin"},"RtcStatsReport":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"SelectElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"SourceBufferList":{"ListMixin":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"EventTarget":[],"List":["SourceBuffer"],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListMixin.E":"SourceBuffer"},"SpeechGrammarList":{"ListMixin":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListMixin.E":"SpeechGrammar"},"Storage":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"TableElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TableRowElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TableSectionElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TemplateElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[]},"TextTrackCueList":{"ListMixin":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListMixin.E":"TextTrackCue"},"TextTrackList":{"ListMixin":["TextTrack"],"ImmutableListMixin":["TextTrack"],"EventTarget":[],"List":["TextTrack"],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListMixin.E":"TextTrack"},"TouchList":{"ListMixin":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListMixin.E":"Touch"},"UIEvent":{"Event":[]},"VideoTrackList":{"EventTarget":[]},"WebSocket":{"EventTarget":[]},"Window":{"WindowBase":[],"EventTarget":[]},"WorkerGlobalScope":{"EventTarget":[]},"_Attr":{"Node":[],"EventTarget":[]},"_CssRuleList":{"ListMixin":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListMixin.E":"CssRule"},"_DomRect":{"Rectangle":["num"]},"_GamepadList":{"ListMixin":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListMixin.E":"Gamepad?"},"_NamedNodeMap":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"_SpeechRecognitionResultList":{"ListMixin":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListMixin.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListMixin":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListMixin.E":"StyleSheet"},"_AttributeMap":{"MapMixin":["String","String"],"Map":["String","String"]},"_ElementAttributeMap":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"NodeValidatorBuilder":{"NodeValidator":[]},"_SimpleNodeValidator":{"NodeValidator":[]},"_TemplatingNodeValidator":{"NodeValidator":[]},"_SvgNodeValidator":{"NodeValidator":[]},"FixedSizeListIterator":{"Iterator":["1"]},"_DOMWindowCrossFrame":{"WindowBase":[],"EventTarget":[]},"_SameOriginUriPolicy":{"UriPolicy":[]},"_ValidatingTreeSanitizer":{"NodeTreeSanitizer":[]},"JsFunction":{"JsObject":[]},"JsArray":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JsObject":[],"Iterable":["1"],"ListMixin.E":"1"},"LengthList":{"ListMixin":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListMixin.E":"Length"},"NumberList":{"ListMixin":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListMixin.E":"Number"},"ScriptElement0":{"SvgElement":[],"Element":[],"Node":[],"EventTarget":[]},"StringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"SvgElement":{"Element":[],"Node":[],"EventTarget":[]},"TransformList":{"ListMixin":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListMixin.E":"Transform"},"AudioParamMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"AudioTrackList":{"EventTarget":[]},"BaseAudioContext":{"EventTarget":[]},"OfflineAudioContext":{"EventTarget":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"CopyOnWriteList":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"]},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"]},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListMixin":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","QueueList.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListMixin":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","QueueList.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DebugInfoSerializer":{"StructuredSerializer":["DebugInfo"],"Serializer":["DebugInfo"]},"_$DebugInfo":{"DebugInfo":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int64":{"Comparable":["Object"]},"Level":{"Comparable":["Level"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"HtmlWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_HtmlWebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannel":{"StreamChannel":["@"]},"LegacyRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"ByteData":{"TypedData":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]}}')); A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"UnmodifiableListBase":1,"__CastListBase__CastIterableBase_ListMixin":2,"NativeTypedArray":1,"StreamTransformerBase":2,"IterableBase":1,"ListBase":1,"MapBase":2,"_ListBase_Object_ListMixin":1,"_SplayTreeSet__SplayTree_IterableMixin":1,"_SplayTreeSet__SplayTree_IterableMixin_SetMixin":1,"__SetBase_Object_SetMixin":1,"MapEntry":2,"_JsArray_JsObject_ListMixin":1,"_QueueList_Object_ListMixin":1,"StreamChannelMixin":1}')); var string$ = { Error_: "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type", @@ -25952,6 +26188,7 @@ CustomEvent: findType("CustomEvent"), DateTime: findType("DateTime"), DebugEvent: findType("DebugEvent"), + DebugInfo: findType("DebugInfo"), DevToolsRequest: findType("DevToolsRequest"), DevToolsResponse: findType("DevToolsResponse"), Document: findType("Document"), @@ -26144,6 +26381,7 @@ nullable_void_Function_BatchedDebugEventsBuilder: findType("~(BatchedDebugEventsBuilder)?"), nullable_void_Function_ConnectRequestBuilder: findType("~(ConnectRequestBuilder)?"), nullable_void_Function_DebugEventBuilder: findType("~(DebugEventBuilder)?"), + nullable_void_Function_DebugInfoBuilder: findType("~(DebugInfoBuilder)?"), nullable_void_Function_DevToolsRequestBuilder: findType("~(DevToolsRequestBuilder)?"), nullable_void_Function_Event: findType("~(Event)?"), nullable_void_Function_IsolateExitBuilder: findType("~(IsolateExitBuilder)?"), @@ -26181,6 +26419,7 @@ B.JSString_methods = J.JSString.prototype; B.JavaScriptFunction_methods = J.JavaScriptFunction.prototype; B.JavaScriptObject_methods = J.JavaScriptObject.prototype; + B.Location_methods = A.Location.prototype; B.NativeUint8List_methods = A.NativeUint8List.prototype; B.NodeList_methods = A.NodeList.prototype; B.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; @@ -26369,6 +26608,9 @@ B.Level_WARNING_900 = new A.Level("WARNING", 900); B.List_2Vk = A._setArrayType(makeConstList([0, 0, 32776, 33792, 1, 10240, 0, 0]), type$.JSArray_int); B.List_2Zi = A._setArrayType(makeConstList(["*::class", "*::dir", "*::draggable", "*::hidden", "*::id", "*::inert", "*::itemprop", "*::itemref", "*::itemscope", "*::lang", "*::spellcheck", "*::title", "*::translate", "A::accesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "AREA::accesskey", "AREA::alt", "AREA::coords", "AREA::nohref", "AREA::shape", "AREA::tabindex", "AREA::target", "AUDIO::controls", "AUDIO::loop", "AUDIO::mediagroup", "AUDIO::muted", "AUDIO::preload", "BDO::dir", "BODY::alink", "BODY::bgcolor", "BODY::link", "BODY::text", "BODY::vlink", "BR::clear", "BUTTON::accesskey", "BUTTON::disabled", "BUTTON::name", "BUTTON::tabindex", "BUTTON::type", "BUTTON::value", "CANVAS::height", "CANVAS::width", "CAPTION::align", "COL::align", "COL::char", "COL::charoff", "COL::span", "COL::valign", "COL::width", "COLGROUP::align", "COLGROUP::char", "COLGROUP::charoff", "COLGROUP::span", "COLGROUP::valign", "COLGROUP::width", "COMMAND::checked", "COMMAND::command", "COMMAND::disabled", "COMMAND::label", "COMMAND::radiogroup", "COMMAND::type", "DATA::value", "DEL::datetime", "DETAILS::open", "DIR::compact", "DIV::align", "DL::compact", "FIELDSET::disabled", "FONT::color", "FONT::face", "FONT::size", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::novalidate", "FORM::target", "FRAME::name", "H1::align", "H2::align", "H3::align", "H4::align", "H5::align", "H6::align", "HR::align", "HR::noshade", "HR::size", "HR::width", "HTML::version", "IFRAME::align", "IFRAME::frameborder", "IFRAME::height", "IFRAME::marginheight", "IFRAME::marginwidth", "IFRAME::width", "IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace", "IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width", "INPUT::accept", "INPUT::accesskey", "INPUT::align", "INPUT::alt", "INPUT::autocomplete", "INPUT::autofocus", "INPUT::checked", "INPUT::disabled", "INPUT::inputmode", "INPUT::ismap", "INPUT::list", "INPUT::max", "INPUT::maxlength", "INPUT::min", "INPUT::multiple", "INPUT::name", "INPUT::placeholder", "INPUT::readonly", "INPUT::required", "INPUT::size", "INPUT::step", "INPUT::tabindex", "INPUT::type", "INPUT::usemap", "INPUT::value", "INS::datetime", "KEYGEN::disabled", "KEYGEN::keytype", "KEYGEN::name", "LABEL::accesskey", "LABEL::for", "LEGEND::accesskey", "LEGEND::align", "LI::type", "LI::value", "LINK::sizes", "MAP::name", "MENU::compact", "MENU::label", "MENU::type", "METER::high", "METER::low", "METER::max", "METER::min", "METER::value", "OBJECT::typemustmatch", "OL::compact", "OL::reversed", "OL::start", "OL::type", "OPTGROUP::disabled", "OPTGROUP::label", "OPTION::disabled", "OPTION::label", "OPTION::selected", "OPTION::value", "OUTPUT::for", "OUTPUT::name", "P::align", "PRE::width", "PROGRESS::max", "PROGRESS::min", "PROGRESS::value", "SELECT::autocomplete", "SELECT::disabled", "SELECT::multiple", "SELECT::name", "SELECT::required", "SELECT::size", "SELECT::tabindex", "SOURCE::type", "TABLE::align", "TABLE::bgcolor", "TABLE::border", "TABLE::cellpadding", "TABLE::cellspacing", "TABLE::frame", "TABLE::rules", "TABLE::summary", "TABLE::width", "TBODY::align", "TBODY::char", "TBODY::charoff", "TBODY::valign", "TD::abbr", "TD::align", "TD::axis", "TD::bgcolor", "TD::char", "TD::charoff", "TD::colspan", "TD::headers", "TD::height", "TD::nowrap", "TD::rowspan", "TD::scope", "TD::valign", "TD::width", "TEXTAREA::accesskey", "TEXTAREA::autocomplete", "TEXTAREA::cols", "TEXTAREA::disabled", "TEXTAREA::inputmode", "TEXTAREA::name", "TEXTAREA::placeholder", "TEXTAREA::readonly", "TEXTAREA::required", "TEXTAREA::rows", "TEXTAREA::tabindex", "TEXTAREA::wrap", "TFOOT::align", "TFOOT::char", "TFOOT::charoff", "TFOOT::valign", "TH::abbr", "TH::align", "TH::axis", "TH::bgcolor", "TH::char", "TH::charoff", "TH::colspan", "TH::headers", "TH::height", "TH::nowrap", "TH::rowspan", "TH::scope", "TH::valign", "TH::width", "THEAD::align", "THEAD::char", "THEAD::charoff", "THEAD::valign", "TR::align", "TR::bgcolor", "TR::char", "TR::charoff", "TR::valign", "TRACK::default", "TRACK::kind", "TRACK::label", "TRACK::srclang", "UL::compact", "UL::type", "VIDEO::controls", "VIDEO::height", "VIDEO::loop", "VIDEO::mediagroup", "VIDEO::muted", "VIDEO::preload", "VIDEO::width"]), type$.JSArray_String); + B.Type_DebugInfo_gg4 = A.typeLiteral("DebugInfo"); + B.Type__$DebugInfo_Eoc = A.typeLiteral("_$DebugInfo"); + B.List_2mv = A._setArrayType(makeConstList([B.Type_DebugInfo_gg4, B.Type__$DebugInfo_Eoc]), type$.JSArray_Type); B.Type_DevToolsResponse_Hhy = A.typeLiteral("DevToolsResponse"); B.Type__$DevToolsResponse_23h = A.typeLiteral("_$DevToolsResponse"); B.List_41A = A._setArrayType(makeConstList([B.Type_DevToolsResponse_Hhy, B.Type__$DevToolsResponse_23h]), type$.JSArray_Type); @@ -26397,8 +26639,8 @@ B.List_Type_BuildStatus_ahk = A._setArrayType(makeConstList([B.Type_BuildStatus_ahk]), type$.JSArray_Type); B.List_WrN = A._setArrayType(makeConstList([0, 0, 1048576, 531441, 1048576, 390625, 279936, 823543, 262144, 531441, 1000000, 161051, 248832, 371293, 537824, 759375, 1048576, 83521, 104976, 130321, 160000, 194481, 234256, 279841, 331776, 390625, 456976, 531441, 614656, 707281, 810000, 923521, 1048576, 35937, 39304, 42875, 46656]), type$.JSArray_int); B.List_ego = A._setArrayType(makeConstList(["HEAD", "AREA", "BASE", "BASEFONT", "BR", "COL", "COLGROUP", "EMBED", "FRAME", "FRAMESET", "HR", "IMAGE", "IMG", "INPUT", "ISINDEX", "LINK", "META", "PARAM", "SOURCE", "STYLE", "TITLE", "WBR"]), type$.JSArray_String); - B.List_empty = A._setArrayType(makeConstList([]), type$.JSArray_String); - B.List_empty0 = A._setArrayType(makeConstList([]), type$.JSArray_dynamic); + B.List_empty0 = A._setArrayType(makeConstList([]), type$.JSArray_String); + B.List_empty = A._setArrayType(makeConstList([]), type$.JSArray_dynamic); B.Type_ExtensionRequest_BMe = A.typeLiteral("ExtensionRequest"); B.Type__$ExtensionRequest_1Ej = A.typeLiteral("_$ExtensionRequest"); B.List_evd = A._setArrayType(makeConstList([B.Type_ExtensionRequest_BMe, B.Type__$ExtensionRequest_1Ej]), type$.JSArray_Type); @@ -26428,8 +26670,8 @@ B.List_yrN = A._setArrayType(makeConstList(["A::href", "AREA::href", "BLOCKQUOTE::cite", "BODY::background", "COMMAND::icon", "DEL::cite", "FORM::action", "IMG::src", "INPUT::src", "INS::cite", "Q::cite", "VIDEO::poster"]), type$.JSArray_String); B.List_zgw = A._setArrayType(makeConstList(["d", "D", "\u2202", "\xce"]), type$.JSArray_String); B.List_empty2 = A._setArrayType(makeConstList([]), A.findType("JSArray")); - B.Map_empty0 = new A.ConstantStringMap(0, {}, B.List_empty2, A.findType("ConstantStringMap")); - B.Map_empty = new A.ConstantStringMap(0, {}, B.List_empty0, A.findType("ConstantStringMap<@,@>")); + B.Map_empty = new A.ConstantStringMap(0, {}, B.List_empty2, A.findType("ConstantStringMap")); + B.Map_empty0 = new A.ConstantStringMap(0, {}, B.List_empty, A.findType("ConstantStringMap<@,@>")); B.Symbol_call = new A.Symbol("call"); B.Type_BigInt_8OV = A.typeLiteral("BigInt"); B.Type_BoolJsonObject_8HQ = A.typeLiteral("BoolJsonObject"); @@ -26589,6 +26831,7 @@ _lazy($, "_$connectRequestSerializer", "$get$_$connectRequestSerializer", () => new A._$ConnectRequestSerializer()); _lazy($, "_$debugEventSerializer", "$get$_$debugEventSerializer", () => new A._$DebugEventSerializer()); _lazy($, "_$batchedDebugEventsSerializer", "$get$_$batchedDebugEventsSerializer", () => new A._$BatchedDebugEventsSerializer()); + _lazy($, "_$debugInfoSerializer", "$get$_$debugInfoSerializer", () => new A._$DebugInfoSerializer()); _lazy($, "_$devToolsRequestSerializer", "$get$_$devToolsRequestSerializer", () => new A._$DevToolsRequestSerializer()); _lazy($, "_$devToolsResponseSerializer", "$get$_$devToolsResponseSerializer", () => new A._$DevToolsResponseSerializer()); _lazy($, "_$errorResponseSerializer", "$get$_$errorResponseSerializer", () => new A._$ErrorResponseSerializer()); @@ -26610,6 +26853,7 @@ t1.add$1(0, $.$get$_$buildStatusSerializer()); t1.add$1(0, $.$get$_$connectRequestSerializer()); t1.add$1(0, $.$get$_$debugEventSerializer()); + t1.add$1(0, $.$get$_$debugInfoSerializer()); t1.add$1(0, $.$get$_$devToolsRequestSerializer()); t1.add$1(0, $.$get$_$devToolsResponseSerializer()); t1.add$1(0, $.$get$_$errorResponseSerializer()); diff --git a/dwds/web/client.dart b/dwds/web/client.dart index 8fc88ad35..ab2715108 100644 --- a/dwds/web/client.dart +++ b/dwds/web/client.dart @@ -8,6 +8,7 @@ library hot_reload_client; import 'dart:async'; import 'dart:convert'; import 'dart:html'; +import 'dart:js'; import 'package:built_collection/built_collection.dart'; import 'package:dwds/data/build_result.dart'; @@ -18,6 +19,7 @@ import 'package:dwds/data/error_response.dart'; import 'package:dwds/data/register_event.dart'; import 'package:dwds/data/run_request.dart'; import 'package:dwds/data/serializers.dart'; +import 'package:dwds/data/debug_info.dart'; import 'package:dwds/src/sockets.dart'; // NOTE(annagrin): using 'package:dwds/src/utilities/batched_stream.dart' // makes dart2js skip creating background.js, so we use a copy instead. @@ -171,7 +173,17 @@ Future? main() { // If not Chromium we just invoke main, devtools aren't supported. runMain(); } - dispatchEvent(CustomEvent('dart-app-ready')); + final windowContext = JsObject.fromBrowserObject(window); + final debugInfoJson = jsonEncode(serializers.serialize(DebugInfo((b) => b + ..appEntrypointPath = dartEntrypointPath + ..appId = windowContext['\$dartExtensionUri'] + ..appInstanceId = dartAppInstanceId + ..appOrigin = window.location.origin + ..appUrl = window.location.href + ..extensionUrl = windowContext['\$dartExtensionUri'] + ..isInternalBuild = windowContext['\$isInternalDartBuild']))); + + dispatchEvent(CustomEvent('dart-app-ready', detail: debugInfoJson)); }, (error, stackTrace) { print(''' Unhandled error detected in the injected client.js script. @@ -263,4 +275,7 @@ external set emitDebugEvent(void Function(String, String) func); @JS(r'$emitRegisterEvent') external set emitRegisterEvent(void Function(String) func); +@JS(r'$isInternalDartBuild') +external bool get isInternalDartBuild; + bool get _isChromium => window.navigator.vendor.contains('Google'); From aa02b2954021af650df615de56dd1ce0153760c8 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Mon, 31 Oct 2022 18:05:34 -0700 Subject: [PATCH 04/12] Extension cleanup --- dwds/debug_extension_mv3/web/background.dart | 18 +- dwds/debug_extension_mv3/web/chrome_api.dart | 209 +++---------------- dwds/debug_extension_mv3/web/dart.png | Bin 0 -> 3062 bytes dwds/debug_extension_mv3/web/manifest.json | 13 +- dwds/debug_extension_mv3/web/messaging.dart | 3 +- dwds/lib/data/debug_info.dart | 1 - 6 files changed, 51 insertions(+), 193 deletions(-) create mode 100644 dwds/debug_extension_mv3/web/dart.png diff --git a/dwds/debug_extension_mv3/web/background.dart b/dwds/debug_extension_mv3/web/background.dart index 81c0bba82..92d084474 100644 --- a/dwds/debug_extension_mv3/web/background.dart +++ b/dwds/debug_extension_mv3/web/background.dart @@ -12,7 +12,6 @@ import 'package:dwds/data/debug_info.dart'; import 'chrome_api.dart'; import 'messaging.dart'; -import 'web_api.dart'; void main() { _registerListeners(); @@ -23,8 +22,8 @@ void _registerListeners() { // Detect clicks on the Dart Debug Extension icon. chrome.action.onClicked.addListener(allowInterop((_) async { - // _keepDebugSessionAlive(); - _createTab('https://www.wikipedia.org/', inNewWindow: true); + // TODO(elliette): Start debug session instead. + _createTab('https://dart.dev/', inNewWindow: true); })); } @@ -39,19 +38,18 @@ void _handleRuntimeMessages( expectedRecipient: Script.background, messageHandler: (DebugInfo debugInfo) async { final currentTab = await _getTab(); - if (currentTab == null) return; - - final currentUrl = currentTab.url; - final appUrl = debugInfo.appUrl; - console.log('APP URL: $appUrl'); - console.log('CURRENT URL: $currentUrl'); + final currentUrl = currentTab?.url ?? ''; + final appUrl = debugInfo.appUrl ?? ''; + if (currentUrl.isEmpty || appUrl.isEmpty || currentUrl != appUrl) return; + // Update the icon to show that a Dart app has been detected: + chrome.action.setIcon(IconInfo(path: 'dart.png'), /*callback*/ null); }); } Future _createTab(String url, {bool inNewWindow = false}) async { if (inNewWindow) { final windowPromise = chrome.windows.create( - WindowInfo(focused: true, url: url, state: 'minimized'), + WindowInfo(focused: true, url: url), ); final windowObj = await promiseToFuture(windowPromise); return windowObj.tabs.first; diff --git a/dwds/debug_extension_mv3/web/chrome_api.dart b/dwds/debug_extension_mv3/web/chrome_api.dart index 643aaa24b..cbb39eedc 100644 --- a/dwds/debug_extension_mv3/web/chrome_api.dart +++ b/dwds/debug_extension_mv3/web/chrome_api.dart @@ -11,22 +11,19 @@ external Chrome get chrome; @anonymous class Chrome { external Action get action; - external Debugger get debugger; external Runtime get runtime; - external Scripting get scripting; - external Storage get storage; external Tabs get tabs; - external WebNavigation get webNavigation; external Windows get windows; } +/// chrome.action APIs +/// https://developer.chrome.com/docs/extensions/reference/action + @JS() @anonymous class Action { - // https://developer.chrome.com/docs/extensions/reference/action/#method-setIcon external void setIcon(IconInfo iconInfo, Function? callback); - // https://developer.chrome.com/docs/extensions/reference/action/#event-onClicked external OnClickedHandler get onClicked; } @@ -38,54 +35,20 @@ class OnClickedHandler { @JS() @anonymous -class Debugger { - // https://developer.chrome.com/docs/extensions/reference/debugger/#method-attach - external void attach( - Debuggee target, String requiredVersion, Function? callback); - - // https://developer.chrome.com/docs/extensions/reference/debugger/#method-detach - external void detach(Debuggee target, Function? callback); - - // https://developer.chrome.com/docs/extensions/reference/debugger/#method-sendCommand - external void sendCommand(Debuggee target, String method, - Object? commandParams, Function? callback); - - // https://developer.chrome.com/docs/extensions/reference/debugger/#event-onEvent - external OnEventHandler get onEvent; - - // https://developer.chrome.com/docs/extensions/reference/debugger/#event-onDetach - external OnDetachHandler get onDetach; -} - -@JS() -@anonymous -class OnDetachHandler { - external void addListener( - void Function(Debuggee source, String reason) callback); +class IconInfo { + external String get path; + external factory IconInfo({String path}); } -@JS() -@anonymous -class OnEventHandler { - external void addListener( - void Function(Debuggee source, String method, Object? params) callback); -} +/// chrome.runtime APIs: +/// https://developer.chrome.com/docs/extensions/reference/runtime @JS() @anonymous class Runtime { - // https://developer.chrome.com/docs/extensions/reference/runtime/#method-sendMessage external void sendMessage( String? id, Object? message, Object? options, Function? callback); - // https://developer.chrome.com/docs/extensions/reference/runtime/#method-getURL - external String getURL(String path); - - // https://developer.chrome.com/docs/extensions/reference/runtime/#property-lastError - // Note: Not checking the lastError when one occurs throws a runtime exception. - external ChromeError? get lastError; - - // https://developer.chrome.com/docs/extensions/reference/runtime/#event-onMessage external OnMessageHandler get onMessage; } @@ -98,134 +61,23 @@ class OnMessageHandler { @JS() @anonymous -class Scripting { - // https://developer.chrome.com/docs/extensions/reference/scripting/#method-executeScript - external executeScript(InjectDetails details, Function? callback); -} - -@JS() -@anonymous -class Storage { - // https://developer.chrome.com/docs/extensions/reference/storage/#type-StorageArea - external StorageArea get local; - - // https://developer.chrome.com/docs/extensions/reference/storage/#event-onChanged - external OnChangedHandler get onChanged; -} - -@JS() -@anonymous -class StorageArea { - external Object get(List keys, void Function(Object result) callback); - - external Object set(Object items, void Function()? callback); - - external void remove(List keys, void Function()? callback); - - external Object clear(void Function()? callback); +class MessageSender { + external String? get id; + external Tab? get tab; + external String? get url; + external factory MessageSender({String? id, String? url, Tab? tab}); } -@JS() -@anonymous -class OnChangedHandler { - external void addListener(void Function(Object, String) callback); -} +/// chrome.tabs APIs +/// https://developer.chrome.com/docs/extensions/reference/tabs @JS() @anonymous class Tabs { - // https://developer.chrome.com/docs/extensions/reference/tabs/#method-query external Object query(QueryInfo queryInfo); - // https://developer.chrome.com/docs/extensions/reference/tabs/#method-create - external Object create(TabInfo tabInfo); - -// https://developer.chrome.com/docs/extensions/reference/tabs/#method-get - external Object get(int tabId); - - external void remove(List tabIds, void Function()? callback); - - // https://developer.chrome.com/docs/extensions/reference/tabs/#event-onRemoved - external OnRemovedHandler get onRemoved; -} - -@JS() -@anonymous -class OnRemovedHandler { - external void addListener( - void Function(int tabId, RemoveInfo removeInfo) callback); -} - -@JS() -@anonymous -class RemoveInfo { - external int get windowId; - external bool get isWindowClosing; -} - -@JS() -@anonymous -class WebNavigation { - // https://developer.chrome.com/docs/extensions/reference/webNavigation/#event-onCommitted - external OnCommittedHandler get onCommitted; - - external OnCommittedHandler get onBeforeNavigate; -} - -@JS() -@anonymous -class OnCommittedHandler { - external void addListener(void Function(NavigationInfo details) callback); -} - -@JS() -@anonymous -class NavigationInfo { - external String get transitionType; - external int get tabId; -} - -@JS() -@anonymous -class Windows { - external Object create(WindowInfo? createData); -} - -@JS() -@anonymous -class WindowInfo { - external bool? get focused; - external String? get url; - external String? get state; - external factory WindowInfo({bool? focused, String? state, String? url}); -} - -@JS() -@anonymous -class WindowObj { - external int get id; - external List get tabs; -} - - - -@JS() -@anonymous -class Debuggee { - external int get tabId; - external String get extensionId; - external String get targetId; - external factory Debuggee({int tabId, String? extensionId, String? targetId}); -} - -@JS() -@anonymous -class MessageSender { - external String? get id; - external Tab? get tab; - external String? get url; - external factory MessageSender({String? id, String? url, Tab? tab}); + external Object create(TabInfo tabInfo); } @JS() @@ -253,29 +105,26 @@ class Tab { external String get url; } -@JS() -@anonymous -class InjectDetails { - external Target get target; - external List? get files; - external factory InjectDetails({Target target, List files}); -} +/// chrome.windows APIs +/// https://developer.chrome.com/docs/extensions/reference/windows @JS() @anonymous -class Target { - external int get tabId; - external factory Target({int tabId}); +class Windows { + external Object create(WindowInfo? createData); } @JS() -class ChromeError { - external String get message; +@anonymous +class WindowInfo { + external bool? get focused; + external String? get url; + external factory WindowInfo({bool? focused, String? url}); } @JS() @anonymous -class IconInfo { - external String get path; - external factory IconInfo({String path}); -} \ No newline at end of file +class WindowObj { + external int get id; + external List get tabs; +} diff --git a/dwds/debug_extension_mv3/web/dart.png b/dwds/debug_extension_mv3/web/dart.png new file mode 100644 index 0000000000000000000000000000000000000000..47e4b7b7d07ff239ac5f597a730ec6dd2c5f278e GIT binary patch literal 3062 zcmWlbX&}`57skK8S(q72V{1y5q3ne&E?W4F#xh(>l4NgJc9Z2s{DzS($=tX|mLV#s zNo6OENjs4xg|ZZBYV2DK{{An{b6%V`=Q*F}#renC(MF1(KmY(p(QRoi8y(rGi#V|j zJ@-d|Bmfdm=rpQpw2v^~`?B{D`Io)*uUr0^r_z;at`!6q`R2HeI7;JTly%zZ`++HzM{zRfp_QNPch4z!1TPeus<(3Rc5#?V4+ED zwtaw^9kinTY`zV^Wsd3o^Cu6I*37+li~sg#S01|$nMS)kx&2rob~7V>TjcbMYv=3< zG z7E!V+L$Z%J{KgL&lsW%bYO@X&4sp1Mkry=|Z=&iQ21k;;2V_qgyrt?uyiT(!ptQyF zo$=i0wnV)zqzldy(WPRXnp;^1n-2}p|GTr=Lw%jk$po>Y8bPozvoOon_J%W8s^0WW z7qdOU9?L6Y2&PKV7K>)X3CnuBFr|PK<@PzXVTeW@VJTE+lH>@yPWOvaph?M&DRbqq z+4#tWOv^(hOV$71gA5I=oU)@;xXT3+iJ9UF9AM-TooGPI5uJvju!(vnI215vEs%zz zwO;w1dZn{V%y|5G@`r9;-3PgIFYL&Xi-M^q#Bcf*J~4WUve7-K{uWAAtv&W-ruS+; zJZYgyQHi_xlE(PnO1w9Xf z*16(?7??oqVVTIbMWBCC0?oq;$qosqj-x^+lNM9pg}b}6NfG0kp*blL88wtwZ7VVY zcSzkUh?XQBy!MZ=`dPA`!0ys+Qc8I>wN5NnmA%o}b;fR*@G{0hEWcD*}J$l2iZ#ao^L*Y`Fx}%6hG=co&yVGQGNYcWdYf1F<~IdNMa&|Y`na64^ulU6WIQu; zb$1P^*8JiemiC@x3Q_2>Dd-lfM@hV@@w2rJmx^q01T@8ACmvJ8dde-1s&$aVGL6C6 za*Man4CX7$?#)hpvZs90kzgJKzx;YvLrWcWH6-Tca{Pxc)>5TO?$Cx&Uo_Hf;(6_A zf*HS*%KP!G2K~!)CZa-}b&0nbY1MuSv2kZCDRt&MK>y-W7KO!vB>}f!NjKq*C{mIP zX#Lc~Em06e1~+nHN!V?gtlo^_S;I=-E+Eg;dV`N0qFhRVF@UQWzgaq@-QFF8++PYY z-y0g^o=JY1`qW;P4JctKX^`0y@sb zQg5{nK0{=;?Ry!IXU5xz!pPhoUqzg(VbLII|?|S{{-UvL?s|u%yOe9(!ZA9IiDr=m#IW zG09|12zt@-5TaZ|Aj#ojMU+0E=|_iG0~ZQyHdyteovVWXY_>lCr&D}H?#w`=jmoUr zSX|#de{gpQqw2+Z4>riSY;r|`*Me+Qm@5_b>o%t$kwglWpazKFL4&i7q-00uoJsip z6;RRxl_##AUQ=c{<~FJ{~~q+{_8SMs--~})Y_xMhh`Q|iZ5#_M>R|~a3|EqLQ;ul`!DgENiW}kgJtKZOPyH>v76cyMGpTc$vCsg~S8oSH4j9T?e6-8V zbNwSy72%>kG5b^o85axDa&_1ohC_IQHN>u5zEOcaN$o&6-^_sTcF`Pp@)j*?7D|b~ z<0y4vT5q6gW#y#bHcDsmqmOS%?~8&yqK1%+eYoQPoXj*0o(-p{6oZrdCBsL7r|t#a zwoC@XCi)Sq|5kX#`G$dY!x}`(ne2p(@GUY|%5$x~v}A$D$bj0I_=30Jnq+faH*KKS28Y8T zuB>fK_Psbw&`RkT6t9@y`l!*co29N9hTMgCOc;gy>~ZQt{k1FT3n>fbY=he|vf{oP z2wH{6Pt>2F8;>emDus9hL{rkoxPv8rz4(JGr>_3%y2TEfI<~GRZZJXoQ<^Edd8rz> zzQ>LjQ*EbbQ=Zz|bb7-IW1hZprM9VEqfuCLQ{{EYUz44pU$sU7%KLRi4>(qny=ot&4bdk}C?iE*ri2oLwnz*%zOaB`p5C zFSSGw7n?fS3Kg>=+*bONt)_Qqte$K=ufEs0gG$yj8l2cZx$8Iq<1%fwFsX=?adcM$ zF88iSvYo)2N9y13Aud^1s@C)qV9-zG0$!fkuo3X8gN@t{2J@sXQjDb%-k{kS>Sn-I z#r?p^3_s4Jlq`Kw^oud(&OK1$Pn0wuB@Vq-``I5KbSe47tGyIHeTBD7om4`OI)rYO zUKsdY=hXZ*qh{>%J2GaBHxR_H8luyex=y5jAJZsj&T(D~cCZz8bLV_*Sihh7ni77p z3e)fqWV}EUs!e}zdP8BSsI)*=ghMkk4{yf!G}2bCGjG8pa=HXFZHWry1c|RV{3vK2 zn?xI)6A-Dn(XP0_=bMO#@|4i`_xy_nqTa7j_khnZ2WP`XI-Pt961%}Pg;)?5F{}1V z)xvHe>_$%Z7T@^qm$R_Y?ZSI?awvp2{_M8NS}9my$atU9WD~M5%*qEPUSu(ZICh{t z&>NULETVk$2Ss9v!6* zmnA^sQ~JnQThG2r-2LDX&id|W;%V2GLaNdKqaY%J;5JXCh_#qb^qm*LAknYn=d(Sj zc}6w&G}F^ieqzlMVCwxXn7#P1E)4h&$DD{zhJwotF@N)I7$G}=AujG85cNSCb$98) zL>ktwT1kWg=10jmQ@+U;s2DS6eeMcQ;_xL{Emi_4iVktupG3$i7h|SP?E<^2$Tos# z@!_>c2Zk)qGp?p_p^@W@F9bFqG<|KI-(GQ|xo&e)1d>_$Wn1|n5ZWSQNE@ydB zfMnqDw4OyUWPh}u8K7l}|AK-CzQt^xH=x93d~AHw<{|!y9UNBDl#27^-m7QvJVE%i zN>jH%OC*F8e)P4*E`a&8*+u}-mQ;(*j^" + ], + "js": [ + "detector.dart.js" + ], + "run_at": "document_end" + } + ] } \ No newline at end of file diff --git a/dwds/debug_extension_mv3/web/messaging.dart b/dwds/debug_extension_mv3/web/messaging.dart index 05c3f58d7..020e8cde1 100644 --- a/dwds/debug_extension_mv3/web/messaging.dart +++ b/dwds/debug_extension_mv3/web/messaging.dart @@ -82,7 +82,8 @@ void interceptMessage({ decodedMessage.from != expectedSender) { return; } - messageHandler(serializers.deserialize(decodedMessage.encodedBody) as T); + messageHandler( + serializers.deserialize(jsonDecode(decodedMessage.encodedBody)) as T); } catch (error) { console.warn( 'Error intercepting $expectedType from $expectedSender to $expectedRecipient: $error'); diff --git a/dwds/lib/data/debug_info.dart b/dwds/lib/data/debug_info.dart index 3be8d827b..41ac51b39 100644 --- a/dwds/lib/data/debug_info.dart +++ b/dwds/lib/data/debug_info.dart @@ -2,7 +2,6 @@ // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. -import 'package:built_collection/built_collection.dart'; import 'package:built_value/built_value.dart'; import 'package:built_value/serializer.dart'; From 35cd0c37036ebd49009cb5b32e709ce24c4fcc99 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:00:49 -0700 Subject: [PATCH 05/12] Format and rebuild --- dwds/debug_extension_mv3/web/chrome_api.dart | 2 +- dwds/debug_extension_mv3/web/detector.dart | 2 +- dwds/debug_extension_mv3/web/messaging.dart | 2 +- dwds/lib/src/handlers/injector.dart | 17 +- dwds/lib/src/injected/client.js | 502 ++++++++----------- 5 files changed, 221 insertions(+), 304 deletions(-) diff --git a/dwds/debug_extension_mv3/web/chrome_api.dart b/dwds/debug_extension_mv3/web/chrome_api.dart index 2686e711a..ba1e5d819 100644 --- a/dwds/debug_extension_mv3/web/chrome_api.dart +++ b/dwds/debug_extension_mv3/web/chrome_api.dart @@ -90,4 +90,4 @@ class QueryInfo { class Tab { external int get id; external String get url; -} \ No newline at end of file +} diff --git a/dwds/debug_extension_mv3/web/detector.dart b/dwds/debug_extension_mv3/web/detector.dart index 666028aca..906e3576b 100644 --- a/dwds/debug_extension_mv3/web/detector.dart +++ b/dwds/debug_extension_mv3/web/detector.dart @@ -49,4 +49,4 @@ void _sendMessageToBackgroundScript({ /*options*/ null, /*callback*/ null, ); -} \ No newline at end of file +} diff --git a/dwds/debug_extension_mv3/web/messaging.dart b/dwds/debug_extension_mv3/web/messaging.dart index 86f9bcd30..7879dd229 100644 --- a/dwds/debug_extension_mv3/web/messaging.dart +++ b/dwds/debug_extension_mv3/web/messaging.dart @@ -88,4 +88,4 @@ void interceptMessage({ console.warn( 'Error intercepting $expectedType from $expectedSender to $expectedRecipient: $error'); } -} \ No newline at end of file +} diff --git a/dwds/lib/src/handlers/injector.dart b/dwds/lib/src/handlers/injector.dart index 71c1824c2..2f572cfef 100644 --- a/dwds/lib/src/handlers/injector.dart +++ b/dwds/lib/src/handlers/injector.dart @@ -162,15 +162,14 @@ String _injectClientAndHoistMain( // application to be in a ready state, that is the main function is hoisted // and the Dart SDK is loaded. final injectedClientSnippet = _injectedClientSnippet( - appId, - devHandlerPath, - entrypointPath, - extensionUri, - loadStrategy, - enableDevtoolsLaunch, - emitDebugEvents, - isInternalBuild - ); + appId, + devHandlerPath, + entrypointPath, + extensionUri, + loadStrategy, + enableDevtoolsLaunch, + emitDebugEvents, + isInternalBuild); result += ''' // Injected by dwds for debugging support. if(!window.\$dwdsInitialized) { diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js index 56edcefc3..794e0915b 100644 --- a/dwds/lib/src/injected/client.js +++ b/dwds/lib/src/injected/client.js @@ -1,4 +1,4 @@ -// Generated by dart2js (NullSafetyMode.sound, csp, deferred-serialization, intern-composite-values), the Dart to JavaScript compiler version: 2.19.0-331.0.dev. +// Generated by dart2js (NullSafetyMode.sound, deferred-serialization, csp), the Dart to JavaScript compiler version: 2.18.3. // The code supports the following hooks: // dartPrint(message): // if this function is defined it is called instead of the Dart [print] @@ -1916,7 +1916,7 @@ var kind = rti._kind; if (kind === 6 || kind === 7 || kind === 8) return A.Rti__isUnionOfFunctionType(rti._primary); - return kind === 12 || kind === 13; + return kind === 11 || kind === 12; }, Rti__getCanonicalRecipe(rti) { return rti._canonicalRecipe; @@ -1966,7 +1966,7 @@ if (substitutedBase === base && substitutedArguments === $arguments) return rti; return A._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments); - case 12: + case 11: returnType = rti._primary; substitutedReturnType = A._substitute(universe, returnType, typeArguments, depth); functionParameters = rti._rest; @@ -1974,7 +1974,7 @@ if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters) return rti; return A._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters); - case 13: + case 12: bounds = rti._rest; depth += bounds.length; substitutedBounds = A._substituteArray(universe, bounds, typeArguments, depth); @@ -1983,7 +1983,7 @@ if (substitutedBounds === bounds && substitutedBase === base) return rti; return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true); - case 14: + case 13: index = rti._primary; if (index < depth) return rti; @@ -2199,10 +2199,7 @@ if (!(testRti === type$.legacy_Object)) if (!(testRti === type$.legacy_Never)) if (kind !== 7) - if (!(kind === 6 && A._nullIs(testRti._primary))) - t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull; - else - t1 = true; + t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull; else t1 = true; else @@ -2416,26 +2413,6 @@ s += sep + A._rtiToString(array[i], genericContext); return s; }, - _recordRtiToString(recordType, genericContext) { - var fieldCount, names, namesIndex, s, comma, i, - partialShape = recordType._primary, - fields = recordType._rest; - if ("" === partialShape) - return "(" + A._rtiArrayToString(fields, genericContext) + ")"; - fieldCount = fields.length; - names = partialShape.split(","); - namesIndex = names.length - fieldCount; - for (s = "(", comma = "", i = 0; i < fieldCount; ++i, comma = ", ") { - s += comma; - if (namesIndex === 0) - s += "{"; - s += A._rtiToString(fields[i], genericContext); - if (namesIndex >= 0) - s += " " + names[namesIndex]; - ++namesIndex; - } - return s + "})"; - }, _functionRtiToString(functionType, genericContext, bounds) { var boundsLength, outerContextLength, offset, i, t1, t2, typeParametersText, typeSep, t3, t4, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", "; if (bounds != null) { @@ -2525,7 +2502,7 @@ questionArgument = rti._primary; s = A._rtiToString(questionArgument, genericContext); argumentKind = questionArgument._kind; - return (argumentKind === 12 || argumentKind === 13 ? "(" + s + ")" : s) + "?"; + return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?"; } if (kind === 8) return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">"; @@ -2535,12 +2512,10 @@ return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name; } if (kind === 11) - return A._recordRtiToString(rti, genericContext); - if (kind === 12) return A._functionRtiToString(rti, genericContext, null); - if (kind === 13) + if (kind === 12) return A._functionRtiToString(rti._primary, genericContext, rti._rest); - if (kind === 14) { + if (kind === 13) { t1 = rti._primary; t2 = genericContext.length; t1 = t2 - 1 - t1; @@ -2748,7 +2723,7 @@ if (probe != null) return probe; rti = new A.Rti(null, null); - rti._kind = 14; + rti._kind = 13; rti._primary = index; rti._canonicalRecipe = key; t1 = A._Universe__installTypeTests(universe, rti); @@ -2813,21 +2788,6 @@ universe.eC.set(key, t1); return t1; }, - _Universe__lookupRecordRti(universe, partialShapeTag, fields) { - var rti, t1, - key = "+" + (partialShapeTag + "(" + A._Universe__canonicalRecipeJoin(fields) + ")"), - probe = universe.eC.get(key); - if (probe != null) - return probe; - rti = new A.Rti(null, null); - rti._kind = 11; - rti._primary = partialShapeTag; - rti._rest = fields; - rti._canonicalRecipe = key; - t1 = A._Universe__installTypeTests(universe, rti); - universe.eC.set(key, t1); - return t1; - }, _Universe__lookupFunctionRti(universe, returnType, parameters) { var sep, key, probe, rti, t1, s = returnType._canonicalRecipe, @@ -2851,7 +2811,7 @@ if (probe != null) return probe; rti = new A.Rti(null, null); - rti._kind = 12; + rti._kind = 11; rti._primary = returnType; rti._rest = parameters; rti._canonicalRecipe = key; @@ -2888,7 +2848,7 @@ } } rti = new A.Rti(null, null); - rti._kind = 13; + rti._kind = 12; rti._primary = baseFunctionType; rti._rest = bounds; rti._canonicalRecipe = key; @@ -2898,7 +2858,7 @@ return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize}; }, _Parser_parse(parser) { - var t2, i, ch, t3, array, head, base, end, item, + var t2, i, ch, t3, array, head, base, parameters, optionalPositional, named, item, source = parser.r, t1 = parser.s; for (t2 = source.length, i = 0; i < t2;) { @@ -2950,7 +2910,7 @@ else { base = A._Parser_toType(t3, parser.e, head); switch (base._kind) { - case 12: + case 11: t1.push(A._Universe__lookupGenericFunctionRti(t3, base, array, parser.n)); break; default: @@ -2975,12 +2935,36 @@ t1.push(A._Universe__lookupFutureOrRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n)); break; case 40: - t1.push(-3); t1.push(parser.p); parser.p = t1.length; break; case 41: - A._Parser_handleArguments(parser, t1); + t3 = parser.u; + parameters = new A._FunctionParameters(); + optionalPositional = t3.sEA; + named = t3.sEA; + head = t1.pop(); + if (typeof head == "number") + switch (head) { + case -1: + optionalPositional = t1.pop(); + break; + case -2: + named = t1.pop(); + break; + default: + t1.push(head); + break; + } + else + t1.push(head); + array = t1.splice(parser.p); + A._Parser_toTypes(parser.u, parser.e, array); + parser.p = t1.pop(); + parameters._requiredPositional = array; + parameters._optionalPositional = optionalPositional; + parameters._named = named; + t1.push(A._Universe__lookupFunctionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parameters)); break; case 91: t1.push(parser.p); @@ -3004,14 +2988,6 @@ t1.push(array); t1.push(-2); break; - case 43: - end = source.indexOf("(", i); - t1.push(source.substring(i, end)); - t1.push(-4); - t1.push(parser.p); - parser.p = t1.length; - i = end + 1; - break; default: throw "Bad character " + ch; } @@ -3064,54 +3040,6 @@ stack.push(string); return i; }, - _Parser_handleArguments(parser, stack) { - var optionalPositional, named, requiredPositional, returnType, parameters, _null = null, - t1 = parser.u, - head = stack.pop(); - if (typeof head == "number") - switch (head) { - case -1: - optionalPositional = stack.pop(); - named = _null; - break; - case -2: - named = stack.pop(); - optionalPositional = _null; - break; - default: - stack.push(head); - named = _null; - optionalPositional = named; - break; - } - else { - stack.push(head); - named = _null; - optionalPositional = named; - } - requiredPositional = A._Parser_collectArray(parser, stack); - head = stack.pop(); - switch (head) { - case -3: - head = stack.pop(); - if (optionalPositional == null) - optionalPositional = t1.sEA; - if (named == null) - named = t1.sEA; - returnType = A._Parser_toType(t1, parser.e, head); - parameters = new A._FunctionParameters(); - parameters._requiredPositional = requiredPositional; - parameters._optionalPositional = optionalPositional; - parameters._named = named; - stack.push(A._Universe__lookupFunctionRti(t1, returnType, parameters)); - return; - case -4: - stack.push(A._Universe__lookupRecordRti(t1, stack.pop(), requiredPositional)); - return; - default: - throw A.wrapException(A.AssertionError$("Unexpected state under `()`: " + A.S(head))); - } - }, _Parser_handleExtendedOperations(parser, stack) { var $top = stack.pop(); if (0 === $top) { @@ -3124,19 +3052,12 @@ } throw A.wrapException(A.AssertionError$("Unexpected extended operation " + A.S($top))); }, - _Parser_collectArray(parser, stack) { - var array = stack.splice(parser.p); - A._Parser_toTypes(parser.u, parser.e, array); - parser.p = stack.pop(); - return array; - }, _Parser_toType(universe, environment, item) { if (typeof item == "string") return A._Universe__lookupInterfaceRti(universe, item, universe.sEA); - else if (typeof item == "number") { - environment.toString; + else if (typeof item == "number") return A._Parser_indexToType(universe, environment, item); - } else + else return item; }, _Parser_toTypes(universe, environment, items) { @@ -3197,7 +3118,7 @@ t1 = true; if (t1) return true; - leftTypeVariable = sKind === 14; + leftTypeVariable = sKind === 13; if (leftTypeVariable) if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv)) return true; @@ -3241,13 +3162,13 @@ } if (leftTypeVariable) return false; - t1 = sKind !== 12; - if ((!t1 || sKind === 13) && t === type$.Function) + t1 = sKind !== 11; + if ((!t1 || sKind === 12) && t === type$.Function) return true; - if (tKind === 13) { + if (tKind === 12) { if (s === type$.JavaScriptFunction) return true; - if (sKind !== 13) + if (sKind !== 12) return false; sBounds = s._rest; tBounds = t._rest; @@ -3264,7 +3185,7 @@ } return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv); } - if (tKind === 12) { + if (tKind === 11) { if (s === type$.JavaScriptFunction) return true; if (t1) @@ -3276,11 +3197,6 @@ return false; return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv); } - t1 = sKind === 11; - if (t1 && t === type$.Record) - return true; - if (t1 && tKind === 11) - return A._isRecordSubtype(universe, s, sEnv, t, tEnv); return false; }, _isFunctionSubtype(universe, s, sEnv, t, tEnv) { @@ -3388,20 +3304,6 @@ } return true; }, - _isRecordSubtype(universe, s, sEnv, t, tEnv) { - var i, - sFields = s._rest, - tFields = t._rest, - sCount = sFields.length; - if (sCount !== tFields.length) - return false; - if (s._primary !== t._primary) - return false; - for (i = 0; i < sCount; ++i) - if (!A._isSubtype(universe, sFields[i], sEnv, tFields[i], tEnv)) - return false; - return true; - }, isNullable(t) { var t1, kind = t._kind; @@ -5088,8 +4990,8 @@ } return string; }, - NoSuchMethodError$_(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames) { - return new A.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments, existingArgumentNames); + NoSuchMethodError$(receiver, memberName, positionalArguments, namedArguments) { + return new A.NoSuchMethodError(receiver, memberName, positionalArguments, namedArguments); }, _Uri__uriEncode(canonicalTable, text, encoding, spaceToPlus) { var t1, bytes, i, t2, byte, t3, @@ -6593,8 +6495,7 @@ b = t2.call$2(10, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_, 18); - t3.call$3(b, _s1_1, 10); - t3.call$3(b, _s1_2, 234); + t3.call$3(b, _s2_, 234); t3.call$3(b, _s1_3, 172); t3.call$3(b, _s1_4, 205); b = t2.call$2(18, 235); @@ -6611,7 +6512,7 @@ b = t2.call$2(11, 235); t3.call$3(b, _s77_, 11); t3.call$3(b, _s1_1, 10); - t3.call$3(b, _s1_2, 234); + t3.call$3(b, _s2_, 234); t3.call$3(b, _s1_3, 172); t3.call$3(b, _s1_4, 205); b = t2.call$2(12, 236); @@ -6717,13 +6618,12 @@ _.name = t3; _.message = t4; }, - NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3, t4) { + NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3) { var _ = this; _._core$_receiver = t0; _._core$_memberName = t1; _._core$_arguments = t2; _._namedArguments = t3; - _._existingArgumentNames = t4; }, UnsupportedError: function UnsupportedError(t0) { this.message = t0; @@ -6862,9 +6762,9 @@ var t1, exception, result = "element tag unavailable"; try { - t1 = element.tagName; - t1.toString; - result = t1; + t1 = J.getInterceptor$x(element); + t1.get$tagName(element); + result = t1.get$tagName(element); } catch (exception) { } return result; @@ -7125,8 +7025,6 @@ }, SelectElement: function SelectElement() { }, - SharedArrayBuffer: function SharedArrayBuffer() { - }, SourceBuffer: function SourceBuffer() { }, SourceBufferList: function SourceBufferList() { @@ -7441,8 +7339,8 @@ _AcceptStructuredClone: function _AcceptStructuredClone() { }, _AcceptStructuredClone_walk_closure: function _AcceptStructuredClone_walk_closure(t0, t1) { - this.$this = t0; - this.map = t1; + this._box_0 = t0; + this.$this = t1; }, _convertDartToNative_Value_closure: function _convertDartToNative_Value_closure(t0) { this.array = t0; @@ -7916,10 +7814,8 @@ hash ^= hash >>> 11; return hash + ((hash & 16383) << 15) & 536870911; }, - BuiltValueNullFieldError_checkNotNull(value, type, field, $T) { - if (value == null) - throw A.wrapException(new A.BuiltValueNullFieldError(type, field)); - return value; + BuiltValueNullFieldError$(type, field) { + return new A.BuiltValueNullFieldError(type, field); }, BuiltValueNestedFieldError$(type, field, error) { return new A.BuiltValueNestedFieldError(type, field, error); @@ -9354,7 +9250,7 @@ }, noSuchMethod$1(receiver, invocation) { type$.Invocation._as(invocation); - throw A.wrapException(new A.NoSuchMethodError(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments(), null)); + throw A.wrapException(A.NoSuchMethodError$(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); }, get$runtimeType(receiver) { return A.getRuntimeType(receiver); @@ -9637,6 +9533,7 @@ return receiver[index]; }, $indexSet(receiver, index, value) { + A._asInt(index); A._arrayInstanceType(receiver)._precomputed1._as(value); if (!!receiver.immutable$list) A.throwExpression(A.UnsupportedError$("indexed set")); @@ -10081,7 +9978,7 @@ }, $indexSet(_, index, value) { var t1 = this.$ti; - J.$indexSet$ax(this.__internal$_source, index, t1._precomputed1._as(t1._rest[1]._as(value))); + J.$indexSet$ax(this.__internal$_source, A._asInt(index), t1._precomputed1._as(t1._rest[1]._as(value))); }, sort$1(_, compare) { var t1; @@ -10517,6 +10414,7 @@ A.FixedLengthListMixin.prototype = {}; A.UnmodifiableListMixin.prototype = { $indexSet(_, index, value) { + A._asInt(index); A._instanceType(this)._eval$1("UnmodifiableListMixin.E")._as(value); throw A.wrapException(A.UnsupportedError$("Cannot modify an unmodifiable list")); }, @@ -11319,6 +11217,7 @@ return receiver[index]; }, $indexSet(receiver, index, value) { + A._asInt(index); A._asDouble(value); A._checkValidIndex(index, receiver, receiver.length); receiver[index] = value; @@ -11329,6 +11228,7 @@ }; A.NativeTypedArrayOfInt.prototype = { $indexSet(receiver, index, value) { + A._asInt(index); A._asInt(value); A._checkValidIndex(index, receiver, receiver.length); receiver[index] = value; @@ -16189,7 +16089,7 @@ }, noSuchMethod$1(_, invocation) { type$.Invocation._as(invocation); - throw A.wrapException(A.NoSuchMethodError$_(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments(), null)); + throw A.wrapException(A.NoSuchMethodError$(this, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments())); }, get$runtimeType(_) { return A.getRuntimeType(this); @@ -16703,6 +16603,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Rectangle_num._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -16801,6 +16702,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); A._asString(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -16841,6 +16743,7 @@ return this.$ti._precomputed1._as(t1[index]); }, $indexSet(_, index, value) { + A._asInt(index); this.$ti._precomputed1._as(value); throw A.wrapException(A.UnsupportedError$("Cannot modify list")); }, @@ -16957,6 +16860,11 @@ set$_innerHtml(receiver, value) { receiver.innerHTML = value; }, + get$tagName(receiver) { + var t1 = receiver.tagName; + t1.toString; + return t1; + }, $isElement: 1 }; A.Element_Element$html_closure.prototype = { @@ -17001,6 +16909,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.File._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17058,6 +16967,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17260,6 +17170,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.MimeType._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17319,6 +17230,7 @@ }, $indexSet(_, index, value) { var t1, t2; + A._asInt(index); type$.Node._as(value); t1 = this._this; t2 = t1.childNodes; @@ -17380,6 +17292,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17424,6 +17337,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Plugin._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17502,7 +17416,6 @@ return receiver.length; } }; - A.SharedArrayBuffer.prototype = {$isSharedArrayBuffer: 1}; A.SourceBuffer.prototype = {$isSourceBuffer: 1}; A.SourceBufferList.prototype = { get$length(receiver) { @@ -17520,6 +17433,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.SourceBuffer._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17559,6 +17473,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.SpeechGrammar._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17710,6 +17625,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.TextTrackCue._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17748,6 +17664,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.TextTrack._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17794,6 +17711,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Touch._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17877,6 +17795,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.CssRule._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -17988,6 +17907,7 @@ return receiver[index]; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.nullable_Gamepad._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -18022,6 +17942,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Node._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -18060,6 +17981,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.SpeechRecognitionResult._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -18098,6 +18020,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.StyleSheet._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -18680,7 +18603,7 @@ return e; if (type$.ImageData._is(e)) return e; - if (type$.NativeByteBuffer._is(e) || type$.NativeTypedData._is(e) || type$.MessagePort._is(e) || type$.SharedArrayBuffer._is(e)) + if (type$.NativeByteBuffer._is(e) || type$.NativeTypedData._is(e) || type$.MessagePort._is(e)) return e; if (type$.Map_dynamic_dynamic._is(e)) { slot = _this.findSlot$1(e); @@ -18760,7 +18683,7 @@ return $length; }, walk$1(e) { - var t1, slot, copy, t2, map, t3, $length, t4, i, _this = this; + var t1, slot, copy, t2, t3, $length, t4, i, _this = this, _box_0 = {}; if (e == null) return e; if (A._isBool(e)) @@ -18789,14 +18712,15 @@ t1 = _this.copies; if (!(slot < t1.length)) return A.ioore(t1, slot); - copy = t1[slot]; + copy = _box_0.copy = t1[slot]; if (copy != null) return copy; t2 = type$.dynamic; - map = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); - B.JSArray_methods.$indexSet(t1, slot, map); - _this.forEachJsField$2(e, new A._AcceptStructuredClone_walk_closure(_this, map)); - return map; + copy = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); + _box_0.copy = copy; + B.JSArray_methods.$indexSet(t1, slot, copy); + _this.forEachJsField$2(e, new A._AcceptStructuredClone_walk_closure(_box_0, _this)); + return _box_0.copy; } t1 = e instanceof Array; t1.toString; @@ -18832,9 +18756,10 @@ }; A._AcceptStructuredClone_walk_closure.prototype = { call$2(key, value) { - var t1 = this.$this.walk$1(value); - this.map.$indexSet(0, key, t1); - return t1; + var t1 = this._box_0.copy, + t2 = this.$this.walk$1(value); + J.$indexSet$ax(t1, key, t2); + return t2; }, $signature: 40 }; @@ -18941,6 +18866,7 @@ return A._convertToDart(this._jsObject[property]); }, $indexSet(_, property, value) { + type$.Object._as(property); if (typeof property != "string" && typeof property != "number") throw A.wrapException(A.ArgumentError$("property is not a String or num", null)); this._jsObject[property] = A._convertToJS(value); @@ -18992,7 +18918,9 @@ return this.$ti._precomputed1._as(this.super$JsObject$$index(0, index)); }, $indexSet(_, index, value) { - this._checkIndex$1(index); + type$.Object._as(index); + if (A._isInt(index)) + this._checkIndex$1(index); this.super$_JsArray_JsObject_ListMixin$$indexSet(0, index, value); }, get$length(_) { @@ -19011,7 +18939,7 @@ }; A._JsArray_JsObject_ListMixin.prototype = { $indexSet(_, property, value) { - return this.super$JsObject$$indexSet(0, property, value); + return this.super$JsObject$$indexSet(0, type$.Object._as(property), value); } }; A.promiseToFuture_closure.prototype = { @@ -19127,6 +19055,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Length._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19166,6 +19095,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Number._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19210,6 +19140,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); A._asString(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19271,6 +19202,7 @@ return t1; }, $indexSet(receiver, index, value) { + A._asInt(index); type$.Transform._as(value); throw A.wrapException(A.UnsupportedError$("Cannot assign element of immutable List.")); }, @@ -19580,6 +19512,7 @@ return this.toList$1$growable($receiver, true); }, $indexSet(_, index, element) { + A._asInt(index); this.$ti._precomputed1._as(element); this._maybeCopyBeforeWrite$0(); J.$indexSet$ax(this._copy_on_write_list$_list, index, element); @@ -22041,6 +21974,7 @@ }, $indexSet(_, index, value) { var _this = this; + A._asInt(index); A._instanceType(_this)._eval$1("QueueList.E")._as(value); if (index < 0 || index >= _this.get$length(_this)) throw A.wrapException(A.RangeError$("Index " + index + " must be in the range [0.." + _this.get$length(_this) + ").")); @@ -22131,7 +22065,6 @@ }, deserialize$3$specifiedType(serializers, serialized, specifiedType) { var t1, t2, value, $$v, _$result, - _s11_ = "BuildResult", result = new A.BuildResultBuilder(), iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); for (t1 = type$.BuildStatus; iterator.moveNext$0();) { @@ -22156,9 +22089,10 @@ } _$result = result._build_result$_$v; if (_$result == null) { - t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_build_result$_$this()._status, _s11_, "status", t1); - _$result = new A._$BuildResult(t2); - A.BuiltValueNullFieldError_checkNotNull(t2, _s11_, "status", t1); + t1 = result.get$_build_result$_$this()._status; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$("BuildResult", "status")); + _$result = new A._$BuildResult(t1); } A.ArgumentError_checkNotNull(_$result, "other", type$.BuildResult); return result._build_result$_$v = _$result; @@ -22292,20 +22226,20 @@ return _this; }, _build$0() { - var t1, t2, t3, t4, _this = this, + var t1, t2, t3, _this = this, _s14_ = "ConnectRequest", - _s10_ = "instanceId", - _s14_0 = "entrypointPath", _$result = _this._connect_request$_$v; if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._connect_request$_appId, _s14_, "appId", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._instanceId, _s14_, _s10_, t1); - t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._entrypointPath, _s14_, _s14_0, t1); - _$result = new A._$ConnectRequest(t2, t3, t4); - A.BuiltValueNullFieldError_checkNotNull(t2, _s14_, "appId", t1); - A.BuiltValueNullFieldError_checkNotNull(t3, _s14_, _s10_, t1); - A.BuiltValueNullFieldError_checkNotNull(t4, _s14_, _s14_0, t1); + t1 = _this.get$_connect_request$_$this()._connect_request$_appId; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s14_, "appId")); + t2 = _this.get$_connect_request$_$this()._instanceId; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s14_, "instanceId")); + t3 = _this.get$_connect_request$_$this()._entrypointPath; + if (t3 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s14_, "entrypointPath")); + _$result = new A._$ConnectRequest(t1, t2, t3); } A.ArgumentError_checkNotNull(_$result, "other", type$.ConnectRequest); return _this._connect_request$_$v = _$result; @@ -22475,21 +22409,20 @@ return _this; }, _debug_event$_build$0() { - var t1, t2, t3, t4, t5, _this = this, + var t1, t2, t3, _this = this, _s10_ = "DebugEvent", - _s9_ = "eventData", - _s9_0 = "timestamp", _$result = _this._debug_event$_$v; if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._debug_event$_kind, _s10_, "kind", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._eventData, _s10_, _s9_, t1); - t4 = type$.int; - t5 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._timestamp, _s10_, _s9_0, t4); - _$result = new A._$DebugEvent(t2, t3, t5); - A.BuiltValueNullFieldError_checkNotNull(t2, _s10_, "kind", t1); - A.BuiltValueNullFieldError_checkNotNull(t3, _s10_, _s9_, t1); - A.BuiltValueNullFieldError_checkNotNull(t5, _s10_, _s9_0, t4); + t1 = _this.get$_debug_event$_$this()._debug_event$_kind; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s10_, "kind")); + t2 = _this.get$_debug_event$_$this()._eventData; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s10_, "eventData")); + t3 = _this.get$_debug_event$_$this()._timestamp; + if (t3 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s10_, "timestamp")); + _$result = new A._$DebugEvent(t1, t2, t3); } A.ArgumentError_checkNotNull(_$result, "other", type$.DebugEvent); return _this._debug_event$_$v = _$result; @@ -22537,16 +22470,11 @@ return _this; }, _debug_event$_build$0() { - var _$failedField, e, _$result0, t1, exception, t2, _this = this, - _s18_ = "BatchedDebugEvents", - _$result = null; + var _$failedField, e, _$result0, exception, t1, t2, _this = this, _$result = null; try { _$result0 = _this._debug_event$_$v; - if (_$result0 == null) { - t1 = _this.get$events().build$0(); - _$result0 = new A._$BatchedDebugEvents(t1); - A.BuiltValueNullFieldError_checkNotNull(t1, _s18_, "events", type$.BuiltList_DebugEvent); - } + if (_$result0 == null) + _$result0 = new A._$BatchedDebugEvents(_this.get$events().build$0()); _$result = _$result0; } catch (exception) { _$failedField = A._Cell$named("_$failedField"); @@ -22555,7 +22483,7 @@ _this.get$events().build$0(); } catch (exception) { e = A.unwrapException(exception); - t1 = A.BuiltValueNestedFieldError$(_s18_, _$failedField.readLocal$0(), J.toString$0$(e)); + t1 = A.BuiltValueNestedFieldError$("BatchedDebugEvents", _$failedField.readLocal$0(), J.toString$0$(e)); throw A.wrapException(t1); } throw exception; @@ -22828,8 +22756,7 @@ return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false); }, deserialize$3$specifiedType(serializers, serialized, specifiedType) { - var t1, value, _$result, t2, t3, - _s15_ = "promptExtension", + var t1, value, _$result, t2, _s16_ = "DevToolsResponse", result = new A.DevToolsResponseBuilder(), iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); @@ -22860,12 +22787,13 @@ } _$result = result._devtools_request$_$v; if (_$result == null) { - t1 = type$.bool; - t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_devtools_request$_$this()._success, _s16_, "success", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(result.get$_devtools_request$_$this()._promptExtension, _s16_, _s15_, t1); - _$result = new A._$DevToolsResponse(t2, t3, result.get$_devtools_request$_$this()._error); - A.BuiltValueNullFieldError_checkNotNull(t2, _s16_, "success", t1); - A.BuiltValueNullFieldError_checkNotNull(t3, _s16_, _s15_, t1); + t1 = result.get$_devtools_request$_$this()._success; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s16_, "success")); + t2 = result.get$_devtools_request$_$this()._promptExtension; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s16_, "promptExtension")); + _$result = new A._$DevToolsResponse(t1, t2, result.get$_devtools_request$_$this()._error); } A.ArgumentError_checkNotNull(_$result, "other", type$.DevToolsResponse); return result._devtools_request$_$v = _$result; @@ -22922,17 +22850,17 @@ return _this; }, _devtools_request$_build$0() { - var t1, t2, t3, _this = this, + var t1, t2, _this = this, _s15_ = "DevToolsRequest", - _s10_ = "instanceId", _$result = _this._devtools_request$_$v; if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_devtools_request$_$this()._devtools_request$_appId, _s15_, "appId", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_devtools_request$_$this()._devtools_request$_instanceId, _s15_, _s10_, t1); - _$result = new A._$DevToolsRequest(t2, t3, _this.get$_devtools_request$_$this()._contextId, _this.get$_devtools_request$_$this()._tabUrl, _this.get$_devtools_request$_$this()._uriOnly); - A.BuiltValueNullFieldError_checkNotNull(t2, _s15_, "appId", t1); - A.BuiltValueNullFieldError_checkNotNull(t3, _s15_, _s10_, t1); + t1 = _this.get$_devtools_request$_$this()._devtools_request$_appId; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s15_, "appId")); + t2 = _this.get$_devtools_request$_$this()._devtools_request$_instanceId; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s15_, "instanceId")); + _$result = new A._$DevToolsRequest(t1, t2, _this.get$_devtools_request$_$this()._contextId, _this.get$_devtools_request$_$this()._tabUrl, _this.get$_devtools_request$_$this()._uriOnly); } A.ArgumentError_checkNotNull(_$result, "other", type$.DevToolsRequest); return _this._devtools_request$_$v = _$result; @@ -22982,8 +22910,7 @@ return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false); }, deserialize$3$specifiedType(serializers, serialized, specifiedType) { - var t1, value, $$v, _$result, t2, t3, - _s10_ = "stackTrace", + var t1, value, $$v, _$result, t2, _s13_ = "ErrorResponse", result = new A.ErrorResponseBuilder(), iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); @@ -23022,12 +22949,13 @@ } _$result = result._error_response$_$v; if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_error_response$_$this()._error_response$_error, _s13_, "error", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(result.get$_error_response$_$this()._error_response$_stackTrace, _s13_, _s10_, t1); - _$result = new A._$ErrorResponse(t2, t3); - A.BuiltValueNullFieldError_checkNotNull(t2, _s13_, "error", t1); - A.BuiltValueNullFieldError_checkNotNull(t3, _s13_, _s10_, t1); + t1 = result.get$_error_response$_$this()._error_response$_error; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s13_, "error")); + t2 = result.get$_error_response$_$this()._error_response$_stackTrace; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s13_, "stackTrace")); + _$result = new A._$ErrorResponse(t1, t2); } A.ArgumentError_checkNotNull(_$result, "other", type$.ErrorResponse); return result._error_response$_$v = _$result; @@ -23095,7 +23023,7 @@ return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false); }, deserialize$3$specifiedType(serializers, serialized, specifiedType) { - var t1, value, _$result, t2, t3, t4, + var t1, value, _$result, t2, _s16_ = "ExtensionRequest", result = new A.ExtensionRequestBuilder(), iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); @@ -23126,13 +23054,13 @@ } _$result = result._extension_request$_$v; if (_$result == null) { - t1 = type$.int; - t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._id, _s16_, "id", t1); - t3 = type$.String; - t4 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._command, _s16_, "command", t3); - _$result = new A._$ExtensionRequest(t2, t4, result.get$_extension_request$_$this()._commandParams); - A.BuiltValueNullFieldError_checkNotNull(t2, _s16_, "id", t1); - A.BuiltValueNullFieldError_checkNotNull(t4, _s16_, "command", t3); + t1 = result.get$_extension_request$_$this()._id; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s16_, "id")); + t2 = result.get$_extension_request$_$this()._command; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s16_, "command")); + _$result = new A._$ExtensionRequest(t1, t2, result.get$_extension_request$_$this()._commandParams); } A.ArgumentError_checkNotNull(_$result, "other", type$.ExtensionRequest); return result._extension_request$_$v = _$result; @@ -23165,7 +23093,7 @@ return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false); }, deserialize$3$specifiedType(serializers, serialized, specifiedType) { - var t1, value, _$result, t2, t3, t4, t5, t6, + var t1, value, _$result, t2, t3, _s17_ = "ExtensionResponse", result = new A.ExtensionResponseBuilder(), iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); @@ -23202,16 +23130,16 @@ } _$result = result._extension_request$_$v; if (_$result == null) { - t1 = type$.int; - t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._id, _s17_, "id", t1); - t3 = type$.bool; - t4 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._extension_request$_success, _s17_, "success", t3); - t5 = type$.String; - t6 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._extension_request$_result, _s17_, "result", t5); - _$result = new A._$ExtensionResponse(t2, t4, t6, result.get$_extension_request$_$this()._extension_request$_error); - A.BuiltValueNullFieldError_checkNotNull(t2, _s17_, "id", t1); - A.BuiltValueNullFieldError_checkNotNull(t4, _s17_, "success", t3); - A.BuiltValueNullFieldError_checkNotNull(t6, _s17_, "result", t5); + t1 = result.get$_extension_request$_$this()._id; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s17_, "id")); + t2 = result.get$_extension_request$_$this()._extension_request$_success; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s17_, "success")); + t3 = result.get$_extension_request$_$this()._extension_request$_result; + if (t3 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s17_, "result")); + _$result = new A._$ExtensionResponse(t1, t2, t3, result.get$_extension_request$_$this()._extension_request$_error); } A.ArgumentError_checkNotNull(_$result, "other", type$.ExtensionResponse); return result._extension_request$_$v = _$result; @@ -23237,7 +23165,7 @@ return this.serialize$3$specifiedType(serializers, object, B.FullType_null_List_empty_false); }, deserialize$3$specifiedType(serializers, serialized, specifiedType) { - var t1, value, $$v, _$result, t2, t3, + var t1, value, $$v, _$result, t2, _s14_ = "ExtensionEvent", result = new A.ExtensionEventBuilder(), iterator = J.get$iterator$ax(type$.Iterable_nullable_Object._as(serialized)); @@ -23276,12 +23204,13 @@ } _$result = result._extension_request$_$v; if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._params, _s14_, "params", t1); - t3 = A.BuiltValueNullFieldError_checkNotNull(result.get$_extension_request$_$this()._extension_request$_method, _s14_, "method", t1); - _$result = new A._$ExtensionEvent(t2, t3); - A.BuiltValueNullFieldError_checkNotNull(t2, _s14_, "params", t1); - A.BuiltValueNullFieldError_checkNotNull(t3, _s14_, "method", t1); + t1 = result.get$_extension_request$_$this()._params; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s14_, "params")); + t2 = result.get$_extension_request$_$this()._extension_request$_method; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s14_, "method")); + _$result = new A._$ExtensionEvent(t1, t2); } A.ArgumentError_checkNotNull(_$result, "other", type$.ExtensionEvent); return result._extension_request$_$v = _$result; @@ -23512,16 +23441,11 @@ return t1; }, _extension_request$_build$0() { - var _$failedField, e, _$result0, t1, exception, t2, _this = this, - _s13_ = "BatchedEvents", - _$result = null; + var _$failedField, e, _$result0, exception, t1, t2, _this = this, _$result = null; try { _$result0 = _this._extension_request$_$v; - if (_$result0 == null) { - t1 = _this.get$events().build$0(); - _$result0 = new A._$BatchedEvents(t1); - A.BuiltValueNullFieldError_checkNotNull(t1, _s13_, "events", type$.BuiltList_ExtensionEvent); - } + if (_$result0 == null) + _$result0 = new A._$BatchedEvents(_this.get$events().build$0()); _$result = _$result0; } catch (exception) { _$failedField = A._Cell$named("_$failedField"); @@ -23530,7 +23454,7 @@ _this.get$events().build$0(); } catch (exception) { e = A.unwrapException(exception); - t1 = A.BuiltValueNestedFieldError$(_s13_, _$failedField.readLocal$0(), J.toString$0$(e)); + t1 = A.BuiltValueNestedFieldError$("BatchedEvents", _$failedField.readLocal$0(), J.toString$0$(e)); throw A.wrapException(t1); } throw exception; @@ -23734,19 +23658,17 @@ return _this; }, _register_event$_build$0() { - var t1, t2, t3, t4, _this = this, + var t1, t2, _this = this, _s13_ = "RegisterEvent", - _s9_ = "eventData", - _s9_0 = "timestamp", _$result = _this._register_event$_$v; if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_event$_$this()._register_event$_eventData, _s13_, _s9_, t1); - t3 = type$.int; - t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_event$_$this()._register_event$_timestamp, _s13_, _s9_0, t3); - _$result = new A._$RegisterEvent(t2, t4); - A.BuiltValueNullFieldError_checkNotNull(t2, _s13_, _s9_, t1); - A.BuiltValueNullFieldError_checkNotNull(t4, _s13_, _s9_0, t3); + t1 = _this.get$_register_event$_$this()._register_event$_eventData; + if (t1 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s13_, "eventData")); + t2 = _this.get$_register_event$_$this()._register_event$_timestamp; + if (t2 == null) + A.throwExpression(A.BuiltValueNullFieldError$(_s13_, "timestamp")); + _$result = new A._$RegisterEvent(t1, t2); } A.ArgumentError_checkNotNull(_$result, "other", type$.RegisterEvent); return _this._register_event$_$v = _$result; @@ -25914,7 +25836,7 @@ _inherit(A.Object, null); _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapMixin, A.Error, A.SentinelValue, A.ListIterator, A.Iterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._ListBase_Object_ListMixin, A.Symbol, A.MapView, A.ConstantMap, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A.StreamSubscription, A.StreamTransformerBase, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.__SetBase_Object_SetMixin, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A.IterableMixin, A.ListMixin, A._UnmodifiableMapMixin, A._ListQueueIterator, A.SetMixin, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A._JsonStringifier, A._Utf8Encoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.Expando, A.CssStyleDeclarationBase, A.EventStreamProvider, A._Html5NodeValidator, A.ImmutableListMixin, A.NodeValidatorBuilder, A._SimpleNodeValidator, A._SvgNodeValidator, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._SameOriginUriPolicy, A._ValidatingTreeSanitizer, A._StructuredClone, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A._JSRandom, A._Random, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.CopyOnWriteList, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.UriSerializer, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.SocketClient, A.BatchedStreamController, A.Int64, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.WebSocketChannelException, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]); _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JSArray, J.JSNumber, J.JSString, A.NativeByteBuffer, A.NativeTypedData]); - _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.Event, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A.DomImplementation, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SharedArrayBuffer, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); + _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, A.EventTarget, A.AccessibleNodeList, A.Blob, A.Event, A.CssTransformComponent, A.CssRule, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase, A.CssStyleValue, A.DataTransferItemList, A.DomException, A.DomImplementation, A._DomRectList_JavaScriptObject_ListMixin, A.DomRectReadOnly, A._DomStringList_JavaScriptObject_ListMixin, A.DomTokenList, A._FileList_JavaScriptObject_ListMixin, A.Gamepad, A.History, A._HtmlCollection_JavaScriptObject_ListMixin, A.ImageData, A.Location, A.MediaList, A._MidiInputMap_JavaScriptObject_MapMixin, A._MidiOutputMap_JavaScriptObject_MapMixin, A.MimeType, A._MimeTypeArray_JavaScriptObject_ListMixin, A._NodeList_JavaScriptObject_ListMixin, A.Plugin, A._PluginArray_JavaScriptObject_ListMixin, A._RtcStatsReport_JavaScriptObject_MapMixin, A.SpeechGrammar, A._SpeechGrammarList_JavaScriptObject_ListMixin, A.SpeechRecognitionResult, A._Storage_JavaScriptObject_MapMixin, A.StyleSheet, A._TextTrackCueList_JavaScriptObject_ListMixin, A.TimeRanges, A.Touch, A._TouchList_JavaScriptObject_ListMixin, A.TrackDefaultList, A.Url, A.__CssRuleList_JavaScriptObject_ListMixin, A.__GamepadList_JavaScriptObject_ListMixin, A.__NamedNodeMap_JavaScriptObject_ListMixin, A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin, A.KeyRange, A.Length, A._LengthList_JavaScriptObject_ListMixin, A.Number, A._NumberList_JavaScriptObject_ListMixin, A.PointList, A._StringList_JavaScriptObject_ListMixin, A.Transform, A._TransformList_JavaScriptObject_ListMixin, A.AudioBuffer, A._AudioParamMap_JavaScriptObject_MapMixin]); _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction, A.Promise, A.RequireLoader, A.JsError, A.JsMap]); _inherit(J.JSUnmodifiableArray, J.JSArray); _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]); @@ -26171,8 +26093,6 @@ BuildResult: findType("BuildResult"), BuildStatus: findType("BuildStatus"), BuiltListMultimap_dynamic_dynamic: findType("BuiltListMultimap<@,@>"), - BuiltList_DebugEvent: findType("BuiltList"), - BuiltList_ExtensionEvent: findType("BuiltList"), BuiltList_dynamic: findType("BuiltList<@>"), BuiltList_nullable_Object: findType("BuiltList"), BuiltMap_dynamic_dynamic: findType("BuiltMap<@,@>"), @@ -26275,7 +26195,6 @@ Promise_bool_Function_String: findType("Promise<1&>(String)"), Promise_void: findType("Promise<1&>"), QueueList_Result_DebugEvent: findType("QueueList>"), - Record: findType("Record"), Rectangle_num: findType("Rectangle"), RegExp: findType("RegExp"), RegExpMatch: findType("RegExpMatch"), @@ -26290,7 +26209,6 @@ SetEquality_dynamic: findType("SetEquality<@>"), SetMultimapBuilder_dynamic_dynamic: findType("SetMultimapBuilder<@,@>"), Set_dynamic: findType("Set<@>"), - SharedArrayBuffer: findType("SharedArrayBuffer"), SourceBuffer: findType("SourceBuffer"), SpeechGrammar: findType("SpeechGrammar"), SpeechRecognitionResult: findType("SpeechRecognitionResult"), @@ -26913,8 +26831,8 @@ } init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); }(); - hunkHelpers.setOrUpdateInterceptorsByTag({WebGL: J.Interceptor, AnimationEffectReadOnly: J.JavaScriptObject, AnimationEffectTiming: J.JavaScriptObject, AnimationEffectTimingReadOnly: J.JavaScriptObject, AnimationTimeline: J.JavaScriptObject, AnimationWorkletGlobalScope: J.JavaScriptObject, AuthenticatorAssertionResponse: J.JavaScriptObject, AuthenticatorAttestationResponse: J.JavaScriptObject, AuthenticatorResponse: J.JavaScriptObject, BackgroundFetchFetch: J.JavaScriptObject, BackgroundFetchManager: J.JavaScriptObject, BackgroundFetchSettledFetch: J.JavaScriptObject, BarProp: J.JavaScriptObject, BarcodeDetector: J.JavaScriptObject, BluetoothRemoteGATTDescriptor: J.JavaScriptObject, Body: J.JavaScriptObject, BudgetState: J.JavaScriptObject, CacheStorage: J.JavaScriptObject, CanvasGradient: J.JavaScriptObject, CanvasPattern: J.JavaScriptObject, CanvasRenderingContext2D: J.JavaScriptObject, Client: J.JavaScriptObject, Clients: J.JavaScriptObject, CookieStore: J.JavaScriptObject, Coordinates: J.JavaScriptObject, Credential: J.JavaScriptObject, CredentialUserData: J.JavaScriptObject, CredentialsContainer: J.JavaScriptObject, Crypto: J.JavaScriptObject, CryptoKey: J.JavaScriptObject, CSS: J.JavaScriptObject, CSSVariableReferenceValue: J.JavaScriptObject, CustomElementRegistry: J.JavaScriptObject, DataTransfer: J.JavaScriptObject, DataTransferItem: J.JavaScriptObject, DeprecatedStorageInfo: J.JavaScriptObject, DeprecatedStorageQuota: J.JavaScriptObject, DeprecationReport: J.JavaScriptObject, DetectedBarcode: J.JavaScriptObject, DetectedFace: J.JavaScriptObject, DetectedText: J.JavaScriptObject, DeviceAcceleration: J.JavaScriptObject, DeviceRotationRate: J.JavaScriptObject, DirectoryEntry: J.JavaScriptObject, webkitFileSystemDirectoryEntry: J.JavaScriptObject, FileSystemDirectoryEntry: J.JavaScriptObject, DirectoryReader: J.JavaScriptObject, WebKitDirectoryReader: J.JavaScriptObject, webkitFileSystemDirectoryReader: J.JavaScriptObject, FileSystemDirectoryReader: J.JavaScriptObject, DocumentOrShadowRoot: J.JavaScriptObject, DocumentTimeline: J.JavaScriptObject, DOMError: J.JavaScriptObject, Iterator: J.JavaScriptObject, DOMMatrix: J.JavaScriptObject, DOMMatrixReadOnly: J.JavaScriptObject, DOMParser: J.JavaScriptObject, DOMPoint: J.JavaScriptObject, DOMPointReadOnly: J.JavaScriptObject, DOMQuad: J.JavaScriptObject, DOMStringMap: J.JavaScriptObject, Entry: J.JavaScriptObject, webkitFileSystemEntry: J.JavaScriptObject, FileSystemEntry: J.JavaScriptObject, External: J.JavaScriptObject, FaceDetector: J.JavaScriptObject, FederatedCredential: J.JavaScriptObject, FileEntry: J.JavaScriptObject, webkitFileSystemFileEntry: J.JavaScriptObject, FileSystemFileEntry: J.JavaScriptObject, DOMFileSystem: J.JavaScriptObject, WebKitFileSystem: J.JavaScriptObject, webkitFileSystem: J.JavaScriptObject, FileSystem: J.JavaScriptObject, FontFace: J.JavaScriptObject, FontFaceSource: J.JavaScriptObject, FormData: J.JavaScriptObject, GamepadButton: J.JavaScriptObject, GamepadPose: J.JavaScriptObject, Geolocation: J.JavaScriptObject, Position: J.JavaScriptObject, GeolocationPosition: J.JavaScriptObject, Headers: J.JavaScriptObject, HTMLHyperlinkElementUtils: J.JavaScriptObject, IdleDeadline: J.JavaScriptObject, ImageBitmap: J.JavaScriptObject, ImageBitmapRenderingContext: J.JavaScriptObject, ImageCapture: J.JavaScriptObject, InputDeviceCapabilities: J.JavaScriptObject, IntersectionObserver: J.JavaScriptObject, IntersectionObserverEntry: J.JavaScriptObject, InterventionReport: J.JavaScriptObject, KeyframeEffect: J.JavaScriptObject, KeyframeEffectReadOnly: J.JavaScriptObject, MediaCapabilities: J.JavaScriptObject, MediaCapabilitiesInfo: J.JavaScriptObject, MediaDeviceInfo: J.JavaScriptObject, MediaError: J.JavaScriptObject, MediaKeyStatusMap: J.JavaScriptObject, MediaKeySystemAccess: J.JavaScriptObject, MediaKeys: J.JavaScriptObject, MediaKeysPolicy: J.JavaScriptObject, MediaMetadata: J.JavaScriptObject, MediaSession: J.JavaScriptObject, MediaSettingsRange: J.JavaScriptObject, MemoryInfo: J.JavaScriptObject, MessageChannel: J.JavaScriptObject, Metadata: J.JavaScriptObject, MutationObserver: J.JavaScriptObject, WebKitMutationObserver: J.JavaScriptObject, MutationRecord: J.JavaScriptObject, NavigationPreloadManager: J.JavaScriptObject, Navigator: J.JavaScriptObject, NavigatorAutomationInformation: J.JavaScriptObject, NavigatorConcurrentHardware: J.JavaScriptObject, NavigatorCookies: J.JavaScriptObject, NavigatorUserMediaError: J.JavaScriptObject, NodeFilter: J.JavaScriptObject, NodeIterator: J.JavaScriptObject, NonDocumentTypeChildNode: J.JavaScriptObject, NonElementParentNode: J.JavaScriptObject, NoncedElement: J.JavaScriptObject, OffscreenCanvasRenderingContext2D: J.JavaScriptObject, OverconstrainedError: J.JavaScriptObject, PaintRenderingContext2D: J.JavaScriptObject, PaintSize: J.JavaScriptObject, PaintWorkletGlobalScope: J.JavaScriptObject, PasswordCredential: J.JavaScriptObject, Path2D: J.JavaScriptObject, PaymentAddress: J.JavaScriptObject, PaymentInstruments: J.JavaScriptObject, PaymentManager: J.JavaScriptObject, PaymentResponse: J.JavaScriptObject, PerformanceEntry: J.JavaScriptObject, PerformanceLongTaskTiming: J.JavaScriptObject, PerformanceMark: J.JavaScriptObject, PerformanceMeasure: J.JavaScriptObject, PerformanceNavigation: J.JavaScriptObject, PerformanceNavigationTiming: J.JavaScriptObject, PerformanceObserver: J.JavaScriptObject, PerformanceObserverEntryList: J.JavaScriptObject, PerformancePaintTiming: J.JavaScriptObject, PerformanceResourceTiming: J.JavaScriptObject, PerformanceServerTiming: J.JavaScriptObject, PerformanceTiming: J.JavaScriptObject, Permissions: J.JavaScriptObject, PhotoCapabilities: J.JavaScriptObject, PositionError: J.JavaScriptObject, GeolocationPositionError: J.JavaScriptObject, Presentation: J.JavaScriptObject, PresentationReceiver: J.JavaScriptObject, PublicKeyCredential: J.JavaScriptObject, PushManager: J.JavaScriptObject, PushMessageData: J.JavaScriptObject, PushSubscription: J.JavaScriptObject, PushSubscriptionOptions: J.JavaScriptObject, Range: J.JavaScriptObject, RelatedApplication: J.JavaScriptObject, ReportBody: J.JavaScriptObject, ReportingObserver: J.JavaScriptObject, ResizeObserver: J.JavaScriptObject, ResizeObserverEntry: J.JavaScriptObject, RTCCertificate: J.JavaScriptObject, RTCIceCandidate: J.JavaScriptObject, mozRTCIceCandidate: J.JavaScriptObject, RTCLegacyStatsReport: J.JavaScriptObject, RTCRtpContributingSource: J.JavaScriptObject, RTCRtpReceiver: J.JavaScriptObject, RTCRtpSender: J.JavaScriptObject, RTCSessionDescription: J.JavaScriptObject, mozRTCSessionDescription: J.JavaScriptObject, RTCStatsResponse: J.JavaScriptObject, Screen: J.JavaScriptObject, ScrollState: J.JavaScriptObject, ScrollTimeline: J.JavaScriptObject, Selection: J.JavaScriptObject, SpeechRecognitionAlternative: J.JavaScriptObject, SpeechSynthesisVoice: J.JavaScriptObject, StaticRange: J.JavaScriptObject, StorageManager: J.JavaScriptObject, StyleMedia: J.JavaScriptObject, StylePropertyMap: J.JavaScriptObject, StylePropertyMapReadonly: J.JavaScriptObject, SyncManager: J.JavaScriptObject, TaskAttributionTiming: J.JavaScriptObject, TextDetector: J.JavaScriptObject, TextMetrics: J.JavaScriptObject, TrackDefault: J.JavaScriptObject, TreeWalker: J.JavaScriptObject, TrustedHTML: J.JavaScriptObject, TrustedScriptURL: J.JavaScriptObject, TrustedURL: J.JavaScriptObject, UnderlyingSourceBase: J.JavaScriptObject, URLSearchParams: J.JavaScriptObject, VRCoordinateSystem: J.JavaScriptObject, VRDisplayCapabilities: J.JavaScriptObject, VREyeParameters: J.JavaScriptObject, VRFrameData: J.JavaScriptObject, VRFrameOfReference: J.JavaScriptObject, VRPose: J.JavaScriptObject, VRStageBounds: J.JavaScriptObject, VRStageBoundsPoint: J.JavaScriptObject, VRStageParameters: J.JavaScriptObject, ValidityState: J.JavaScriptObject, VideoPlaybackQuality: J.JavaScriptObject, VideoTrack: J.JavaScriptObject, VTTRegion: J.JavaScriptObject, WindowClient: J.JavaScriptObject, WorkletAnimation: J.JavaScriptObject, WorkletGlobalScope: J.JavaScriptObject, XPathEvaluator: J.JavaScriptObject, XPathExpression: J.JavaScriptObject, XPathNSResolver: J.JavaScriptObject, XPathResult: J.JavaScriptObject, XMLSerializer: J.JavaScriptObject, XSLTProcessor: J.JavaScriptObject, Bluetooth: J.JavaScriptObject, BluetoothCharacteristicProperties: J.JavaScriptObject, BluetoothRemoteGATTServer: J.JavaScriptObject, BluetoothRemoteGATTService: J.JavaScriptObject, BluetoothUUID: J.JavaScriptObject, BudgetService: J.JavaScriptObject, Cache: J.JavaScriptObject, DOMFileSystemSync: J.JavaScriptObject, DirectoryEntrySync: J.JavaScriptObject, DirectoryReaderSync: J.JavaScriptObject, EntrySync: J.JavaScriptObject, FileEntrySync: J.JavaScriptObject, FileReaderSync: J.JavaScriptObject, FileWriterSync: J.JavaScriptObject, HTMLAllCollection: J.JavaScriptObject, Mojo: J.JavaScriptObject, MojoHandle: J.JavaScriptObject, MojoWatcher: J.JavaScriptObject, NFC: J.JavaScriptObject, PagePopupController: J.JavaScriptObject, Report: J.JavaScriptObject, Request: J.JavaScriptObject, Response: J.JavaScriptObject, SubtleCrypto: J.JavaScriptObject, USBAlternateInterface: J.JavaScriptObject, USBConfiguration: J.JavaScriptObject, USBDevice: J.JavaScriptObject, USBEndpoint: J.JavaScriptObject, USBInTransferResult: J.JavaScriptObject, USBInterface: J.JavaScriptObject, USBIsochronousInTransferPacket: J.JavaScriptObject, USBIsochronousInTransferResult: J.JavaScriptObject, USBIsochronousOutTransferPacket: J.JavaScriptObject, USBIsochronousOutTransferResult: J.JavaScriptObject, USBOutTransferResult: J.JavaScriptObject, WorkerLocation: J.JavaScriptObject, WorkerNavigator: J.JavaScriptObject, Worklet: J.JavaScriptObject, IDBCursor: J.JavaScriptObject, IDBCursorWithValue: J.JavaScriptObject, IDBFactory: J.JavaScriptObject, IDBIndex: J.JavaScriptObject, IDBObjectStore: J.JavaScriptObject, IDBObservation: J.JavaScriptObject, IDBObserver: J.JavaScriptObject, IDBObserverChanges: J.JavaScriptObject, SVGAngle: J.JavaScriptObject, SVGAnimatedAngle: J.JavaScriptObject, SVGAnimatedBoolean: J.JavaScriptObject, SVGAnimatedEnumeration: J.JavaScriptObject, SVGAnimatedInteger: J.JavaScriptObject, SVGAnimatedLength: J.JavaScriptObject, SVGAnimatedLengthList: J.JavaScriptObject, SVGAnimatedNumber: J.JavaScriptObject, SVGAnimatedNumberList: J.JavaScriptObject, SVGAnimatedPreserveAspectRatio: J.JavaScriptObject, SVGAnimatedRect: J.JavaScriptObject, SVGAnimatedString: J.JavaScriptObject, SVGAnimatedTransformList: J.JavaScriptObject, SVGMatrix: J.JavaScriptObject, SVGPoint: J.JavaScriptObject, SVGPreserveAspectRatio: J.JavaScriptObject, SVGRect: J.JavaScriptObject, SVGUnitTypes: J.JavaScriptObject, AudioListener: J.JavaScriptObject, AudioParam: J.JavaScriptObject, AudioTrack: J.JavaScriptObject, AudioWorkletGlobalScope: J.JavaScriptObject, AudioWorkletProcessor: J.JavaScriptObject, PeriodicWave: J.JavaScriptObject, WebGLActiveInfo: J.JavaScriptObject, ANGLEInstancedArrays: J.JavaScriptObject, ANGLE_instanced_arrays: J.JavaScriptObject, WebGLBuffer: J.JavaScriptObject, WebGLCanvas: J.JavaScriptObject, WebGLColorBufferFloat: J.JavaScriptObject, WebGLCompressedTextureASTC: J.JavaScriptObject, WebGLCompressedTextureATC: J.JavaScriptObject, WEBGL_compressed_texture_atc: J.JavaScriptObject, WebGLCompressedTextureETC1: J.JavaScriptObject, WEBGL_compressed_texture_etc1: J.JavaScriptObject, WebGLCompressedTextureETC: J.JavaScriptObject, WebGLCompressedTexturePVRTC: J.JavaScriptObject, WEBGL_compressed_texture_pvrtc: J.JavaScriptObject, WebGLCompressedTextureS3TC: J.JavaScriptObject, WEBGL_compressed_texture_s3tc: J.JavaScriptObject, WebGLCompressedTextureS3TCsRGB: J.JavaScriptObject, WebGLDebugRendererInfo: J.JavaScriptObject, WEBGL_debug_renderer_info: J.JavaScriptObject, WebGLDebugShaders: J.JavaScriptObject, WEBGL_debug_shaders: J.JavaScriptObject, WebGLDepthTexture: J.JavaScriptObject, WEBGL_depth_texture: J.JavaScriptObject, WebGLDrawBuffers: J.JavaScriptObject, WEBGL_draw_buffers: J.JavaScriptObject, EXTsRGB: J.JavaScriptObject, EXT_sRGB: J.JavaScriptObject, EXTBlendMinMax: J.JavaScriptObject, EXT_blend_minmax: J.JavaScriptObject, EXTColorBufferFloat: J.JavaScriptObject, EXTColorBufferHalfFloat: J.JavaScriptObject, EXTDisjointTimerQuery: J.JavaScriptObject, EXTDisjointTimerQueryWebGL2: J.JavaScriptObject, EXTFragDepth: J.JavaScriptObject, EXT_frag_depth: J.JavaScriptObject, EXTShaderTextureLOD: J.JavaScriptObject, EXT_shader_texture_lod: J.JavaScriptObject, EXTTextureFilterAnisotropic: J.JavaScriptObject, EXT_texture_filter_anisotropic: J.JavaScriptObject, WebGLFramebuffer: J.JavaScriptObject, WebGLGetBufferSubDataAsync: J.JavaScriptObject, WebGLLoseContext: J.JavaScriptObject, WebGLExtensionLoseContext: J.JavaScriptObject, WEBGL_lose_context: J.JavaScriptObject, OESElementIndexUint: J.JavaScriptObject, OES_element_index_uint: J.JavaScriptObject, OESStandardDerivatives: J.JavaScriptObject, OES_standard_derivatives: J.JavaScriptObject, OESTextureFloat: J.JavaScriptObject, OES_texture_float: J.JavaScriptObject, OESTextureFloatLinear: J.JavaScriptObject, OES_texture_float_linear: J.JavaScriptObject, OESTextureHalfFloat: J.JavaScriptObject, OES_texture_half_float: J.JavaScriptObject, OESTextureHalfFloatLinear: J.JavaScriptObject, OES_texture_half_float_linear: J.JavaScriptObject, OESVertexArrayObject: J.JavaScriptObject, OES_vertex_array_object: J.JavaScriptObject, WebGLProgram: J.JavaScriptObject, WebGLQuery: J.JavaScriptObject, WebGLRenderbuffer: J.JavaScriptObject, WebGLRenderingContext: J.JavaScriptObject, WebGL2RenderingContext: J.JavaScriptObject, WebGLSampler: J.JavaScriptObject, WebGLShader: J.JavaScriptObject, WebGLShaderPrecisionFormat: J.JavaScriptObject, WebGLSync: J.JavaScriptObject, WebGLTexture: J.JavaScriptObject, WebGLTimerQueryEXT: J.JavaScriptObject, WebGLTransformFeedback: J.JavaScriptObject, WebGLUniformLocation: J.JavaScriptObject, WebGLVertexArrayObject: J.JavaScriptObject, WebGLVertexArrayObjectOES: J.JavaScriptObject, WebGL2RenderingContextBase: J.JavaScriptObject, ArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List, HTMLAudioElement: A.HtmlElement, HTMLBRElement: A.HtmlElement, HTMLButtonElement: A.HtmlElement, HTMLCanvasElement: A.HtmlElement, HTMLContentElement: A.HtmlElement, HTMLDListElement: A.HtmlElement, HTMLDataElement: A.HtmlElement, HTMLDataListElement: A.HtmlElement, HTMLDetailsElement: A.HtmlElement, HTMLDialogElement: A.HtmlElement, HTMLDivElement: A.HtmlElement, HTMLEmbedElement: A.HtmlElement, HTMLFieldSetElement: A.HtmlElement, HTMLHRElement: A.HtmlElement, HTMLHeadElement: A.HtmlElement, HTMLHeadingElement: A.HtmlElement, HTMLHtmlElement: A.HtmlElement, HTMLIFrameElement: A.HtmlElement, HTMLImageElement: A.HtmlElement, HTMLInputElement: A.HtmlElement, HTMLLIElement: A.HtmlElement, HTMLLabelElement: A.HtmlElement, HTMLLegendElement: A.HtmlElement, HTMLLinkElement: A.HtmlElement, HTMLMapElement: A.HtmlElement, HTMLMediaElement: A.HtmlElement, HTMLMenuElement: A.HtmlElement, HTMLMetaElement: A.HtmlElement, HTMLMeterElement: A.HtmlElement, HTMLModElement: A.HtmlElement, HTMLOListElement: A.HtmlElement, HTMLObjectElement: A.HtmlElement, HTMLOptGroupElement: A.HtmlElement, HTMLOptionElement: A.HtmlElement, HTMLOutputElement: A.HtmlElement, HTMLParagraphElement: A.HtmlElement, HTMLParamElement: A.HtmlElement, HTMLPictureElement: A.HtmlElement, HTMLPreElement: A.HtmlElement, HTMLProgressElement: A.HtmlElement, HTMLQuoteElement: A.HtmlElement, HTMLShadowElement: A.HtmlElement, HTMLSlotElement: A.HtmlElement, HTMLSourceElement: A.HtmlElement, HTMLSpanElement: A.HtmlElement, HTMLStyleElement: A.HtmlElement, HTMLTableCaptionElement: A.HtmlElement, HTMLTableCellElement: A.HtmlElement, HTMLTableDataCellElement: A.HtmlElement, HTMLTableHeaderCellElement: A.HtmlElement, HTMLTableColElement: A.HtmlElement, HTMLTextAreaElement: A.HtmlElement, HTMLTimeElement: A.HtmlElement, HTMLTitleElement: A.HtmlElement, HTMLTrackElement: A.HtmlElement, HTMLUListElement: A.HtmlElement, HTMLUnknownElement: A.HtmlElement, HTMLVideoElement: A.HtmlElement, HTMLDirectoryElement: A.HtmlElement, HTMLFontElement: A.HtmlElement, HTMLFrameElement: A.HtmlElement, HTMLFrameSetElement: A.HtmlElement, HTMLMarqueeElement: A.HtmlElement, HTMLElement: A.HtmlElement, AccessibleNodeList: A.AccessibleNodeList, HTMLAnchorElement: A.AnchorElement, HTMLAreaElement: A.AreaElement, HTMLBaseElement: A.BaseElement, Blob: A.Blob, HTMLBodyElement: A.BodyElement, CDATASection: A.CharacterData, CharacterData: A.CharacterData, Comment: A.CharacterData, ProcessingInstruction: A.CharacterData, Text: A.CharacterData, CloseEvent: A.CloseEvent, CSSPerspective: A.CssPerspective, CSSCharsetRule: A.CssRule, CSSConditionRule: A.CssRule, CSSFontFaceRule: A.CssRule, CSSGroupingRule: A.CssRule, CSSImportRule: A.CssRule, CSSKeyframeRule: A.CssRule, MozCSSKeyframeRule: A.CssRule, WebKitCSSKeyframeRule: A.CssRule, CSSKeyframesRule: A.CssRule, MozCSSKeyframesRule: A.CssRule, WebKitCSSKeyframesRule: A.CssRule, CSSMediaRule: A.CssRule, CSSNamespaceRule: A.CssRule, CSSPageRule: A.CssRule, CSSRule: A.CssRule, CSSStyleRule: A.CssRule, CSSSupportsRule: A.CssRule, CSSViewportRule: A.CssRule, CSSStyleDeclaration: A.CssStyleDeclaration, MSStyleCSSProperties: A.CssStyleDeclaration, CSS2Properties: A.CssStyleDeclaration, CSSImageValue: A.CssStyleValue, CSSKeywordValue: A.CssStyleValue, CSSNumericValue: A.CssStyleValue, CSSPositionValue: A.CssStyleValue, CSSResourceValue: A.CssStyleValue, CSSUnitValue: A.CssStyleValue, CSSURLImageValue: A.CssStyleValue, CSSStyleValue: A.CssStyleValue, CSSMatrixComponent: A.CssTransformComponent, CSSRotation: A.CssTransformComponent, CSSScale: A.CssTransformComponent, CSSSkew: A.CssTransformComponent, CSSTranslation: A.CssTransformComponent, CSSTransformComponent: A.CssTransformComponent, CSSTransformValue: A.CssTransformValue, CSSUnparsedValue: A.CssUnparsedValue, CustomEvent: A.CustomEvent, DataTransferItemList: A.DataTransferItemList, XMLDocument: A.Document, Document: A.Document, DOMException: A.DomException, DOMImplementation: A.DomImplementation, ClientRectList: A.DomRectList, DOMRectList: A.DomRectList, DOMRectReadOnly: A.DomRectReadOnly, DOMStringList: A.DomStringList, DOMTokenList: A.DomTokenList, MathMLElement: A.Element, Element: A.Element, AbortPaymentEvent: A.Event, AnimationEvent: A.Event, AnimationPlaybackEvent: A.Event, ApplicationCacheErrorEvent: A.Event, BackgroundFetchClickEvent: A.Event, BackgroundFetchEvent: A.Event, BackgroundFetchFailEvent: A.Event, BackgroundFetchedEvent: A.Event, BeforeInstallPromptEvent: A.Event, BeforeUnloadEvent: A.Event, BlobEvent: A.Event, CanMakePaymentEvent: A.Event, ClipboardEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PopStateEvent: A.Event, PresentationConnectionAvailableEvent: A.Event, PresentationConnectionCloseEvent: A.Event, PromiseRejectionEvent: A.Event, PushEvent: A.Event, RTCDataChannelEvent: A.Event, RTCDTMFToneChangeEvent: A.Event, RTCPeerConnectionIceEvent: A.Event, RTCTrackEvent: A.Event, SecurityPolicyViolationEvent: A.Event, SensorErrorEvent: A.Event, SpeechRecognitionError: A.Event, SpeechRecognitionEvent: A.Event, SpeechSynthesisEvent: A.Event, StorageEvent: A.Event, SyncEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, MojoInterfaceRequestEvent: A.Event, USBConnectionEvent: A.Event, IDBVersionChangeEvent: A.Event, AudioProcessingEvent: A.Event, OfflineAudioCompletionEvent: A.Event, WebGLContextEvent: A.Event, Event: A.Event, InputEvent: A.Event, SubmitEvent: A.Event, EventSource: A.EventSource, AbsoluteOrientationSensor: A.EventTarget, Accelerometer: A.EventTarget, AccessibleNode: A.EventTarget, AmbientLightSensor: A.EventTarget, Animation: A.EventTarget, ApplicationCache: A.EventTarget, DOMApplicationCache: A.EventTarget, OfflineResourceList: A.EventTarget, BackgroundFetchRegistration: A.EventTarget, BatteryManager: A.EventTarget, BroadcastChannel: A.EventTarget, CanvasCaptureMediaStreamTrack: A.EventTarget, FileReader: A.EventTarget, FontFaceSet: A.EventTarget, Gyroscope: A.EventTarget, LinearAccelerationSensor: A.EventTarget, Magnetometer: A.EventTarget, MediaDevices: A.EventTarget, MediaKeySession: A.EventTarget, MediaQueryList: A.EventTarget, MediaRecorder: A.EventTarget, MediaSource: A.EventTarget, MediaStream: A.EventTarget, MediaStreamTrack: A.EventTarget, MIDIAccess: A.EventTarget, MIDIInput: A.EventTarget, MIDIOutput: A.EventTarget, MIDIPort: A.EventTarget, NetworkInformation: A.EventTarget, Notification: A.EventTarget, OffscreenCanvas: A.EventTarget, OrientationSensor: A.EventTarget, PaymentRequest: A.EventTarget, Performance: A.EventTarget, PermissionStatus: A.EventTarget, PresentationAvailability: A.EventTarget, PresentationConnection: A.EventTarget, PresentationConnectionList: A.EventTarget, PresentationRequest: A.EventTarget, RelativeOrientationSensor: A.EventTarget, RemotePlayback: A.EventTarget, RTCDataChannel: A.EventTarget, DataChannel: A.EventTarget, RTCDTMFSender: A.EventTarget, RTCPeerConnection: A.EventTarget, webkitRTCPeerConnection: A.EventTarget, mozRTCPeerConnection: A.EventTarget, ScreenOrientation: A.EventTarget, Sensor: A.EventTarget, ServiceWorker: A.EventTarget, ServiceWorkerContainer: A.EventTarget, ServiceWorkerRegistration: A.EventTarget, SharedWorker: A.EventTarget, SpeechRecognition: A.EventTarget, SpeechSynthesis: A.EventTarget, SpeechSynthesisUtterance: A.EventTarget, VR: A.EventTarget, VRDevice: A.EventTarget, VRDisplay: A.EventTarget, VRSession: A.EventTarget, VisualViewport: A.EventTarget, Worker: A.EventTarget, WorkerPerformance: A.EventTarget, BluetoothDevice: A.EventTarget, BluetoothRemoteGATTCharacteristic: A.EventTarget, Clipboard: A.EventTarget, MojoInterfaceInterceptor: A.EventTarget, USB: A.EventTarget, IDBDatabase: A.EventTarget, IDBOpenDBRequest: A.EventTarget, IDBVersionChangeRequest: A.EventTarget, IDBRequest: A.EventTarget, IDBTransaction: A.EventTarget, AnalyserNode: A.EventTarget, RealtimeAnalyserNode: A.EventTarget, AudioBufferSourceNode: A.EventTarget, AudioDestinationNode: A.EventTarget, AudioNode: A.EventTarget, AudioScheduledSourceNode: A.EventTarget, AudioWorkletNode: A.EventTarget, BiquadFilterNode: A.EventTarget, ChannelMergerNode: A.EventTarget, AudioChannelMerger: A.EventTarget, ChannelSplitterNode: A.EventTarget, AudioChannelSplitter: A.EventTarget, ConstantSourceNode: A.EventTarget, ConvolverNode: A.EventTarget, DelayNode: A.EventTarget, DynamicsCompressorNode: A.EventTarget, GainNode: A.EventTarget, AudioGainNode: A.EventTarget, IIRFilterNode: A.EventTarget, MediaElementAudioSourceNode: A.EventTarget, MediaStreamAudioDestinationNode: A.EventTarget, MediaStreamAudioSourceNode: A.EventTarget, OscillatorNode: A.EventTarget, Oscillator: A.EventTarget, PannerNode: A.EventTarget, AudioPannerNode: A.EventTarget, webkitAudioPannerNode: A.EventTarget, ScriptProcessorNode: A.EventTarget, JavaScriptAudioNode: A.EventTarget, StereoPannerNode: A.EventTarget, WaveShaperNode: A.EventTarget, EventTarget: A.EventTarget, File: A.File, FileList: A.FileList, FileWriter: A.FileWriter, HTMLFormElement: A.FormElement, Gamepad: A.Gamepad, History: A.History, HTMLCollection: A.HtmlCollection, HTMLFormControlsCollection: A.HtmlCollection, HTMLOptionsCollection: A.HtmlCollection, HTMLDocument: A.HtmlDocument, XMLHttpRequest: A.HttpRequest, XMLHttpRequestUpload: A.HttpRequestEventTarget, XMLHttpRequestEventTarget: A.HttpRequestEventTarget, ImageData: A.ImageData, KeyboardEvent: A.KeyboardEvent, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, MessagePort: A.MessagePort, MIDIInputMap: A.MidiInputMap, MIDIOutputMap: A.MidiOutputMap, MimeType: A.MimeType, MimeTypeArray: A.MimeTypeArray, DocumentFragment: A.Node, ShadowRoot: A.Node, DocumentType: A.Node, Node: A.Node, NodeList: A.NodeList, RadioNodeList: A.NodeList, Plugin: A.Plugin, PluginArray: A.PluginArray, ProgressEvent: A.ProgressEvent, ResourceProgressEvent: A.ProgressEvent, RTCStatsReport: A.RtcStatsReport, HTMLScriptElement: A.ScriptElement, HTMLSelectElement: A.SelectElement, SharedArrayBuffer: A.SharedArrayBuffer, SourceBuffer: A.SourceBuffer, SourceBufferList: A.SourceBufferList, SpeechGrammar: A.SpeechGrammar, SpeechGrammarList: A.SpeechGrammarList, SpeechRecognitionResult: A.SpeechRecognitionResult, Storage: A.Storage, CSSStyleSheet: A.StyleSheet, StyleSheet: A.StyleSheet, HTMLTableElement: A.TableElement, HTMLTableRowElement: A.TableRowElement, HTMLTableSectionElement: A.TableSectionElement, HTMLTemplateElement: A.TemplateElement, TextTrack: A.TextTrack, TextTrackCue: A.TextTrackCue, VTTCue: A.TextTrackCue, TextTrackCueList: A.TextTrackCueList, TextTrackList: A.TextTrackList, TimeRanges: A.TimeRanges, Touch: A.Touch, TouchList: A.TouchList, TrackDefaultList: A.TrackDefaultList, CompositionEvent: A.UIEvent, FocusEvent: A.UIEvent, MouseEvent: A.UIEvent, DragEvent: A.UIEvent, PointerEvent: A.UIEvent, TextEvent: A.UIEvent, TouchEvent: A.UIEvent, WheelEvent: A.UIEvent, UIEvent: A.UIEvent, URL: A.Url, VideoTrackList: A.VideoTrackList, WebSocket: A.WebSocket, Window: A.Window, DOMWindow: A.Window, DedicatedWorkerGlobalScope: A.WorkerGlobalScope, ServiceWorkerGlobalScope: A.WorkerGlobalScope, SharedWorkerGlobalScope: A.WorkerGlobalScope, WorkerGlobalScope: A.WorkerGlobalScope, Attr: A._Attr, CSSRuleList: A._CssRuleList, ClientRect: A._DomRect, DOMRect: A._DomRect, GamepadList: A._GamepadList, NamedNodeMap: A._NamedNodeMap, MozNamedAttrMap: A._NamedNodeMap, SpeechRecognitionResultList: A._SpeechRecognitionResultList, StyleSheetList: A._StyleSheetList, IDBKeyRange: A.KeyRange, SVGLength: A.Length, SVGLengthList: A.LengthList, SVGNumber: A.Number, SVGNumberList: A.NumberList, SVGPointList: A.PointList, SVGScriptElement: A.ScriptElement0, SVGStringList: A.StringList, SVGAElement: A.SvgElement, SVGAnimateElement: A.SvgElement, SVGAnimateMotionElement: A.SvgElement, SVGAnimateTransformElement: A.SvgElement, SVGAnimationElement: A.SvgElement, SVGCircleElement: A.SvgElement, SVGClipPathElement: A.SvgElement, SVGDefsElement: A.SvgElement, SVGDescElement: A.SvgElement, SVGDiscardElement: A.SvgElement, SVGEllipseElement: A.SvgElement, SVGFEBlendElement: A.SvgElement, SVGFEColorMatrixElement: A.SvgElement, SVGFEComponentTransferElement: A.SvgElement, SVGFECompositeElement: A.SvgElement, SVGFEConvolveMatrixElement: A.SvgElement, SVGFEDiffuseLightingElement: A.SvgElement, SVGFEDisplacementMapElement: A.SvgElement, SVGFEDistantLightElement: A.SvgElement, SVGFEFloodElement: A.SvgElement, SVGFEFuncAElement: A.SvgElement, SVGFEFuncBElement: A.SvgElement, SVGFEFuncGElement: A.SvgElement, SVGFEFuncRElement: A.SvgElement, SVGFEGaussianBlurElement: A.SvgElement, SVGFEImageElement: A.SvgElement, SVGFEMergeElement: A.SvgElement, SVGFEMergeNodeElement: A.SvgElement, SVGFEMorphologyElement: A.SvgElement, SVGFEOffsetElement: A.SvgElement, SVGFEPointLightElement: A.SvgElement, SVGFESpecularLightingElement: A.SvgElement, SVGFESpotLightElement: A.SvgElement, SVGFETileElement: A.SvgElement, SVGFETurbulenceElement: A.SvgElement, SVGFilterElement: A.SvgElement, SVGForeignObjectElement: A.SvgElement, SVGGElement: A.SvgElement, SVGGeometryElement: A.SvgElement, SVGGraphicsElement: A.SvgElement, SVGImageElement: A.SvgElement, SVGLineElement: A.SvgElement, SVGLinearGradientElement: A.SvgElement, SVGMarkerElement: A.SvgElement, SVGMaskElement: A.SvgElement, SVGMetadataElement: A.SvgElement, SVGPathElement: A.SvgElement, SVGPatternElement: A.SvgElement, SVGPolygonElement: A.SvgElement, SVGPolylineElement: A.SvgElement, SVGRadialGradientElement: A.SvgElement, SVGRectElement: A.SvgElement, SVGSetElement: A.SvgElement, SVGStopElement: A.SvgElement, SVGStyleElement: A.SvgElement, SVGSVGElement: A.SvgElement, SVGSwitchElement: A.SvgElement, SVGSymbolElement: A.SvgElement, SVGTSpanElement: A.SvgElement, SVGTextContentElement: A.SvgElement, SVGTextElement: A.SvgElement, SVGTextPathElement: A.SvgElement, SVGTextPositioningElement: A.SvgElement, SVGTitleElement: A.SvgElement, SVGUseElement: A.SvgElement, SVGViewElement: A.SvgElement, SVGGradientElement: A.SvgElement, SVGComponentTransferFunctionElement: A.SvgElement, SVGFEDropShadowElement: A.SvgElement, SVGMPathElement: A.SvgElement, SVGElement: A.SvgElement, SVGTransform: A.Transform, SVGTransformList: A.TransformList, AudioBuffer: A.AudioBuffer, AudioParamMap: A.AudioParamMap, AudioTrackList: A.AudioTrackList, AudioContext: A.BaseAudioContext, webkitAudioContext: A.BaseAudioContext, BaseAudioContext: A.BaseAudioContext, OfflineAudioContext: A.OfflineAudioContext}); - hunkHelpers.setOrUpdateLeafTags({WebGL: true, AnimationEffectReadOnly: true, AnimationEffectTiming: true, AnimationEffectTimingReadOnly: true, AnimationTimeline: true, AnimationWorkletGlobalScope: true, AuthenticatorAssertionResponse: true, AuthenticatorAttestationResponse: true, AuthenticatorResponse: true, BackgroundFetchFetch: true, BackgroundFetchManager: true, BackgroundFetchSettledFetch: true, BarProp: true, BarcodeDetector: true, BluetoothRemoteGATTDescriptor: true, Body: true, BudgetState: true, CacheStorage: true, CanvasGradient: true, CanvasPattern: true, CanvasRenderingContext2D: true, Client: true, Clients: true, CookieStore: true, Coordinates: true, Credential: true, CredentialUserData: true, CredentialsContainer: true, Crypto: true, CryptoKey: true, CSS: true, CSSVariableReferenceValue: true, CustomElementRegistry: true, DataTransfer: true, DataTransferItem: true, DeprecatedStorageInfo: true, DeprecatedStorageQuota: true, DeprecationReport: true, DetectedBarcode: true, DetectedFace: true, DetectedText: true, DeviceAcceleration: true, DeviceRotationRate: true, DirectoryEntry: true, webkitFileSystemDirectoryEntry: true, FileSystemDirectoryEntry: true, DirectoryReader: true, WebKitDirectoryReader: true, webkitFileSystemDirectoryReader: true, FileSystemDirectoryReader: true, DocumentOrShadowRoot: true, DocumentTimeline: true, DOMError: true, Iterator: true, DOMMatrix: true, DOMMatrixReadOnly: true, DOMParser: true, DOMPoint: true, DOMPointReadOnly: true, DOMQuad: true, DOMStringMap: true, Entry: true, webkitFileSystemEntry: true, FileSystemEntry: true, External: true, FaceDetector: true, FederatedCredential: true, FileEntry: true, webkitFileSystemFileEntry: true, FileSystemFileEntry: true, DOMFileSystem: true, WebKitFileSystem: true, webkitFileSystem: true, FileSystem: true, FontFace: true, FontFaceSource: true, FormData: true, GamepadButton: true, GamepadPose: true, Geolocation: true, Position: true, GeolocationPosition: true, Headers: true, HTMLHyperlinkElementUtils: true, IdleDeadline: true, ImageBitmap: true, ImageBitmapRenderingContext: true, ImageCapture: true, InputDeviceCapabilities: true, IntersectionObserver: true, IntersectionObserverEntry: true, InterventionReport: true, KeyframeEffect: true, KeyframeEffectReadOnly: true, MediaCapabilities: true, MediaCapabilitiesInfo: true, MediaDeviceInfo: true, MediaError: true, MediaKeyStatusMap: true, MediaKeySystemAccess: true, MediaKeys: true, MediaKeysPolicy: true, MediaMetadata: true, MediaSession: true, MediaSettingsRange: true, MemoryInfo: true, MessageChannel: true, Metadata: true, MutationObserver: true, WebKitMutationObserver: true, MutationRecord: true, NavigationPreloadManager: true, Navigator: true, NavigatorAutomationInformation: true, NavigatorConcurrentHardware: true, NavigatorCookies: true, NavigatorUserMediaError: true, NodeFilter: true, NodeIterator: true, NonDocumentTypeChildNode: true, NonElementParentNode: true, NoncedElement: true, OffscreenCanvasRenderingContext2D: true, OverconstrainedError: true, PaintRenderingContext2D: true, PaintSize: true, PaintWorkletGlobalScope: true, PasswordCredential: true, Path2D: true, PaymentAddress: true, PaymentInstruments: true, PaymentManager: true, PaymentResponse: true, PerformanceEntry: true, PerformanceLongTaskTiming: true, PerformanceMark: true, PerformanceMeasure: true, PerformanceNavigation: true, PerformanceNavigationTiming: true, PerformanceObserver: true, PerformanceObserverEntryList: true, PerformancePaintTiming: true, PerformanceResourceTiming: true, PerformanceServerTiming: true, PerformanceTiming: true, Permissions: true, PhotoCapabilities: true, PositionError: true, GeolocationPositionError: true, Presentation: true, PresentationReceiver: true, PublicKeyCredential: true, PushManager: true, PushMessageData: true, PushSubscription: true, PushSubscriptionOptions: true, Range: true, RelatedApplication: true, ReportBody: true, ReportingObserver: true, ResizeObserver: true, ResizeObserverEntry: true, RTCCertificate: true, RTCIceCandidate: true, mozRTCIceCandidate: true, RTCLegacyStatsReport: true, RTCRtpContributingSource: true, RTCRtpReceiver: true, RTCRtpSender: true, RTCSessionDescription: true, mozRTCSessionDescription: true, RTCStatsResponse: true, Screen: true, ScrollState: true, ScrollTimeline: true, Selection: true, SpeechRecognitionAlternative: true, SpeechSynthesisVoice: true, StaticRange: true, StorageManager: true, StyleMedia: true, StylePropertyMap: true, StylePropertyMapReadonly: true, SyncManager: true, TaskAttributionTiming: true, TextDetector: true, TextMetrics: true, TrackDefault: true, TreeWalker: true, TrustedHTML: true, TrustedScriptURL: true, TrustedURL: true, UnderlyingSourceBase: true, URLSearchParams: true, VRCoordinateSystem: true, VRDisplayCapabilities: true, VREyeParameters: true, VRFrameData: true, VRFrameOfReference: true, VRPose: true, VRStageBounds: true, VRStageBoundsPoint: true, VRStageParameters: true, ValidityState: true, VideoPlaybackQuality: true, VideoTrack: true, VTTRegion: true, WindowClient: true, WorkletAnimation: true, WorkletGlobalScope: true, XPathEvaluator: true, XPathExpression: true, XPathNSResolver: true, XPathResult: true, XMLSerializer: true, XSLTProcessor: true, Bluetooth: true, BluetoothCharacteristicProperties: true, BluetoothRemoteGATTServer: true, BluetoothRemoteGATTService: true, BluetoothUUID: true, BudgetService: true, Cache: true, DOMFileSystemSync: true, DirectoryEntrySync: true, DirectoryReaderSync: true, EntrySync: true, FileEntrySync: true, FileReaderSync: true, FileWriterSync: true, HTMLAllCollection: true, Mojo: true, MojoHandle: true, MojoWatcher: true, NFC: true, PagePopupController: true, Report: true, Request: true, Response: true, SubtleCrypto: true, USBAlternateInterface: true, USBConfiguration: true, USBDevice: true, USBEndpoint: true, USBInTransferResult: true, USBInterface: true, USBIsochronousInTransferPacket: true, USBIsochronousInTransferResult: true, USBIsochronousOutTransferPacket: true, USBIsochronousOutTransferResult: true, USBOutTransferResult: true, WorkerLocation: true, WorkerNavigator: true, Worklet: true, IDBCursor: true, IDBCursorWithValue: true, IDBFactory: true, IDBIndex: true, IDBObjectStore: true, IDBObservation: true, IDBObserver: true, IDBObserverChanges: true, SVGAngle: true, SVGAnimatedAngle: true, SVGAnimatedBoolean: true, SVGAnimatedEnumeration: true, SVGAnimatedInteger: true, SVGAnimatedLength: true, SVGAnimatedLengthList: true, SVGAnimatedNumber: true, SVGAnimatedNumberList: true, SVGAnimatedPreserveAspectRatio: true, SVGAnimatedRect: true, SVGAnimatedString: true, SVGAnimatedTransformList: true, SVGMatrix: true, SVGPoint: true, SVGPreserveAspectRatio: true, SVGRect: true, SVGUnitTypes: true, AudioListener: true, AudioParam: true, AudioTrack: true, AudioWorkletGlobalScope: true, AudioWorkletProcessor: true, PeriodicWave: true, WebGLActiveInfo: true, ANGLEInstancedArrays: true, ANGLE_instanced_arrays: true, WebGLBuffer: true, WebGLCanvas: true, WebGLColorBufferFloat: true, WebGLCompressedTextureASTC: true, WebGLCompressedTextureATC: true, WEBGL_compressed_texture_atc: true, WebGLCompressedTextureETC1: true, WEBGL_compressed_texture_etc1: true, WebGLCompressedTextureETC: true, WebGLCompressedTexturePVRTC: true, WEBGL_compressed_texture_pvrtc: true, WebGLCompressedTextureS3TC: true, WEBGL_compressed_texture_s3tc: true, WebGLCompressedTextureS3TCsRGB: true, WebGLDebugRendererInfo: true, WEBGL_debug_renderer_info: true, WebGLDebugShaders: true, WEBGL_debug_shaders: true, WebGLDepthTexture: true, WEBGL_depth_texture: true, WebGLDrawBuffers: true, WEBGL_draw_buffers: true, EXTsRGB: true, EXT_sRGB: true, EXTBlendMinMax: true, EXT_blend_minmax: true, EXTColorBufferFloat: true, EXTColorBufferHalfFloat: true, EXTDisjointTimerQuery: true, EXTDisjointTimerQueryWebGL2: true, EXTFragDepth: true, EXT_frag_depth: true, EXTShaderTextureLOD: true, EXT_shader_texture_lod: true, EXTTextureFilterAnisotropic: true, EXT_texture_filter_anisotropic: true, WebGLFramebuffer: true, WebGLGetBufferSubDataAsync: true, WebGLLoseContext: true, WebGLExtensionLoseContext: true, WEBGL_lose_context: true, OESElementIndexUint: true, OES_element_index_uint: true, OESStandardDerivatives: true, OES_standard_derivatives: true, OESTextureFloat: true, OES_texture_float: true, OESTextureFloatLinear: true, OES_texture_float_linear: true, OESTextureHalfFloat: true, OES_texture_half_float: true, OESTextureHalfFloatLinear: true, OES_texture_half_float_linear: true, OESVertexArrayObject: true, OES_vertex_array_object: true, WebGLProgram: true, WebGLQuery: true, WebGLRenderbuffer: true, WebGLRenderingContext: true, WebGL2RenderingContext: true, WebGLSampler: true, WebGLShader: true, WebGLShaderPrecisionFormat: true, WebGLSync: true, WebGLTexture: true, WebGLTimerQueryEXT: true, WebGLTransformFeedback: true, WebGLUniformLocation: true, WebGLVertexArrayObject: true, WebGLVertexArrayObjectOES: true, WebGL2RenderingContextBase: true, ArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false, HTMLAudioElement: true, HTMLBRElement: true, HTMLButtonElement: true, HTMLCanvasElement: true, HTMLContentElement: true, HTMLDListElement: true, HTMLDataElement: true, HTMLDataListElement: true, HTMLDetailsElement: true, HTMLDialogElement: true, HTMLDivElement: true, HTMLEmbedElement: true, HTMLFieldSetElement: true, HTMLHRElement: true, HTMLHeadElement: true, HTMLHeadingElement: true, HTMLHtmlElement: true, HTMLIFrameElement: true, HTMLImageElement: true, HTMLInputElement: true, HTMLLIElement: true, HTMLLabelElement: true, HTMLLegendElement: true, HTMLLinkElement: true, HTMLMapElement: true, HTMLMediaElement: true, HTMLMenuElement: true, HTMLMetaElement: true, HTMLMeterElement: true, HTMLModElement: true, HTMLOListElement: true, HTMLObjectElement: true, HTMLOptGroupElement: true, HTMLOptionElement: true, HTMLOutputElement: true, HTMLParagraphElement: true, HTMLParamElement: true, HTMLPictureElement: true, HTMLPreElement: true, HTMLProgressElement: true, HTMLQuoteElement: true, HTMLShadowElement: true, HTMLSlotElement: true, HTMLSourceElement: true, HTMLSpanElement: true, HTMLStyleElement: true, HTMLTableCaptionElement: true, HTMLTableCellElement: true, HTMLTableDataCellElement: true, HTMLTableHeaderCellElement: true, HTMLTableColElement: true, HTMLTextAreaElement: true, HTMLTimeElement: true, HTMLTitleElement: true, HTMLTrackElement: true, HTMLUListElement: true, HTMLUnknownElement: true, HTMLVideoElement: true, HTMLDirectoryElement: true, HTMLFontElement: true, HTMLFrameElement: true, HTMLFrameSetElement: true, HTMLMarqueeElement: true, HTMLElement: false, AccessibleNodeList: true, HTMLAnchorElement: true, HTMLAreaElement: true, HTMLBaseElement: true, Blob: false, HTMLBodyElement: true, CDATASection: true, CharacterData: true, Comment: true, ProcessingInstruction: true, Text: true, CloseEvent: true, CSSPerspective: true, CSSCharsetRule: true, CSSConditionRule: true, CSSFontFaceRule: true, CSSGroupingRule: true, CSSImportRule: true, CSSKeyframeRule: true, MozCSSKeyframeRule: true, WebKitCSSKeyframeRule: true, CSSKeyframesRule: true, MozCSSKeyframesRule: true, WebKitCSSKeyframesRule: true, CSSMediaRule: true, CSSNamespaceRule: true, CSSPageRule: true, CSSRule: true, CSSStyleRule: true, CSSSupportsRule: true, CSSViewportRule: true, CSSStyleDeclaration: true, MSStyleCSSProperties: true, CSS2Properties: true, CSSImageValue: true, CSSKeywordValue: true, CSSNumericValue: true, CSSPositionValue: true, CSSResourceValue: true, CSSUnitValue: true, CSSURLImageValue: true, CSSStyleValue: false, CSSMatrixComponent: true, CSSRotation: true, CSSScale: true, CSSSkew: true, CSSTranslation: true, CSSTransformComponent: false, CSSTransformValue: true, CSSUnparsedValue: true, CustomEvent: true, DataTransferItemList: true, XMLDocument: true, Document: false, DOMException: true, DOMImplementation: true, ClientRectList: true, DOMRectList: true, DOMRectReadOnly: false, DOMStringList: true, DOMTokenList: true, MathMLElement: true, Element: false, AbortPaymentEvent: true, AnimationEvent: true, AnimationPlaybackEvent: true, ApplicationCacheErrorEvent: true, BackgroundFetchClickEvent: true, BackgroundFetchEvent: true, BackgroundFetchFailEvent: true, BackgroundFetchedEvent: true, BeforeInstallPromptEvent: true, BeforeUnloadEvent: true, BlobEvent: true, CanMakePaymentEvent: true, ClipboardEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PopStateEvent: true, PresentationConnectionAvailableEvent: true, PresentationConnectionCloseEvent: true, PromiseRejectionEvent: true, PushEvent: true, RTCDataChannelEvent: true, RTCDTMFToneChangeEvent: true, RTCPeerConnectionIceEvent: true, RTCTrackEvent: true, SecurityPolicyViolationEvent: true, SensorErrorEvent: true, SpeechRecognitionError: true, SpeechRecognitionEvent: true, SpeechSynthesisEvent: true, StorageEvent: true, SyncEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, MojoInterfaceRequestEvent: true, USBConnectionEvent: true, IDBVersionChangeEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, EventSource: true, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, FileReader: true, FontFaceSet: true, Gyroscope: true, LinearAccelerationSensor: true, Magnetometer: true, MediaDevices: true, MediaKeySession: true, MediaQueryList: true, MediaRecorder: true, MediaSource: true, MediaStream: true, MediaStreamTrack: true, MIDIAccess: true, MIDIInput: true, MIDIOutput: true, MIDIPort: true, NetworkInformation: true, Notification: true, OffscreenCanvas: true, OrientationSensor: true, PaymentRequest: true, Performance: true, PermissionStatus: true, PresentationAvailability: true, PresentationConnection: true, PresentationConnectionList: true, PresentationRequest: true, RelativeOrientationSensor: true, RemotePlayback: true, RTCDataChannel: true, DataChannel: true, RTCDTMFSender: true, RTCPeerConnection: true, webkitRTCPeerConnection: true, mozRTCPeerConnection: true, ScreenOrientation: true, Sensor: true, ServiceWorker: true, ServiceWorkerContainer: true, ServiceWorkerRegistration: true, SharedWorker: true, SpeechRecognition: true, SpeechSynthesis: true, SpeechSynthesisUtterance: true, VR: true, VRDevice: true, VRDisplay: true, VRSession: true, VisualViewport: true, Worker: true, WorkerPerformance: true, BluetoothDevice: true, BluetoothRemoteGATTCharacteristic: true, Clipboard: true, MojoInterfaceInterceptor: true, USB: true, IDBDatabase: true, IDBOpenDBRequest: true, IDBVersionChangeRequest: true, IDBRequest: true, IDBTransaction: true, AnalyserNode: true, RealtimeAnalyserNode: true, AudioBufferSourceNode: true, AudioDestinationNode: true, AudioNode: true, AudioScheduledSourceNode: true, AudioWorkletNode: true, BiquadFilterNode: true, ChannelMergerNode: true, AudioChannelMerger: true, ChannelSplitterNode: true, AudioChannelSplitter: true, ConstantSourceNode: true, ConvolverNode: true, DelayNode: true, DynamicsCompressorNode: true, GainNode: true, AudioGainNode: true, IIRFilterNode: true, MediaElementAudioSourceNode: true, MediaStreamAudioDestinationNode: true, MediaStreamAudioSourceNode: true, OscillatorNode: true, Oscillator: true, PannerNode: true, AudioPannerNode: true, webkitAudioPannerNode: true, ScriptProcessorNode: true, JavaScriptAudioNode: true, StereoPannerNode: true, WaveShaperNode: true, EventTarget: false, File: true, FileList: true, FileWriter: true, HTMLFormElement: true, Gamepad: true, History: true, HTMLCollection: true, HTMLFormControlsCollection: true, HTMLOptionsCollection: true, HTMLDocument: true, XMLHttpRequest: true, XMLHttpRequestUpload: true, XMLHttpRequestEventTarget: false, ImageData: true, KeyboardEvent: true, Location: true, MediaList: true, MessageEvent: true, MessagePort: true, MIDIInputMap: true, MIDIOutputMap: true, MimeType: true, MimeTypeArray: true, DocumentFragment: true, ShadowRoot: true, DocumentType: true, Node: false, NodeList: true, RadioNodeList: true, Plugin: true, PluginArray: true, ProgressEvent: true, ResourceProgressEvent: true, RTCStatsReport: true, HTMLScriptElement: true, HTMLSelectElement: true, SharedArrayBuffer: true, SourceBuffer: true, SourceBufferList: true, SpeechGrammar: true, SpeechGrammarList: true, SpeechRecognitionResult: true, Storage: true, CSSStyleSheet: true, StyleSheet: true, HTMLTableElement: true, HTMLTableRowElement: true, HTMLTableSectionElement: true, HTMLTemplateElement: true, TextTrack: true, TextTrackCue: true, VTTCue: true, TextTrackCueList: true, TextTrackList: true, TimeRanges: true, Touch: true, TouchList: true, TrackDefaultList: true, CompositionEvent: true, FocusEvent: true, MouseEvent: true, DragEvent: true, PointerEvent: true, TextEvent: true, TouchEvent: true, WheelEvent: true, UIEvent: false, URL: true, VideoTrackList: true, WebSocket: true, Window: true, DOMWindow: true, DedicatedWorkerGlobalScope: true, ServiceWorkerGlobalScope: true, SharedWorkerGlobalScope: true, WorkerGlobalScope: true, Attr: true, CSSRuleList: true, ClientRect: true, DOMRect: true, GamepadList: true, NamedNodeMap: true, MozNamedAttrMap: true, SpeechRecognitionResultList: true, StyleSheetList: true, IDBKeyRange: true, SVGLength: true, SVGLengthList: true, SVGNumber: true, SVGNumberList: true, SVGPointList: true, SVGScriptElement: true, SVGStringList: true, SVGAElement: true, SVGAnimateElement: true, SVGAnimateMotionElement: true, SVGAnimateTransformElement: true, SVGAnimationElement: true, SVGCircleElement: true, SVGClipPathElement: true, SVGDefsElement: true, SVGDescElement: true, SVGDiscardElement: true, SVGEllipseElement: true, SVGFEBlendElement: true, SVGFEColorMatrixElement: true, SVGFEComponentTransferElement: true, SVGFECompositeElement: true, SVGFEConvolveMatrixElement: true, SVGFEDiffuseLightingElement: true, SVGFEDisplacementMapElement: true, SVGFEDistantLightElement: true, SVGFEFloodElement: true, SVGFEFuncAElement: true, SVGFEFuncBElement: true, SVGFEFuncGElement: true, SVGFEFuncRElement: true, SVGFEGaussianBlurElement: true, SVGFEImageElement: true, SVGFEMergeElement: true, SVGFEMergeNodeElement: true, SVGFEMorphologyElement: true, SVGFEOffsetElement: true, SVGFEPointLightElement: true, SVGFESpecularLightingElement: true, SVGFESpotLightElement: true, SVGFETileElement: true, SVGFETurbulenceElement: true, SVGFilterElement: true, SVGForeignObjectElement: true, SVGGElement: true, SVGGeometryElement: true, SVGGraphicsElement: true, SVGImageElement: true, SVGLineElement: true, SVGLinearGradientElement: true, SVGMarkerElement: true, SVGMaskElement: true, SVGMetadataElement: true, SVGPathElement: true, SVGPatternElement: true, SVGPolygonElement: true, SVGPolylineElement: true, SVGRadialGradientElement: true, SVGRectElement: true, SVGSetElement: true, SVGStopElement: true, SVGStyleElement: true, SVGSVGElement: true, SVGSwitchElement: true, SVGSymbolElement: true, SVGTSpanElement: true, SVGTextContentElement: true, SVGTextElement: true, SVGTextPathElement: true, SVGTextPositioningElement: true, SVGTitleElement: true, SVGUseElement: true, SVGViewElement: true, SVGGradientElement: true, SVGComponentTransferFunctionElement: true, SVGFEDropShadowElement: true, SVGMPathElement: true, SVGElement: false, SVGTransform: true, SVGTransformList: true, AudioBuffer: true, AudioParamMap: true, AudioTrackList: true, AudioContext: true, webkitAudioContext: true, BaseAudioContext: false, OfflineAudioContext: true}); + hunkHelpers.setOrUpdateInterceptorsByTag({WebGL: J.Interceptor, AnimationEffectReadOnly: J.JavaScriptObject, AnimationEffectTiming: J.JavaScriptObject, AnimationEffectTimingReadOnly: J.JavaScriptObject, AnimationTimeline: J.JavaScriptObject, AnimationWorkletGlobalScope: J.JavaScriptObject, AuthenticatorAssertionResponse: J.JavaScriptObject, AuthenticatorAttestationResponse: J.JavaScriptObject, AuthenticatorResponse: J.JavaScriptObject, BackgroundFetchFetch: J.JavaScriptObject, BackgroundFetchManager: J.JavaScriptObject, BackgroundFetchSettledFetch: J.JavaScriptObject, BarProp: J.JavaScriptObject, BarcodeDetector: J.JavaScriptObject, BluetoothRemoteGATTDescriptor: J.JavaScriptObject, Body: J.JavaScriptObject, BudgetState: J.JavaScriptObject, CacheStorage: J.JavaScriptObject, CanvasGradient: J.JavaScriptObject, CanvasPattern: J.JavaScriptObject, CanvasRenderingContext2D: J.JavaScriptObject, Client: J.JavaScriptObject, Clients: J.JavaScriptObject, CookieStore: J.JavaScriptObject, Coordinates: J.JavaScriptObject, Credential: J.JavaScriptObject, CredentialUserData: J.JavaScriptObject, CredentialsContainer: J.JavaScriptObject, Crypto: J.JavaScriptObject, CryptoKey: J.JavaScriptObject, CSS: J.JavaScriptObject, CSSVariableReferenceValue: J.JavaScriptObject, CustomElementRegistry: J.JavaScriptObject, DataTransfer: J.JavaScriptObject, DataTransferItem: J.JavaScriptObject, DeprecatedStorageInfo: J.JavaScriptObject, DeprecatedStorageQuota: J.JavaScriptObject, DeprecationReport: J.JavaScriptObject, DetectedBarcode: J.JavaScriptObject, DetectedFace: J.JavaScriptObject, DetectedText: J.JavaScriptObject, DeviceAcceleration: J.JavaScriptObject, DeviceRotationRate: J.JavaScriptObject, DirectoryEntry: J.JavaScriptObject, webkitFileSystemDirectoryEntry: J.JavaScriptObject, FileSystemDirectoryEntry: J.JavaScriptObject, DirectoryReader: J.JavaScriptObject, WebKitDirectoryReader: J.JavaScriptObject, webkitFileSystemDirectoryReader: J.JavaScriptObject, FileSystemDirectoryReader: J.JavaScriptObject, DocumentOrShadowRoot: J.JavaScriptObject, DocumentTimeline: J.JavaScriptObject, DOMError: J.JavaScriptObject, Iterator: J.JavaScriptObject, DOMMatrix: J.JavaScriptObject, DOMMatrixReadOnly: J.JavaScriptObject, DOMParser: J.JavaScriptObject, DOMPoint: J.JavaScriptObject, DOMPointReadOnly: J.JavaScriptObject, DOMQuad: J.JavaScriptObject, DOMStringMap: J.JavaScriptObject, Entry: J.JavaScriptObject, webkitFileSystemEntry: J.JavaScriptObject, FileSystemEntry: J.JavaScriptObject, External: J.JavaScriptObject, FaceDetector: J.JavaScriptObject, FederatedCredential: J.JavaScriptObject, FileEntry: J.JavaScriptObject, webkitFileSystemFileEntry: J.JavaScriptObject, FileSystemFileEntry: J.JavaScriptObject, DOMFileSystem: J.JavaScriptObject, WebKitFileSystem: J.JavaScriptObject, webkitFileSystem: J.JavaScriptObject, FileSystem: J.JavaScriptObject, FontFace: J.JavaScriptObject, FontFaceSource: J.JavaScriptObject, FormData: J.JavaScriptObject, GamepadButton: J.JavaScriptObject, GamepadPose: J.JavaScriptObject, Geolocation: J.JavaScriptObject, Position: J.JavaScriptObject, GeolocationPosition: J.JavaScriptObject, Headers: J.JavaScriptObject, HTMLHyperlinkElementUtils: J.JavaScriptObject, IdleDeadline: J.JavaScriptObject, ImageBitmap: J.JavaScriptObject, ImageBitmapRenderingContext: J.JavaScriptObject, ImageCapture: J.JavaScriptObject, InputDeviceCapabilities: J.JavaScriptObject, IntersectionObserver: J.JavaScriptObject, IntersectionObserverEntry: J.JavaScriptObject, InterventionReport: J.JavaScriptObject, KeyframeEffect: J.JavaScriptObject, KeyframeEffectReadOnly: J.JavaScriptObject, MediaCapabilities: J.JavaScriptObject, MediaCapabilitiesInfo: J.JavaScriptObject, MediaDeviceInfo: J.JavaScriptObject, MediaError: J.JavaScriptObject, MediaKeyStatusMap: J.JavaScriptObject, MediaKeySystemAccess: J.JavaScriptObject, MediaKeys: J.JavaScriptObject, MediaKeysPolicy: J.JavaScriptObject, MediaMetadata: J.JavaScriptObject, MediaSession: J.JavaScriptObject, MediaSettingsRange: J.JavaScriptObject, MemoryInfo: J.JavaScriptObject, MessageChannel: J.JavaScriptObject, Metadata: J.JavaScriptObject, MutationObserver: J.JavaScriptObject, WebKitMutationObserver: J.JavaScriptObject, MutationRecord: J.JavaScriptObject, NavigationPreloadManager: J.JavaScriptObject, Navigator: J.JavaScriptObject, NavigatorAutomationInformation: J.JavaScriptObject, NavigatorConcurrentHardware: J.JavaScriptObject, NavigatorCookies: J.JavaScriptObject, NavigatorUserMediaError: J.JavaScriptObject, NodeFilter: J.JavaScriptObject, NodeIterator: J.JavaScriptObject, NonDocumentTypeChildNode: J.JavaScriptObject, NonElementParentNode: J.JavaScriptObject, NoncedElement: J.JavaScriptObject, OffscreenCanvasRenderingContext2D: J.JavaScriptObject, OverconstrainedError: J.JavaScriptObject, PaintRenderingContext2D: J.JavaScriptObject, PaintSize: J.JavaScriptObject, PaintWorkletGlobalScope: J.JavaScriptObject, PasswordCredential: J.JavaScriptObject, Path2D: J.JavaScriptObject, PaymentAddress: J.JavaScriptObject, PaymentInstruments: J.JavaScriptObject, PaymentManager: J.JavaScriptObject, PaymentResponse: J.JavaScriptObject, PerformanceEntry: J.JavaScriptObject, PerformanceLongTaskTiming: J.JavaScriptObject, PerformanceMark: J.JavaScriptObject, PerformanceMeasure: J.JavaScriptObject, PerformanceNavigation: J.JavaScriptObject, PerformanceNavigationTiming: J.JavaScriptObject, PerformanceObserver: J.JavaScriptObject, PerformanceObserverEntryList: J.JavaScriptObject, PerformancePaintTiming: J.JavaScriptObject, PerformanceResourceTiming: J.JavaScriptObject, PerformanceServerTiming: J.JavaScriptObject, PerformanceTiming: J.JavaScriptObject, Permissions: J.JavaScriptObject, PhotoCapabilities: J.JavaScriptObject, PositionError: J.JavaScriptObject, GeolocationPositionError: J.JavaScriptObject, Presentation: J.JavaScriptObject, PresentationReceiver: J.JavaScriptObject, PublicKeyCredential: J.JavaScriptObject, PushManager: J.JavaScriptObject, PushMessageData: J.JavaScriptObject, PushSubscription: J.JavaScriptObject, PushSubscriptionOptions: J.JavaScriptObject, Range: J.JavaScriptObject, RelatedApplication: J.JavaScriptObject, ReportBody: J.JavaScriptObject, ReportingObserver: J.JavaScriptObject, ResizeObserver: J.JavaScriptObject, ResizeObserverEntry: J.JavaScriptObject, RTCCertificate: J.JavaScriptObject, RTCIceCandidate: J.JavaScriptObject, mozRTCIceCandidate: J.JavaScriptObject, RTCLegacyStatsReport: J.JavaScriptObject, RTCRtpContributingSource: J.JavaScriptObject, RTCRtpReceiver: J.JavaScriptObject, RTCRtpSender: J.JavaScriptObject, RTCSessionDescription: J.JavaScriptObject, mozRTCSessionDescription: J.JavaScriptObject, RTCStatsResponse: J.JavaScriptObject, Screen: J.JavaScriptObject, ScrollState: J.JavaScriptObject, ScrollTimeline: J.JavaScriptObject, Selection: J.JavaScriptObject, SharedArrayBuffer: J.JavaScriptObject, SpeechRecognitionAlternative: J.JavaScriptObject, SpeechSynthesisVoice: J.JavaScriptObject, StaticRange: J.JavaScriptObject, StorageManager: J.JavaScriptObject, StyleMedia: J.JavaScriptObject, StylePropertyMap: J.JavaScriptObject, StylePropertyMapReadonly: J.JavaScriptObject, SyncManager: J.JavaScriptObject, TaskAttributionTiming: J.JavaScriptObject, TextDetector: J.JavaScriptObject, TextMetrics: J.JavaScriptObject, TrackDefault: J.JavaScriptObject, TreeWalker: J.JavaScriptObject, TrustedHTML: J.JavaScriptObject, TrustedScriptURL: J.JavaScriptObject, TrustedURL: J.JavaScriptObject, UnderlyingSourceBase: J.JavaScriptObject, URLSearchParams: J.JavaScriptObject, VRCoordinateSystem: J.JavaScriptObject, VRDisplayCapabilities: J.JavaScriptObject, VREyeParameters: J.JavaScriptObject, VRFrameData: J.JavaScriptObject, VRFrameOfReference: J.JavaScriptObject, VRPose: J.JavaScriptObject, VRStageBounds: J.JavaScriptObject, VRStageBoundsPoint: J.JavaScriptObject, VRStageParameters: J.JavaScriptObject, ValidityState: J.JavaScriptObject, VideoPlaybackQuality: J.JavaScriptObject, VideoTrack: J.JavaScriptObject, VTTRegion: J.JavaScriptObject, WindowClient: J.JavaScriptObject, WorkletAnimation: J.JavaScriptObject, WorkletGlobalScope: J.JavaScriptObject, XPathEvaluator: J.JavaScriptObject, XPathExpression: J.JavaScriptObject, XPathNSResolver: J.JavaScriptObject, XPathResult: J.JavaScriptObject, XMLSerializer: J.JavaScriptObject, XSLTProcessor: J.JavaScriptObject, Bluetooth: J.JavaScriptObject, BluetoothCharacteristicProperties: J.JavaScriptObject, BluetoothRemoteGATTServer: J.JavaScriptObject, BluetoothRemoteGATTService: J.JavaScriptObject, BluetoothUUID: J.JavaScriptObject, BudgetService: J.JavaScriptObject, Cache: J.JavaScriptObject, DOMFileSystemSync: J.JavaScriptObject, DirectoryEntrySync: J.JavaScriptObject, DirectoryReaderSync: J.JavaScriptObject, EntrySync: J.JavaScriptObject, FileEntrySync: J.JavaScriptObject, FileReaderSync: J.JavaScriptObject, FileWriterSync: J.JavaScriptObject, HTMLAllCollection: J.JavaScriptObject, Mojo: J.JavaScriptObject, MojoHandle: J.JavaScriptObject, MojoWatcher: J.JavaScriptObject, NFC: J.JavaScriptObject, PagePopupController: J.JavaScriptObject, Report: J.JavaScriptObject, Request: J.JavaScriptObject, Response: J.JavaScriptObject, SubtleCrypto: J.JavaScriptObject, USBAlternateInterface: J.JavaScriptObject, USBConfiguration: J.JavaScriptObject, USBDevice: J.JavaScriptObject, USBEndpoint: J.JavaScriptObject, USBInTransferResult: J.JavaScriptObject, USBInterface: J.JavaScriptObject, USBIsochronousInTransferPacket: J.JavaScriptObject, USBIsochronousInTransferResult: J.JavaScriptObject, USBIsochronousOutTransferPacket: J.JavaScriptObject, USBIsochronousOutTransferResult: J.JavaScriptObject, USBOutTransferResult: J.JavaScriptObject, WorkerLocation: J.JavaScriptObject, WorkerNavigator: J.JavaScriptObject, Worklet: J.JavaScriptObject, IDBCursor: J.JavaScriptObject, IDBCursorWithValue: J.JavaScriptObject, IDBFactory: J.JavaScriptObject, IDBIndex: J.JavaScriptObject, IDBObjectStore: J.JavaScriptObject, IDBObservation: J.JavaScriptObject, IDBObserver: J.JavaScriptObject, IDBObserverChanges: J.JavaScriptObject, SVGAngle: J.JavaScriptObject, SVGAnimatedAngle: J.JavaScriptObject, SVGAnimatedBoolean: J.JavaScriptObject, SVGAnimatedEnumeration: J.JavaScriptObject, SVGAnimatedInteger: J.JavaScriptObject, SVGAnimatedLength: J.JavaScriptObject, SVGAnimatedLengthList: J.JavaScriptObject, SVGAnimatedNumber: J.JavaScriptObject, SVGAnimatedNumberList: J.JavaScriptObject, SVGAnimatedPreserveAspectRatio: J.JavaScriptObject, SVGAnimatedRect: J.JavaScriptObject, SVGAnimatedString: J.JavaScriptObject, SVGAnimatedTransformList: J.JavaScriptObject, SVGMatrix: J.JavaScriptObject, SVGPoint: J.JavaScriptObject, SVGPreserveAspectRatio: J.JavaScriptObject, SVGRect: J.JavaScriptObject, SVGUnitTypes: J.JavaScriptObject, AudioListener: J.JavaScriptObject, AudioParam: J.JavaScriptObject, AudioTrack: J.JavaScriptObject, AudioWorkletGlobalScope: J.JavaScriptObject, AudioWorkletProcessor: J.JavaScriptObject, PeriodicWave: J.JavaScriptObject, WebGLActiveInfo: J.JavaScriptObject, ANGLEInstancedArrays: J.JavaScriptObject, ANGLE_instanced_arrays: J.JavaScriptObject, WebGLBuffer: J.JavaScriptObject, WebGLCanvas: J.JavaScriptObject, WebGLColorBufferFloat: J.JavaScriptObject, WebGLCompressedTextureASTC: J.JavaScriptObject, WebGLCompressedTextureATC: J.JavaScriptObject, WEBGL_compressed_texture_atc: J.JavaScriptObject, WebGLCompressedTextureETC1: J.JavaScriptObject, WEBGL_compressed_texture_etc1: J.JavaScriptObject, WebGLCompressedTextureETC: J.JavaScriptObject, WebGLCompressedTexturePVRTC: J.JavaScriptObject, WEBGL_compressed_texture_pvrtc: J.JavaScriptObject, WebGLCompressedTextureS3TC: J.JavaScriptObject, WEBGL_compressed_texture_s3tc: J.JavaScriptObject, WebGLCompressedTextureS3TCsRGB: J.JavaScriptObject, WebGLDebugRendererInfo: J.JavaScriptObject, WEBGL_debug_renderer_info: J.JavaScriptObject, WebGLDebugShaders: J.JavaScriptObject, WEBGL_debug_shaders: J.JavaScriptObject, WebGLDepthTexture: J.JavaScriptObject, WEBGL_depth_texture: J.JavaScriptObject, WebGLDrawBuffers: J.JavaScriptObject, WEBGL_draw_buffers: J.JavaScriptObject, EXTsRGB: J.JavaScriptObject, EXT_sRGB: J.JavaScriptObject, EXTBlendMinMax: J.JavaScriptObject, EXT_blend_minmax: J.JavaScriptObject, EXTColorBufferFloat: J.JavaScriptObject, EXTColorBufferHalfFloat: J.JavaScriptObject, EXTDisjointTimerQuery: J.JavaScriptObject, EXTDisjointTimerQueryWebGL2: J.JavaScriptObject, EXTFragDepth: J.JavaScriptObject, EXT_frag_depth: J.JavaScriptObject, EXTShaderTextureLOD: J.JavaScriptObject, EXT_shader_texture_lod: J.JavaScriptObject, EXTTextureFilterAnisotropic: J.JavaScriptObject, EXT_texture_filter_anisotropic: J.JavaScriptObject, WebGLFramebuffer: J.JavaScriptObject, WebGLGetBufferSubDataAsync: J.JavaScriptObject, WebGLLoseContext: J.JavaScriptObject, WebGLExtensionLoseContext: J.JavaScriptObject, WEBGL_lose_context: J.JavaScriptObject, OESElementIndexUint: J.JavaScriptObject, OES_element_index_uint: J.JavaScriptObject, OESStandardDerivatives: J.JavaScriptObject, OES_standard_derivatives: J.JavaScriptObject, OESTextureFloat: J.JavaScriptObject, OES_texture_float: J.JavaScriptObject, OESTextureFloatLinear: J.JavaScriptObject, OES_texture_float_linear: J.JavaScriptObject, OESTextureHalfFloat: J.JavaScriptObject, OES_texture_half_float: J.JavaScriptObject, OESTextureHalfFloatLinear: J.JavaScriptObject, OES_texture_half_float_linear: J.JavaScriptObject, OESVertexArrayObject: J.JavaScriptObject, OES_vertex_array_object: J.JavaScriptObject, WebGLProgram: J.JavaScriptObject, WebGLQuery: J.JavaScriptObject, WebGLRenderbuffer: J.JavaScriptObject, WebGLRenderingContext: J.JavaScriptObject, WebGL2RenderingContext: J.JavaScriptObject, WebGLSampler: J.JavaScriptObject, WebGLShader: J.JavaScriptObject, WebGLShaderPrecisionFormat: J.JavaScriptObject, WebGLSync: J.JavaScriptObject, WebGLTexture: J.JavaScriptObject, WebGLTimerQueryEXT: J.JavaScriptObject, WebGLTransformFeedback: J.JavaScriptObject, WebGLUniformLocation: J.JavaScriptObject, WebGLVertexArrayObject: J.JavaScriptObject, WebGLVertexArrayObjectOES: J.JavaScriptObject, WebGL2RenderingContextBase: J.JavaScriptObject, ArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List, HTMLAudioElement: A.HtmlElement, HTMLBRElement: A.HtmlElement, HTMLButtonElement: A.HtmlElement, HTMLCanvasElement: A.HtmlElement, HTMLContentElement: A.HtmlElement, HTMLDListElement: A.HtmlElement, HTMLDataElement: A.HtmlElement, HTMLDataListElement: A.HtmlElement, HTMLDetailsElement: A.HtmlElement, HTMLDialogElement: A.HtmlElement, HTMLDivElement: A.HtmlElement, HTMLEmbedElement: A.HtmlElement, HTMLFieldSetElement: A.HtmlElement, HTMLHRElement: A.HtmlElement, HTMLHeadElement: A.HtmlElement, HTMLHeadingElement: A.HtmlElement, HTMLHtmlElement: A.HtmlElement, HTMLIFrameElement: A.HtmlElement, HTMLImageElement: A.HtmlElement, HTMLInputElement: A.HtmlElement, HTMLLIElement: A.HtmlElement, HTMLLabelElement: A.HtmlElement, HTMLLegendElement: A.HtmlElement, HTMLLinkElement: A.HtmlElement, HTMLMapElement: A.HtmlElement, HTMLMediaElement: A.HtmlElement, HTMLMenuElement: A.HtmlElement, HTMLMetaElement: A.HtmlElement, HTMLMeterElement: A.HtmlElement, HTMLModElement: A.HtmlElement, HTMLOListElement: A.HtmlElement, HTMLObjectElement: A.HtmlElement, HTMLOptGroupElement: A.HtmlElement, HTMLOptionElement: A.HtmlElement, HTMLOutputElement: A.HtmlElement, HTMLParagraphElement: A.HtmlElement, HTMLParamElement: A.HtmlElement, HTMLPictureElement: A.HtmlElement, HTMLPreElement: A.HtmlElement, HTMLProgressElement: A.HtmlElement, HTMLQuoteElement: A.HtmlElement, HTMLShadowElement: A.HtmlElement, HTMLSlotElement: A.HtmlElement, HTMLSourceElement: A.HtmlElement, HTMLSpanElement: A.HtmlElement, HTMLStyleElement: A.HtmlElement, HTMLTableCaptionElement: A.HtmlElement, HTMLTableCellElement: A.HtmlElement, HTMLTableDataCellElement: A.HtmlElement, HTMLTableHeaderCellElement: A.HtmlElement, HTMLTableColElement: A.HtmlElement, HTMLTextAreaElement: A.HtmlElement, HTMLTimeElement: A.HtmlElement, HTMLTitleElement: A.HtmlElement, HTMLTrackElement: A.HtmlElement, HTMLUListElement: A.HtmlElement, HTMLUnknownElement: A.HtmlElement, HTMLVideoElement: A.HtmlElement, HTMLDirectoryElement: A.HtmlElement, HTMLFontElement: A.HtmlElement, HTMLFrameElement: A.HtmlElement, HTMLFrameSetElement: A.HtmlElement, HTMLMarqueeElement: A.HtmlElement, HTMLElement: A.HtmlElement, AccessibleNodeList: A.AccessibleNodeList, HTMLAnchorElement: A.AnchorElement, HTMLAreaElement: A.AreaElement, HTMLBaseElement: A.BaseElement, Blob: A.Blob, HTMLBodyElement: A.BodyElement, CDATASection: A.CharacterData, CharacterData: A.CharacterData, Comment: A.CharacterData, ProcessingInstruction: A.CharacterData, Text: A.CharacterData, CloseEvent: A.CloseEvent, CSSPerspective: A.CssPerspective, CSSCharsetRule: A.CssRule, CSSConditionRule: A.CssRule, CSSFontFaceRule: A.CssRule, CSSGroupingRule: A.CssRule, CSSImportRule: A.CssRule, CSSKeyframeRule: A.CssRule, MozCSSKeyframeRule: A.CssRule, WebKitCSSKeyframeRule: A.CssRule, CSSKeyframesRule: A.CssRule, MozCSSKeyframesRule: A.CssRule, WebKitCSSKeyframesRule: A.CssRule, CSSMediaRule: A.CssRule, CSSNamespaceRule: A.CssRule, CSSPageRule: A.CssRule, CSSRule: A.CssRule, CSSStyleRule: A.CssRule, CSSSupportsRule: A.CssRule, CSSViewportRule: A.CssRule, CSSStyleDeclaration: A.CssStyleDeclaration, MSStyleCSSProperties: A.CssStyleDeclaration, CSS2Properties: A.CssStyleDeclaration, CSSImageValue: A.CssStyleValue, CSSKeywordValue: A.CssStyleValue, CSSNumericValue: A.CssStyleValue, CSSPositionValue: A.CssStyleValue, CSSResourceValue: A.CssStyleValue, CSSUnitValue: A.CssStyleValue, CSSURLImageValue: A.CssStyleValue, CSSStyleValue: A.CssStyleValue, CSSMatrixComponent: A.CssTransformComponent, CSSRotation: A.CssTransformComponent, CSSScale: A.CssTransformComponent, CSSSkew: A.CssTransformComponent, CSSTranslation: A.CssTransformComponent, CSSTransformComponent: A.CssTransformComponent, CSSTransformValue: A.CssTransformValue, CSSUnparsedValue: A.CssUnparsedValue, CustomEvent: A.CustomEvent, DataTransferItemList: A.DataTransferItemList, XMLDocument: A.Document, Document: A.Document, DOMException: A.DomException, DOMImplementation: A.DomImplementation, ClientRectList: A.DomRectList, DOMRectList: A.DomRectList, DOMRectReadOnly: A.DomRectReadOnly, DOMStringList: A.DomStringList, DOMTokenList: A.DomTokenList, MathMLElement: A.Element, Element: A.Element, AbortPaymentEvent: A.Event, AnimationEvent: A.Event, AnimationPlaybackEvent: A.Event, ApplicationCacheErrorEvent: A.Event, BackgroundFetchClickEvent: A.Event, BackgroundFetchEvent: A.Event, BackgroundFetchFailEvent: A.Event, BackgroundFetchedEvent: A.Event, BeforeInstallPromptEvent: A.Event, BeforeUnloadEvent: A.Event, BlobEvent: A.Event, CanMakePaymentEvent: A.Event, ClipboardEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PopStateEvent: A.Event, PresentationConnectionAvailableEvent: A.Event, PresentationConnectionCloseEvent: A.Event, PromiseRejectionEvent: A.Event, PushEvent: A.Event, RTCDataChannelEvent: A.Event, RTCDTMFToneChangeEvent: A.Event, RTCPeerConnectionIceEvent: A.Event, RTCTrackEvent: A.Event, SecurityPolicyViolationEvent: A.Event, SensorErrorEvent: A.Event, SpeechRecognitionError: A.Event, SpeechRecognitionEvent: A.Event, SpeechSynthesisEvent: A.Event, StorageEvent: A.Event, SyncEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, MojoInterfaceRequestEvent: A.Event, USBConnectionEvent: A.Event, IDBVersionChangeEvent: A.Event, AudioProcessingEvent: A.Event, OfflineAudioCompletionEvent: A.Event, WebGLContextEvent: A.Event, Event: A.Event, InputEvent: A.Event, SubmitEvent: A.Event, EventSource: A.EventSource, AbsoluteOrientationSensor: A.EventTarget, Accelerometer: A.EventTarget, AccessibleNode: A.EventTarget, AmbientLightSensor: A.EventTarget, Animation: A.EventTarget, ApplicationCache: A.EventTarget, DOMApplicationCache: A.EventTarget, OfflineResourceList: A.EventTarget, BackgroundFetchRegistration: A.EventTarget, BatteryManager: A.EventTarget, BroadcastChannel: A.EventTarget, CanvasCaptureMediaStreamTrack: A.EventTarget, FileReader: A.EventTarget, FontFaceSet: A.EventTarget, Gyroscope: A.EventTarget, LinearAccelerationSensor: A.EventTarget, Magnetometer: A.EventTarget, MediaDevices: A.EventTarget, MediaKeySession: A.EventTarget, MediaQueryList: A.EventTarget, MediaRecorder: A.EventTarget, MediaSource: A.EventTarget, MediaStream: A.EventTarget, MediaStreamTrack: A.EventTarget, MIDIAccess: A.EventTarget, MIDIInput: A.EventTarget, MIDIOutput: A.EventTarget, MIDIPort: A.EventTarget, NetworkInformation: A.EventTarget, Notification: A.EventTarget, OffscreenCanvas: A.EventTarget, OrientationSensor: A.EventTarget, PaymentRequest: A.EventTarget, Performance: A.EventTarget, PermissionStatus: A.EventTarget, PresentationAvailability: A.EventTarget, PresentationConnection: A.EventTarget, PresentationConnectionList: A.EventTarget, PresentationRequest: A.EventTarget, RelativeOrientationSensor: A.EventTarget, RemotePlayback: A.EventTarget, RTCDataChannel: A.EventTarget, DataChannel: A.EventTarget, RTCDTMFSender: A.EventTarget, RTCPeerConnection: A.EventTarget, webkitRTCPeerConnection: A.EventTarget, mozRTCPeerConnection: A.EventTarget, ScreenOrientation: A.EventTarget, Sensor: A.EventTarget, ServiceWorker: A.EventTarget, ServiceWorkerContainer: A.EventTarget, ServiceWorkerRegistration: A.EventTarget, SharedWorker: A.EventTarget, SpeechRecognition: A.EventTarget, SpeechSynthesis: A.EventTarget, SpeechSynthesisUtterance: A.EventTarget, VR: A.EventTarget, VRDevice: A.EventTarget, VRDisplay: A.EventTarget, VRSession: A.EventTarget, VisualViewport: A.EventTarget, Worker: A.EventTarget, WorkerPerformance: A.EventTarget, BluetoothDevice: A.EventTarget, BluetoothRemoteGATTCharacteristic: A.EventTarget, Clipboard: A.EventTarget, MojoInterfaceInterceptor: A.EventTarget, USB: A.EventTarget, IDBDatabase: A.EventTarget, IDBOpenDBRequest: A.EventTarget, IDBVersionChangeRequest: A.EventTarget, IDBRequest: A.EventTarget, IDBTransaction: A.EventTarget, AnalyserNode: A.EventTarget, RealtimeAnalyserNode: A.EventTarget, AudioBufferSourceNode: A.EventTarget, AudioDestinationNode: A.EventTarget, AudioNode: A.EventTarget, AudioScheduledSourceNode: A.EventTarget, AudioWorkletNode: A.EventTarget, BiquadFilterNode: A.EventTarget, ChannelMergerNode: A.EventTarget, AudioChannelMerger: A.EventTarget, ChannelSplitterNode: A.EventTarget, AudioChannelSplitter: A.EventTarget, ConstantSourceNode: A.EventTarget, ConvolverNode: A.EventTarget, DelayNode: A.EventTarget, DynamicsCompressorNode: A.EventTarget, GainNode: A.EventTarget, AudioGainNode: A.EventTarget, IIRFilterNode: A.EventTarget, MediaElementAudioSourceNode: A.EventTarget, MediaStreamAudioDestinationNode: A.EventTarget, MediaStreamAudioSourceNode: A.EventTarget, OscillatorNode: A.EventTarget, Oscillator: A.EventTarget, PannerNode: A.EventTarget, AudioPannerNode: A.EventTarget, webkitAudioPannerNode: A.EventTarget, ScriptProcessorNode: A.EventTarget, JavaScriptAudioNode: A.EventTarget, StereoPannerNode: A.EventTarget, WaveShaperNode: A.EventTarget, EventTarget: A.EventTarget, File: A.File, FileList: A.FileList, FileWriter: A.FileWriter, HTMLFormElement: A.FormElement, Gamepad: A.Gamepad, History: A.History, HTMLCollection: A.HtmlCollection, HTMLFormControlsCollection: A.HtmlCollection, HTMLOptionsCollection: A.HtmlCollection, HTMLDocument: A.HtmlDocument, XMLHttpRequest: A.HttpRequest, XMLHttpRequestUpload: A.HttpRequestEventTarget, XMLHttpRequestEventTarget: A.HttpRequestEventTarget, ImageData: A.ImageData, KeyboardEvent: A.KeyboardEvent, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, MessagePort: A.MessagePort, MIDIInputMap: A.MidiInputMap, MIDIOutputMap: A.MidiOutputMap, MimeType: A.MimeType, MimeTypeArray: A.MimeTypeArray, DocumentFragment: A.Node, ShadowRoot: A.Node, DocumentType: A.Node, Node: A.Node, NodeList: A.NodeList, RadioNodeList: A.NodeList, Plugin: A.Plugin, PluginArray: A.PluginArray, ProgressEvent: A.ProgressEvent, ResourceProgressEvent: A.ProgressEvent, RTCStatsReport: A.RtcStatsReport, HTMLScriptElement: A.ScriptElement, HTMLSelectElement: A.SelectElement, SourceBuffer: A.SourceBuffer, SourceBufferList: A.SourceBufferList, SpeechGrammar: A.SpeechGrammar, SpeechGrammarList: A.SpeechGrammarList, SpeechRecognitionResult: A.SpeechRecognitionResult, Storage: A.Storage, CSSStyleSheet: A.StyleSheet, StyleSheet: A.StyleSheet, HTMLTableElement: A.TableElement, HTMLTableRowElement: A.TableRowElement, HTMLTableSectionElement: A.TableSectionElement, HTMLTemplateElement: A.TemplateElement, TextTrack: A.TextTrack, TextTrackCue: A.TextTrackCue, VTTCue: A.TextTrackCue, TextTrackCueList: A.TextTrackCueList, TextTrackList: A.TextTrackList, TimeRanges: A.TimeRanges, Touch: A.Touch, TouchList: A.TouchList, TrackDefaultList: A.TrackDefaultList, CompositionEvent: A.UIEvent, FocusEvent: A.UIEvent, MouseEvent: A.UIEvent, DragEvent: A.UIEvent, PointerEvent: A.UIEvent, TextEvent: A.UIEvent, TouchEvent: A.UIEvent, WheelEvent: A.UIEvent, UIEvent: A.UIEvent, URL: A.Url, VideoTrackList: A.VideoTrackList, WebSocket: A.WebSocket, Window: A.Window, DOMWindow: A.Window, DedicatedWorkerGlobalScope: A.WorkerGlobalScope, ServiceWorkerGlobalScope: A.WorkerGlobalScope, SharedWorkerGlobalScope: A.WorkerGlobalScope, WorkerGlobalScope: A.WorkerGlobalScope, Attr: A._Attr, CSSRuleList: A._CssRuleList, ClientRect: A._DomRect, DOMRect: A._DomRect, GamepadList: A._GamepadList, NamedNodeMap: A._NamedNodeMap, MozNamedAttrMap: A._NamedNodeMap, SpeechRecognitionResultList: A._SpeechRecognitionResultList, StyleSheetList: A._StyleSheetList, IDBKeyRange: A.KeyRange, SVGLength: A.Length, SVGLengthList: A.LengthList, SVGNumber: A.Number, SVGNumberList: A.NumberList, SVGPointList: A.PointList, SVGScriptElement: A.ScriptElement0, SVGStringList: A.StringList, SVGAElement: A.SvgElement, SVGAnimateElement: A.SvgElement, SVGAnimateMotionElement: A.SvgElement, SVGAnimateTransformElement: A.SvgElement, SVGAnimationElement: A.SvgElement, SVGCircleElement: A.SvgElement, SVGClipPathElement: A.SvgElement, SVGDefsElement: A.SvgElement, SVGDescElement: A.SvgElement, SVGDiscardElement: A.SvgElement, SVGEllipseElement: A.SvgElement, SVGFEBlendElement: A.SvgElement, SVGFEColorMatrixElement: A.SvgElement, SVGFEComponentTransferElement: A.SvgElement, SVGFECompositeElement: A.SvgElement, SVGFEConvolveMatrixElement: A.SvgElement, SVGFEDiffuseLightingElement: A.SvgElement, SVGFEDisplacementMapElement: A.SvgElement, SVGFEDistantLightElement: A.SvgElement, SVGFEFloodElement: A.SvgElement, SVGFEFuncAElement: A.SvgElement, SVGFEFuncBElement: A.SvgElement, SVGFEFuncGElement: A.SvgElement, SVGFEFuncRElement: A.SvgElement, SVGFEGaussianBlurElement: A.SvgElement, SVGFEImageElement: A.SvgElement, SVGFEMergeElement: A.SvgElement, SVGFEMergeNodeElement: A.SvgElement, SVGFEMorphologyElement: A.SvgElement, SVGFEOffsetElement: A.SvgElement, SVGFEPointLightElement: A.SvgElement, SVGFESpecularLightingElement: A.SvgElement, SVGFESpotLightElement: A.SvgElement, SVGFETileElement: A.SvgElement, SVGFETurbulenceElement: A.SvgElement, SVGFilterElement: A.SvgElement, SVGForeignObjectElement: A.SvgElement, SVGGElement: A.SvgElement, SVGGeometryElement: A.SvgElement, SVGGraphicsElement: A.SvgElement, SVGImageElement: A.SvgElement, SVGLineElement: A.SvgElement, SVGLinearGradientElement: A.SvgElement, SVGMarkerElement: A.SvgElement, SVGMaskElement: A.SvgElement, SVGMetadataElement: A.SvgElement, SVGPathElement: A.SvgElement, SVGPatternElement: A.SvgElement, SVGPolygonElement: A.SvgElement, SVGPolylineElement: A.SvgElement, SVGRadialGradientElement: A.SvgElement, SVGRectElement: A.SvgElement, SVGSetElement: A.SvgElement, SVGStopElement: A.SvgElement, SVGStyleElement: A.SvgElement, SVGSVGElement: A.SvgElement, SVGSwitchElement: A.SvgElement, SVGSymbolElement: A.SvgElement, SVGTSpanElement: A.SvgElement, SVGTextContentElement: A.SvgElement, SVGTextElement: A.SvgElement, SVGTextPathElement: A.SvgElement, SVGTextPositioningElement: A.SvgElement, SVGTitleElement: A.SvgElement, SVGUseElement: A.SvgElement, SVGViewElement: A.SvgElement, SVGGradientElement: A.SvgElement, SVGComponentTransferFunctionElement: A.SvgElement, SVGFEDropShadowElement: A.SvgElement, SVGMPathElement: A.SvgElement, SVGElement: A.SvgElement, SVGTransform: A.Transform, SVGTransformList: A.TransformList, AudioBuffer: A.AudioBuffer, AudioParamMap: A.AudioParamMap, AudioTrackList: A.AudioTrackList, AudioContext: A.BaseAudioContext, webkitAudioContext: A.BaseAudioContext, BaseAudioContext: A.BaseAudioContext, OfflineAudioContext: A.OfflineAudioContext}); + hunkHelpers.setOrUpdateLeafTags({WebGL: true, AnimationEffectReadOnly: true, AnimationEffectTiming: true, AnimationEffectTimingReadOnly: true, AnimationTimeline: true, AnimationWorkletGlobalScope: true, AuthenticatorAssertionResponse: true, AuthenticatorAttestationResponse: true, AuthenticatorResponse: true, BackgroundFetchFetch: true, BackgroundFetchManager: true, BackgroundFetchSettledFetch: true, BarProp: true, BarcodeDetector: true, BluetoothRemoteGATTDescriptor: true, Body: true, BudgetState: true, CacheStorage: true, CanvasGradient: true, CanvasPattern: true, CanvasRenderingContext2D: true, Client: true, Clients: true, CookieStore: true, Coordinates: true, Credential: true, CredentialUserData: true, CredentialsContainer: true, Crypto: true, CryptoKey: true, CSS: true, CSSVariableReferenceValue: true, CustomElementRegistry: true, DataTransfer: true, DataTransferItem: true, DeprecatedStorageInfo: true, DeprecatedStorageQuota: true, DeprecationReport: true, DetectedBarcode: true, DetectedFace: true, DetectedText: true, DeviceAcceleration: true, DeviceRotationRate: true, DirectoryEntry: true, webkitFileSystemDirectoryEntry: true, FileSystemDirectoryEntry: true, DirectoryReader: true, WebKitDirectoryReader: true, webkitFileSystemDirectoryReader: true, FileSystemDirectoryReader: true, DocumentOrShadowRoot: true, DocumentTimeline: true, DOMError: true, Iterator: true, DOMMatrix: true, DOMMatrixReadOnly: true, DOMParser: true, DOMPoint: true, DOMPointReadOnly: true, DOMQuad: true, DOMStringMap: true, Entry: true, webkitFileSystemEntry: true, FileSystemEntry: true, External: true, FaceDetector: true, FederatedCredential: true, FileEntry: true, webkitFileSystemFileEntry: true, FileSystemFileEntry: true, DOMFileSystem: true, WebKitFileSystem: true, webkitFileSystem: true, FileSystem: true, FontFace: true, FontFaceSource: true, FormData: true, GamepadButton: true, GamepadPose: true, Geolocation: true, Position: true, GeolocationPosition: true, Headers: true, HTMLHyperlinkElementUtils: true, IdleDeadline: true, ImageBitmap: true, ImageBitmapRenderingContext: true, ImageCapture: true, InputDeviceCapabilities: true, IntersectionObserver: true, IntersectionObserverEntry: true, InterventionReport: true, KeyframeEffect: true, KeyframeEffectReadOnly: true, MediaCapabilities: true, MediaCapabilitiesInfo: true, MediaDeviceInfo: true, MediaError: true, MediaKeyStatusMap: true, MediaKeySystemAccess: true, MediaKeys: true, MediaKeysPolicy: true, MediaMetadata: true, MediaSession: true, MediaSettingsRange: true, MemoryInfo: true, MessageChannel: true, Metadata: true, MutationObserver: true, WebKitMutationObserver: true, MutationRecord: true, NavigationPreloadManager: true, Navigator: true, NavigatorAutomationInformation: true, NavigatorConcurrentHardware: true, NavigatorCookies: true, NavigatorUserMediaError: true, NodeFilter: true, NodeIterator: true, NonDocumentTypeChildNode: true, NonElementParentNode: true, NoncedElement: true, OffscreenCanvasRenderingContext2D: true, OverconstrainedError: true, PaintRenderingContext2D: true, PaintSize: true, PaintWorkletGlobalScope: true, PasswordCredential: true, Path2D: true, PaymentAddress: true, PaymentInstruments: true, PaymentManager: true, PaymentResponse: true, PerformanceEntry: true, PerformanceLongTaskTiming: true, PerformanceMark: true, PerformanceMeasure: true, PerformanceNavigation: true, PerformanceNavigationTiming: true, PerformanceObserver: true, PerformanceObserverEntryList: true, PerformancePaintTiming: true, PerformanceResourceTiming: true, PerformanceServerTiming: true, PerformanceTiming: true, Permissions: true, PhotoCapabilities: true, PositionError: true, GeolocationPositionError: true, Presentation: true, PresentationReceiver: true, PublicKeyCredential: true, PushManager: true, PushMessageData: true, PushSubscription: true, PushSubscriptionOptions: true, Range: true, RelatedApplication: true, ReportBody: true, ReportingObserver: true, ResizeObserver: true, ResizeObserverEntry: true, RTCCertificate: true, RTCIceCandidate: true, mozRTCIceCandidate: true, RTCLegacyStatsReport: true, RTCRtpContributingSource: true, RTCRtpReceiver: true, RTCRtpSender: true, RTCSessionDescription: true, mozRTCSessionDescription: true, RTCStatsResponse: true, Screen: true, ScrollState: true, ScrollTimeline: true, Selection: true, SharedArrayBuffer: true, SpeechRecognitionAlternative: true, SpeechSynthesisVoice: true, StaticRange: true, StorageManager: true, StyleMedia: true, StylePropertyMap: true, StylePropertyMapReadonly: true, SyncManager: true, TaskAttributionTiming: true, TextDetector: true, TextMetrics: true, TrackDefault: true, TreeWalker: true, TrustedHTML: true, TrustedScriptURL: true, TrustedURL: true, UnderlyingSourceBase: true, URLSearchParams: true, VRCoordinateSystem: true, VRDisplayCapabilities: true, VREyeParameters: true, VRFrameData: true, VRFrameOfReference: true, VRPose: true, VRStageBounds: true, VRStageBoundsPoint: true, VRStageParameters: true, ValidityState: true, VideoPlaybackQuality: true, VideoTrack: true, VTTRegion: true, WindowClient: true, WorkletAnimation: true, WorkletGlobalScope: true, XPathEvaluator: true, XPathExpression: true, XPathNSResolver: true, XPathResult: true, XMLSerializer: true, XSLTProcessor: true, Bluetooth: true, BluetoothCharacteristicProperties: true, BluetoothRemoteGATTServer: true, BluetoothRemoteGATTService: true, BluetoothUUID: true, BudgetService: true, Cache: true, DOMFileSystemSync: true, DirectoryEntrySync: true, DirectoryReaderSync: true, EntrySync: true, FileEntrySync: true, FileReaderSync: true, FileWriterSync: true, HTMLAllCollection: true, Mojo: true, MojoHandle: true, MojoWatcher: true, NFC: true, PagePopupController: true, Report: true, Request: true, Response: true, SubtleCrypto: true, USBAlternateInterface: true, USBConfiguration: true, USBDevice: true, USBEndpoint: true, USBInTransferResult: true, USBInterface: true, USBIsochronousInTransferPacket: true, USBIsochronousInTransferResult: true, USBIsochronousOutTransferPacket: true, USBIsochronousOutTransferResult: true, USBOutTransferResult: true, WorkerLocation: true, WorkerNavigator: true, Worklet: true, IDBCursor: true, IDBCursorWithValue: true, IDBFactory: true, IDBIndex: true, IDBObjectStore: true, IDBObservation: true, IDBObserver: true, IDBObserverChanges: true, SVGAngle: true, SVGAnimatedAngle: true, SVGAnimatedBoolean: true, SVGAnimatedEnumeration: true, SVGAnimatedInteger: true, SVGAnimatedLength: true, SVGAnimatedLengthList: true, SVGAnimatedNumber: true, SVGAnimatedNumberList: true, SVGAnimatedPreserveAspectRatio: true, SVGAnimatedRect: true, SVGAnimatedString: true, SVGAnimatedTransformList: true, SVGMatrix: true, SVGPoint: true, SVGPreserveAspectRatio: true, SVGRect: true, SVGUnitTypes: true, AudioListener: true, AudioParam: true, AudioTrack: true, AudioWorkletGlobalScope: true, AudioWorkletProcessor: true, PeriodicWave: true, WebGLActiveInfo: true, ANGLEInstancedArrays: true, ANGLE_instanced_arrays: true, WebGLBuffer: true, WebGLCanvas: true, WebGLColorBufferFloat: true, WebGLCompressedTextureASTC: true, WebGLCompressedTextureATC: true, WEBGL_compressed_texture_atc: true, WebGLCompressedTextureETC1: true, WEBGL_compressed_texture_etc1: true, WebGLCompressedTextureETC: true, WebGLCompressedTexturePVRTC: true, WEBGL_compressed_texture_pvrtc: true, WebGLCompressedTextureS3TC: true, WEBGL_compressed_texture_s3tc: true, WebGLCompressedTextureS3TCsRGB: true, WebGLDebugRendererInfo: true, WEBGL_debug_renderer_info: true, WebGLDebugShaders: true, WEBGL_debug_shaders: true, WebGLDepthTexture: true, WEBGL_depth_texture: true, WebGLDrawBuffers: true, WEBGL_draw_buffers: true, EXTsRGB: true, EXT_sRGB: true, EXTBlendMinMax: true, EXT_blend_minmax: true, EXTColorBufferFloat: true, EXTColorBufferHalfFloat: true, EXTDisjointTimerQuery: true, EXTDisjointTimerQueryWebGL2: true, EXTFragDepth: true, EXT_frag_depth: true, EXTShaderTextureLOD: true, EXT_shader_texture_lod: true, EXTTextureFilterAnisotropic: true, EXT_texture_filter_anisotropic: true, WebGLFramebuffer: true, WebGLGetBufferSubDataAsync: true, WebGLLoseContext: true, WebGLExtensionLoseContext: true, WEBGL_lose_context: true, OESElementIndexUint: true, OES_element_index_uint: true, OESStandardDerivatives: true, OES_standard_derivatives: true, OESTextureFloat: true, OES_texture_float: true, OESTextureFloatLinear: true, OES_texture_float_linear: true, OESTextureHalfFloat: true, OES_texture_half_float: true, OESTextureHalfFloatLinear: true, OES_texture_half_float_linear: true, OESVertexArrayObject: true, OES_vertex_array_object: true, WebGLProgram: true, WebGLQuery: true, WebGLRenderbuffer: true, WebGLRenderingContext: true, WebGL2RenderingContext: true, WebGLSampler: true, WebGLShader: true, WebGLShaderPrecisionFormat: true, WebGLSync: true, WebGLTexture: true, WebGLTimerQueryEXT: true, WebGLTransformFeedback: true, WebGLUniformLocation: true, WebGLVertexArrayObject: true, WebGLVertexArrayObjectOES: true, WebGL2RenderingContextBase: true, ArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false, HTMLAudioElement: true, HTMLBRElement: true, HTMLButtonElement: true, HTMLCanvasElement: true, HTMLContentElement: true, HTMLDListElement: true, HTMLDataElement: true, HTMLDataListElement: true, HTMLDetailsElement: true, HTMLDialogElement: true, HTMLDivElement: true, HTMLEmbedElement: true, HTMLFieldSetElement: true, HTMLHRElement: true, HTMLHeadElement: true, HTMLHeadingElement: true, HTMLHtmlElement: true, HTMLIFrameElement: true, HTMLImageElement: true, HTMLInputElement: true, HTMLLIElement: true, HTMLLabelElement: true, HTMLLegendElement: true, HTMLLinkElement: true, HTMLMapElement: true, HTMLMediaElement: true, HTMLMenuElement: true, HTMLMetaElement: true, HTMLMeterElement: true, HTMLModElement: true, HTMLOListElement: true, HTMLObjectElement: true, HTMLOptGroupElement: true, HTMLOptionElement: true, HTMLOutputElement: true, HTMLParagraphElement: true, HTMLParamElement: true, HTMLPictureElement: true, HTMLPreElement: true, HTMLProgressElement: true, HTMLQuoteElement: true, HTMLShadowElement: true, HTMLSlotElement: true, HTMLSourceElement: true, HTMLSpanElement: true, HTMLStyleElement: true, HTMLTableCaptionElement: true, HTMLTableCellElement: true, HTMLTableDataCellElement: true, HTMLTableHeaderCellElement: true, HTMLTableColElement: true, HTMLTextAreaElement: true, HTMLTimeElement: true, HTMLTitleElement: true, HTMLTrackElement: true, HTMLUListElement: true, HTMLUnknownElement: true, HTMLVideoElement: true, HTMLDirectoryElement: true, HTMLFontElement: true, HTMLFrameElement: true, HTMLFrameSetElement: true, HTMLMarqueeElement: true, HTMLElement: false, AccessibleNodeList: true, HTMLAnchorElement: true, HTMLAreaElement: true, HTMLBaseElement: true, Blob: false, HTMLBodyElement: true, CDATASection: true, CharacterData: true, Comment: true, ProcessingInstruction: true, Text: true, CloseEvent: true, CSSPerspective: true, CSSCharsetRule: true, CSSConditionRule: true, CSSFontFaceRule: true, CSSGroupingRule: true, CSSImportRule: true, CSSKeyframeRule: true, MozCSSKeyframeRule: true, WebKitCSSKeyframeRule: true, CSSKeyframesRule: true, MozCSSKeyframesRule: true, WebKitCSSKeyframesRule: true, CSSMediaRule: true, CSSNamespaceRule: true, CSSPageRule: true, CSSRule: true, CSSStyleRule: true, CSSSupportsRule: true, CSSViewportRule: true, CSSStyleDeclaration: true, MSStyleCSSProperties: true, CSS2Properties: true, CSSImageValue: true, CSSKeywordValue: true, CSSNumericValue: true, CSSPositionValue: true, CSSResourceValue: true, CSSUnitValue: true, CSSURLImageValue: true, CSSStyleValue: false, CSSMatrixComponent: true, CSSRotation: true, CSSScale: true, CSSSkew: true, CSSTranslation: true, CSSTransformComponent: false, CSSTransformValue: true, CSSUnparsedValue: true, CustomEvent: true, DataTransferItemList: true, XMLDocument: true, Document: false, DOMException: true, DOMImplementation: true, ClientRectList: true, DOMRectList: true, DOMRectReadOnly: false, DOMStringList: true, DOMTokenList: true, MathMLElement: true, Element: false, AbortPaymentEvent: true, AnimationEvent: true, AnimationPlaybackEvent: true, ApplicationCacheErrorEvent: true, BackgroundFetchClickEvent: true, BackgroundFetchEvent: true, BackgroundFetchFailEvent: true, BackgroundFetchedEvent: true, BeforeInstallPromptEvent: true, BeforeUnloadEvent: true, BlobEvent: true, CanMakePaymentEvent: true, ClipboardEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PopStateEvent: true, PresentationConnectionAvailableEvent: true, PresentationConnectionCloseEvent: true, PromiseRejectionEvent: true, PushEvent: true, RTCDataChannelEvent: true, RTCDTMFToneChangeEvent: true, RTCPeerConnectionIceEvent: true, RTCTrackEvent: true, SecurityPolicyViolationEvent: true, SensorErrorEvent: true, SpeechRecognitionError: true, SpeechRecognitionEvent: true, SpeechSynthesisEvent: true, StorageEvent: true, SyncEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, MojoInterfaceRequestEvent: true, USBConnectionEvent: true, IDBVersionChangeEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, EventSource: true, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, FileReader: true, FontFaceSet: true, Gyroscope: true, LinearAccelerationSensor: true, Magnetometer: true, MediaDevices: true, MediaKeySession: true, MediaQueryList: true, MediaRecorder: true, MediaSource: true, MediaStream: true, MediaStreamTrack: true, MIDIAccess: true, MIDIInput: true, MIDIOutput: true, MIDIPort: true, NetworkInformation: true, Notification: true, OffscreenCanvas: true, OrientationSensor: true, PaymentRequest: true, Performance: true, PermissionStatus: true, PresentationAvailability: true, PresentationConnection: true, PresentationConnectionList: true, PresentationRequest: true, RelativeOrientationSensor: true, RemotePlayback: true, RTCDataChannel: true, DataChannel: true, RTCDTMFSender: true, RTCPeerConnection: true, webkitRTCPeerConnection: true, mozRTCPeerConnection: true, ScreenOrientation: true, Sensor: true, ServiceWorker: true, ServiceWorkerContainer: true, ServiceWorkerRegistration: true, SharedWorker: true, SpeechRecognition: true, SpeechSynthesis: true, SpeechSynthesisUtterance: true, VR: true, VRDevice: true, VRDisplay: true, VRSession: true, VisualViewport: true, Worker: true, WorkerPerformance: true, BluetoothDevice: true, BluetoothRemoteGATTCharacteristic: true, Clipboard: true, MojoInterfaceInterceptor: true, USB: true, IDBDatabase: true, IDBOpenDBRequest: true, IDBVersionChangeRequest: true, IDBRequest: true, IDBTransaction: true, AnalyserNode: true, RealtimeAnalyserNode: true, AudioBufferSourceNode: true, AudioDestinationNode: true, AudioNode: true, AudioScheduledSourceNode: true, AudioWorkletNode: true, BiquadFilterNode: true, ChannelMergerNode: true, AudioChannelMerger: true, ChannelSplitterNode: true, AudioChannelSplitter: true, ConstantSourceNode: true, ConvolverNode: true, DelayNode: true, DynamicsCompressorNode: true, GainNode: true, AudioGainNode: true, IIRFilterNode: true, MediaElementAudioSourceNode: true, MediaStreamAudioDestinationNode: true, MediaStreamAudioSourceNode: true, OscillatorNode: true, Oscillator: true, PannerNode: true, AudioPannerNode: true, webkitAudioPannerNode: true, ScriptProcessorNode: true, JavaScriptAudioNode: true, StereoPannerNode: true, WaveShaperNode: true, EventTarget: false, File: true, FileList: true, FileWriter: true, HTMLFormElement: true, Gamepad: true, History: true, HTMLCollection: true, HTMLFormControlsCollection: true, HTMLOptionsCollection: true, HTMLDocument: true, XMLHttpRequest: true, XMLHttpRequestUpload: true, XMLHttpRequestEventTarget: false, ImageData: true, KeyboardEvent: true, Location: true, MediaList: true, MessageEvent: true, MessagePort: true, MIDIInputMap: true, MIDIOutputMap: true, MimeType: true, MimeTypeArray: true, DocumentFragment: true, ShadowRoot: true, DocumentType: true, Node: false, NodeList: true, RadioNodeList: true, Plugin: true, PluginArray: true, ProgressEvent: true, ResourceProgressEvent: true, RTCStatsReport: true, HTMLScriptElement: true, HTMLSelectElement: true, SourceBuffer: true, SourceBufferList: true, SpeechGrammar: true, SpeechGrammarList: true, SpeechRecognitionResult: true, Storage: true, CSSStyleSheet: true, StyleSheet: true, HTMLTableElement: true, HTMLTableRowElement: true, HTMLTableSectionElement: true, HTMLTemplateElement: true, TextTrack: true, TextTrackCue: true, VTTCue: true, TextTrackCueList: true, TextTrackList: true, TimeRanges: true, Touch: true, TouchList: true, TrackDefaultList: true, CompositionEvent: true, FocusEvent: true, MouseEvent: true, DragEvent: true, PointerEvent: true, TextEvent: true, TouchEvent: true, WheelEvent: true, UIEvent: false, URL: true, VideoTrackList: true, WebSocket: true, Window: true, DOMWindow: true, DedicatedWorkerGlobalScope: true, ServiceWorkerGlobalScope: true, SharedWorkerGlobalScope: true, WorkerGlobalScope: true, Attr: true, CSSRuleList: true, ClientRect: true, DOMRect: true, GamepadList: true, NamedNodeMap: true, MozNamedAttrMap: true, SpeechRecognitionResultList: true, StyleSheetList: true, IDBKeyRange: true, SVGLength: true, SVGLengthList: true, SVGNumber: true, SVGNumberList: true, SVGPointList: true, SVGScriptElement: true, SVGStringList: true, SVGAElement: true, SVGAnimateElement: true, SVGAnimateMotionElement: true, SVGAnimateTransformElement: true, SVGAnimationElement: true, SVGCircleElement: true, SVGClipPathElement: true, SVGDefsElement: true, SVGDescElement: true, SVGDiscardElement: true, SVGEllipseElement: true, SVGFEBlendElement: true, SVGFEColorMatrixElement: true, SVGFEComponentTransferElement: true, SVGFECompositeElement: true, SVGFEConvolveMatrixElement: true, SVGFEDiffuseLightingElement: true, SVGFEDisplacementMapElement: true, SVGFEDistantLightElement: true, SVGFEFloodElement: true, SVGFEFuncAElement: true, SVGFEFuncBElement: true, SVGFEFuncGElement: true, SVGFEFuncRElement: true, SVGFEGaussianBlurElement: true, SVGFEImageElement: true, SVGFEMergeElement: true, SVGFEMergeNodeElement: true, SVGFEMorphologyElement: true, SVGFEOffsetElement: true, SVGFEPointLightElement: true, SVGFESpecularLightingElement: true, SVGFESpotLightElement: true, SVGFETileElement: true, SVGFETurbulenceElement: true, SVGFilterElement: true, SVGForeignObjectElement: true, SVGGElement: true, SVGGeometryElement: true, SVGGraphicsElement: true, SVGImageElement: true, SVGLineElement: true, SVGLinearGradientElement: true, SVGMarkerElement: true, SVGMaskElement: true, SVGMetadataElement: true, SVGPathElement: true, SVGPatternElement: true, SVGPolygonElement: true, SVGPolylineElement: true, SVGRadialGradientElement: true, SVGRectElement: true, SVGSetElement: true, SVGStopElement: true, SVGStyleElement: true, SVGSVGElement: true, SVGSwitchElement: true, SVGSymbolElement: true, SVGTSpanElement: true, SVGTextContentElement: true, SVGTextElement: true, SVGTextPathElement: true, SVGTextPositioningElement: true, SVGTitleElement: true, SVGUseElement: true, SVGViewElement: true, SVGGradientElement: true, SVGComponentTransferFunctionElement: true, SVGFEDropShadowElement: true, SVGMPathElement: true, SVGElement: false, SVGTransform: true, SVGTransformList: true, AudioBuffer: true, AudioParamMap: true, AudioTrackList: true, AudioContext: true, webkitAudioContext: true, BaseAudioContext: false, OfflineAudioContext: true}); A.NativeTypedArray.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView"; A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView"; From 506abba560d4b614bd6f14bb3eb7bffd597a2835 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:04:39 -0700 Subject: [PATCH 06/12] Clean up messaging --- dwds/debug_extension_mv3/web/messaging.dart | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dwds/debug_extension_mv3/web/messaging.dart b/dwds/debug_extension_mv3/web/messaging.dart index 7879dd229..4f4c1745b 100644 --- a/dwds/debug_extension_mv3/web/messaging.dart +++ b/dwds/debug_extension_mv3/web/messaging.dart @@ -30,16 +30,16 @@ enum MessageType { } class Message { - final MessageType type; final Script to; final Script from; + final MessageType type; final String body; final String? error; Message({ - required this.type, required this.to, required this.from, + required this.type, required this.body, this.error, }); @@ -48,9 +48,9 @@ class Message { final decoded = jsonDecode(json) as Map; return Message( - type: MessageType.fromString(decoded['type'] as String), to: Script.fromString(decoded['to'] as String), from: Script.fromString(decoded['from'] as String), + type: MessageType.fromString(decoded['type'] as String), body: decoded['body'] as String, error: decoded['error'] as String?, ); @@ -58,9 +58,9 @@ class Message { String toJSON() { return jsonEncode({ - 'type': type.name, 'to': to.name, 'from': from.name, + 'type': type.name, 'body': body, if (error != null) 'error': error, }); From bd1af850e8a60a724b58d34efbfeb5101ccd467a Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:14:35 -0700 Subject: [PATCH 07/12] Update pubspec and CHANGELOG --- dwds/CHANGELOG.md | 14 +++++++++++--- dwds/lib/data/README.md | 16 ++++++++++------ dwds/pubspec.yaml | 2 +- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index 4de87b5d8..045476b32 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -1,12 +1,20 @@ +## 16.0.2-dev + +- Include debug information in the event sent from the injected client to the + Dart Debug Extension notifying that the Dart app is ready. +- Include an optional param to `Dwds.start` to indicate whether it is running + internally or externally. + ## 16.0.1 - Allow the following API to return `null` and add error handling: - `LoadStrategy.serverPathForModule` - `LoadStrategy.sourceMapPathForModule` - Expression evaluation performance improvement: - - Batch `ChromeProxyService.evaluate()` requests that are close in time - and are executed in the same library and scope. -- Update `package:file` version to `6.13` or greater to handle https://github.com/dart-lang/sdk/issues/49647. + - Batch `ChromeProxyService.evaluate()` requests that are close in time and + are executed in the same library and scope. +- Update `package:file` version to `6.13` or greater to handle + https://github.com/dart-lang/sdk/issues/49647. ## 16.0.0 diff --git a/dwds/lib/data/README.md b/dwds/lib/data/README.md index 0f5f3d1b6..955d4cc94 100644 --- a/dwds/lib/data/README.md +++ b/dwds/lib/data/README.md @@ -1,12 +1,16 @@ # How to generate data files: ## Creating a new data file: -1. Create a new file for your data type in the `/data` directory with the `.dart` extension -2. Create an abstract class for your data type (see existing files for examples) -3. Add the new data type to `/data/serializers.dart` -4 Run: `dart run build_runner build` from DWDS root (this will generate the `.g.dart` file) + +1. Create a new file for your data type in the `/data` directory with the + `.dart` extension +1. Create an abstract class for your data type (see existing files for examples) +1. Add the new data type to `/data/serializers.dart` 4 Run: + `dart run build_runner build` from DWDS root (this will generate the + `.g.dart` file) ## To update an existing data file: + 1. Make your changes -2. Run: `dart run build_runner clean` from DWDS root -3. Run: `dart run build_runner build` from DWDS root +1. Run: `dart run build_runner clean` from DWDS root +1. Run: `dart run build_runner build` from DWDS root diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml index 9efb97384..19c61eba0 100644 --- a/dwds/pubspec.yaml +++ b/dwds/pubspec.yaml @@ -1,6 +1,6 @@ name: dwds # Every time this changes you need to run `dart run build_runner build`. -version: 16.0.1 +version: 16.0.2-dev description: >- A service that proxies between the Chrome debug protocol and the Dart VM service protocol. From 18fd811267b9ccf033229204212c72080959c157 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:20:42 -0700 Subject: [PATCH 08/12] Update version --- dwds/lib/src/version.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart index a0e68d578..034fb0e8b 100644 --- a/dwds/lib/src/version.dart +++ b/dwds/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '16.0.1'; +const packageVersion = '16.0.2-dev'; From 760e1d7e71086a7e954a135db1236d0baf266d97 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:23:14 -0700 Subject: [PATCH 09/12] Delete messages.dart --- dwds/web/messages.dart | 49 ------------------------------------------ 1 file changed, 49 deletions(-) delete mode 100644 dwds/web/messages.dart diff --git a/dwds/web/messages.dart b/dwds/web/messages.dart deleted file mode 100644 index 97cfad49b..000000000 --- a/dwds/web/messages.dart +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -@JS() -library messages; - -import 'dart:convert'; - -import 'package:js/js.dart'; - -class DebugInfo { - final String? origin; - final String? extensionUri; - final String? appId; - final String? instanceId; - final String? entrypointPath; - DebugInfo({ - this.origin, - this.extensionUri, - this.appId, - this.instanceId, - this.entrypointPath, - }); - factory DebugInfo.fromJSON(String json) { - final decoded = jsonDecode(json) as Map; - final origin = decoded['origin'] as String?; - final extensionUri = decoded['extensionUri'] as String?; - final appId = decoded['appId'] as String?; - final instanceId = decoded['instanceId'] as String?; - final entrypointPath = decoded['entrypointPath'] as String?; - return DebugInfo( - origin: origin, - extensionUri: extensionUri, - appId: appId, - instanceId: instanceId, - entrypointPath: entrypointPath, - ); - } - String toJSON() { - return jsonEncode({ - 'origin': origin, - 'extensionUri': extensionUri, - 'appId': appId, - 'instanceId': instanceId, - 'entrypointPath': entrypointPath, - }); - } -} From 390577c26692e8990ab1fcf1ea14dcb0667f75d6 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 11:25:55 -0700 Subject: [PATCH 10/12] Sort import statements --- dwds/debug_extension_mv3/web/background.dart | 2 +- dwds/debug_extension_mv3/web/detector.dart | 2 +- dwds/web/client.dart | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dwds/debug_extension_mv3/web/background.dart b/dwds/debug_extension_mv3/web/background.dart index 846114c0f..9d534f2c2 100644 --- a/dwds/debug_extension_mv3/web/background.dart +++ b/dwds/debug_extension_mv3/web/background.dart @@ -7,8 +7,8 @@ library background; import 'dart:html'; -import 'package:js/js.dart'; import 'package:dwds/data/debug_info.dart'; +import 'package:js/js.dart'; import 'chrome_api.dart'; import 'messaging.dart'; diff --git a/dwds/debug_extension_mv3/web/detector.dart b/dwds/debug_extension_mv3/web/detector.dart index 906e3576b..ca4be0c56 100644 --- a/dwds/debug_extension_mv3/web/detector.dart +++ b/dwds/debug_extension_mv3/web/detector.dart @@ -6,8 +6,8 @@ library detector; import 'dart:html'; -import 'package:js/js.dart'; import 'dart:js_util'; +import 'package:js/js.dart'; import 'chrome_api.dart'; import 'messaging.dart'; diff --git a/dwds/web/client.dart b/dwds/web/client.dart index 0255b4352..01339224e 100644 --- a/dwds/web/client.dart +++ b/dwds/web/client.dart @@ -14,12 +14,12 @@ import 'package:built_collection/built_collection.dart'; import 'package:dwds/data/build_result.dart'; import 'package:dwds/data/connect_request.dart'; import 'package:dwds/data/debug_event.dart'; +import 'package:dwds/data/debug_info.dart'; import 'package:dwds/data/devtools_request.dart'; import 'package:dwds/data/error_response.dart'; import 'package:dwds/data/register_event.dart'; import 'package:dwds/data/run_request.dart'; import 'package:dwds/data/serializers.dart'; -import 'package:dwds/data/debug_info.dart'; import 'package:dwds/src/sockets.dart'; // NOTE(annagrin): using 'package:dwds/src/utilities/batched_stream.dart' // makes dart2js skip creating background.js, so we use a copy instead. From a325d12edb7e00b7241ec830c753646ece70fb0a Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 14:55:17 -0700 Subject: [PATCH 11/12] Added a test case --- dwds/test/handlers/injector_test.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dwds/test/handlers/injector_test.dart b/dwds/test/handlers/injector_test.dart index 896165ab5..d51492e09 100644 --- a/dwds/test/handlers/injector_test.dart +++ b/dwds/test/handlers/injector_test.dart @@ -199,6 +199,12 @@ void main() { expect(result.body, contains('\$emitRegisterEvent')); }); + test('the injected client contains a global \$isInternalDartBuild', () async { + final result = await http.get(Uri.parse( + 'http://localhost:${server.port}/dwds/src/injected/client.js')); + expect(result.body, contains('\$isInternalDartBuild')); + }); + test('serves the injected client', () async { final result = await http.get(Uri.parse( 'http://localhost:${server.port}/dwds/src/injected/client.js')); From c7f56dc646fbb404cc77bf7c1a4cc9046bd66b06 Mon Sep 17 00:00:00 2001 From: Elliott Brooks <21270878+elliette@users.noreply.github.com> Date: Tue, 1 Nov 2022 15:29:02 -0700 Subject: [PATCH 12/12] Run dart format --- dwds/test/handlers/injector_test.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dwds/test/handlers/injector_test.dart b/dwds/test/handlers/injector_test.dart index d51492e09..6c21ff100 100644 --- a/dwds/test/handlers/injector_test.dart +++ b/dwds/test/handlers/injector_test.dart @@ -199,7 +199,8 @@ void main() { expect(result.body, contains('\$emitRegisterEvent')); }); - test('the injected client contains a global \$isInternalDartBuild', () async { + test('the injected client contains a global \$isInternalDartBuild', + () async { final result = await http.get(Uri.parse( 'http://localhost:${server.port}/dwds/src/injected/client.js')); expect(result.body, contains('\$isInternalDartBuild'));