diff --git a/dwds/lib/data/connect_request.dart b/dwds/lib/data/connect_request.dart index 23ee5364f..57d383593 100644 --- a/dwds/lib/data/connect_request.dart +++ b/dwds/lib/data/connect_request.dart @@ -2,6 +2,7 @@ // 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'; @@ -18,6 +19,9 @@ abstract class ConnectRequest ConnectRequest._(); + /// Whole app name. + String get appName; + /// Identifies a given application, across tabs/windows. String get appId; @@ -25,5 +29,5 @@ abstract class ConnectRequest String get instanceId; /// The entrypoint for the Dart application. - String get entrypointPath; + BuiltList get entrypoints; } diff --git a/dwds/lib/data/connect_request.g.dart b/dwds/lib/data/connect_request.g.dart index ab1ff180b..d83344480 100644 --- a/dwds/lib/data/connect_request.g.dart +++ b/dwds/lib/data/connect_request.g.dart @@ -20,15 +20,19 @@ class _$ConnectRequestSerializer Iterable serialize(Serializers serializers, ConnectRequest object, {FullType specifiedType = FullType.unspecified}) { final result = [ + 'appName', + serializers.serialize(object.appName, + specifiedType: const FullType(String)), 'appId', serializers.serialize(object.appId, specifiedType: const FullType(String)), 'instanceId', serializers.serialize(object.instanceId, specifiedType: const FullType(String)), - 'entrypointPath', - serializers.serialize(object.entrypointPath, - specifiedType: const FullType(String)), + 'entrypoints', + serializers.serialize(object.entrypoints, + specifiedType: + const FullType(BuiltList, const [const FullType(String)])), ]; return result; @@ -46,6 +50,10 @@ class _$ConnectRequestSerializer iterator.moveNext(); final Object? value = iterator.current; switch (key) { + case 'appName': + result.appName = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; case 'appId': result.appId = serializers.deserialize(value, specifiedType: const FullType(String))! as String; @@ -54,9 +62,11 @@ class _$ConnectRequestSerializer result.instanceId = serializers.deserialize(value, specifiedType: const FullType(String))! as String; break; - case 'entrypointPath': - result.entrypointPath = serializers.deserialize(value, - specifiedType: const FullType(String))! as String; + case 'entrypoints': + result.entrypoints.replace(serializers.deserialize(value, + specifiedType: const FullType( + BuiltList, const [const FullType(String)]))! + as BuiltList); break; } } @@ -66,26 +76,31 @@ class _$ConnectRequestSerializer } class _$ConnectRequest extends ConnectRequest { + @override + final String appName; @override final String appId; @override final String instanceId; @override - final String entrypointPath; + final BuiltList entrypoints; factory _$ConnectRequest([void Function(ConnectRequestBuilder)? updates]) => (new ConnectRequestBuilder()..update(updates))._build(); _$ConnectRequest._( - {required this.appId, + {required this.appName, + required this.appId, required this.instanceId, - required this.entrypointPath}) + required this.entrypoints}) : super._() { + BuiltValueNullFieldError.checkNotNull( + appName, r'ConnectRequest', 'appName'); BuiltValueNullFieldError.checkNotNull(appId, r'ConnectRequest', 'appId'); BuiltValueNullFieldError.checkNotNull( instanceId, r'ConnectRequest', 'instanceId'); BuiltValueNullFieldError.checkNotNull( - entrypointPath, r'ConnectRequest', 'entrypointPath'); + entrypoints, r'ConnectRequest', 'entrypoints'); } @override @@ -100,17 +115,19 @@ class _$ConnectRequest extends ConnectRequest { bool operator ==(Object other) { if (identical(other, this)) return true; return other is ConnectRequest && + appName == other.appName && appId == other.appId && instanceId == other.instanceId && - entrypointPath == other.entrypointPath; + entrypoints == other.entrypoints; } @override int get hashCode { var _$hash = 0; + _$hash = $jc(_$hash, appName.hashCode); _$hash = $jc(_$hash, appId.hashCode); _$hash = $jc(_$hash, instanceId.hashCode); - _$hash = $jc(_$hash, entrypointPath.hashCode); + _$hash = $jc(_$hash, entrypoints.hashCode); _$hash = $jf(_$hash); return _$hash; } @@ -118,9 +135,10 @@ class _$ConnectRequest extends ConnectRequest { @override String toString() { return (newBuiltValueToStringHelper(r'ConnectRequest') + ..add('appName', appName) ..add('appId', appId) ..add('instanceId', instanceId) - ..add('entrypointPath', entrypointPath)) + ..add('entrypoints', entrypoints)) .toString(); } } @@ -129,6 +147,10 @@ class ConnectRequestBuilder implements Builder { _$ConnectRequest? _$v; + String? _appName; + String? get appName => _$this._appName; + set appName(String? appName) => _$this._appName = appName; + String? _appId; String? get appId => _$this._appId; set appId(String? appId) => _$this._appId = appId; @@ -137,19 +159,21 @@ class ConnectRequestBuilder String? get instanceId => _$this._instanceId; set instanceId(String? instanceId) => _$this._instanceId = instanceId; - String? _entrypointPath; - String? get entrypointPath => _$this._entrypointPath; - set entrypointPath(String? entrypointPath) => - _$this._entrypointPath = entrypointPath; + ListBuilder? _entrypoints; + ListBuilder get entrypoints => + _$this._entrypoints ??= new ListBuilder(); + set entrypoints(ListBuilder? entrypoints) => + _$this._entrypoints = entrypoints; ConnectRequestBuilder(); ConnectRequestBuilder get _$this { final $v = _$v; if ($v != null) { + _appName = $v.appName; _appId = $v.appId; _instanceId = $v.instanceId; - _entrypointPath = $v.entrypointPath; + _entrypoints = $v.entrypoints.toBuilder(); _$v = null; } return this; @@ -170,14 +194,28 @@ class ConnectRequestBuilder ConnectRequest build() => _build(); _$ConnectRequest _build() { - final _$result = _$v ?? - new _$ConnectRequest._( - appId: BuiltValueNullFieldError.checkNotNull( - appId, r'ConnectRequest', 'appId'), - instanceId: BuiltValueNullFieldError.checkNotNull( - instanceId, r'ConnectRequest', 'instanceId'), - entrypointPath: BuiltValueNullFieldError.checkNotNull( - entrypointPath, r'ConnectRequest', 'entrypointPath')); + _$ConnectRequest _$result; + try { + _$result = _$v ?? + new _$ConnectRequest._( + appName: BuiltValueNullFieldError.checkNotNull( + appName, r'ConnectRequest', 'appName'), + appId: BuiltValueNullFieldError.checkNotNull( + appId, r'ConnectRequest', 'appId'), + instanceId: BuiltValueNullFieldError.checkNotNull( + instanceId, r'ConnectRequest', 'instanceId'), + entrypoints: entrypoints.build()); + } catch (_) { + late String _$failedField; + try { + _$failedField = 'entrypoints'; + entrypoints.build(); + } catch (e) { + throw new BuiltValueNestedFieldError( + r'ConnectRequest', _$failedField, e.toString()); + } + rethrow; + } replace(_$result); return _$result; } diff --git a/dwds/lib/data/register_entrypoint_request.dart b/dwds/lib/data/register_entrypoint_request.dart new file mode 100644 index 000000000..126ae0a09 --- /dev/null +++ b/dwds/lib/data/register_entrypoint_request.dart @@ -0,0 +1,27 @@ +// Copyright (c) 2019, 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_value/built_value.dart'; +import 'package:built_value/serializer.dart'; + +part 'register_entrypoint_request.g.dart'; + +/// A request to load entrypoint metadata. +abstract class RegisterEntrypointRequest + implements + Built { + static Serializer get serializer => + _$registerEntrypointRequestSerializer; + + factory RegisterEntrypointRequest( + [Function(RegisterEntrypointRequestBuilder) updates]) = + _$RegisterEntrypointRequest; + + RegisterEntrypointRequest._(); + + String get appName; + + /// The entrypoint for the Dart application. + String get entrypointPath; +} diff --git a/dwds/lib/data/register_entrypoint_request.g.dart b/dwds/lib/data/register_entrypoint_request.g.dart new file mode 100644 index 000000000..ff6c75448 --- /dev/null +++ b/dwds/lib/data/register_entrypoint_request.g.dart @@ -0,0 +1,173 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'register_entrypoint_request.dart'; + +// ************************************************************************** +// BuiltValueGenerator +// ************************************************************************** + +Serializer _$registerEntrypointRequestSerializer = + new _$RegisterEntrypointRequestSerializer(); + +class _$RegisterEntrypointRequestSerializer + implements StructuredSerializer { + @override + final Iterable types = const [ + RegisterEntrypointRequest, + _$RegisterEntrypointRequest + ]; + @override + final String wireName = 'RegisterEntrypointRequest'; + + @override + Iterable serialize( + Serializers serializers, RegisterEntrypointRequest object, + {FullType specifiedType = FullType.unspecified}) { + final result = [ + 'appName', + serializers.serialize(object.appName, + specifiedType: const FullType(String)), + 'entrypointPath', + serializers.serialize(object.entrypointPath, + specifiedType: const FullType(String)), + ]; + + return result; + } + + @override + RegisterEntrypointRequest deserialize( + Serializers serializers, Iterable serialized, + {FullType specifiedType = FullType.unspecified}) { + final result = new RegisterEntrypointRequestBuilder(); + + final iterator = serialized.iterator; + while (iterator.moveNext()) { + final key = iterator.current! as String; + iterator.moveNext(); + final Object? value = iterator.current; + switch (key) { + case 'appName': + result.appName = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + case 'entrypointPath': + result.entrypointPath = serializers.deserialize(value, + specifiedType: const FullType(String))! as String; + break; + } + } + + return result.build(); + } +} + +class _$RegisterEntrypointRequest extends RegisterEntrypointRequest { + @override + final String appName; + @override + final String entrypointPath; + + factory _$RegisterEntrypointRequest( + [void Function(RegisterEntrypointRequestBuilder)? updates]) => + (new RegisterEntrypointRequestBuilder()..update(updates))._build(); + + _$RegisterEntrypointRequest._( + {required this.appName, required this.entrypointPath}) + : super._() { + BuiltValueNullFieldError.checkNotNull( + appName, r'RegisterEntrypointRequest', 'appName'); + BuiltValueNullFieldError.checkNotNull( + entrypointPath, r'RegisterEntrypointRequest', 'entrypointPath'); + } + + @override + RegisterEntrypointRequest rebuild( + void Function(RegisterEntrypointRequestBuilder) updates) => + (toBuilder()..update(updates)).build(); + + @override + RegisterEntrypointRequestBuilder toBuilder() => + new RegisterEntrypointRequestBuilder()..replace(this); + + @override + bool operator ==(Object other) { + if (identical(other, this)) return true; + return other is RegisterEntrypointRequest && + appName == other.appName && + entrypointPath == other.entrypointPath; + } + + @override + int get hashCode { + var _$hash = 0; + _$hash = $jc(_$hash, appName.hashCode); + _$hash = $jc(_$hash, entrypointPath.hashCode); + _$hash = $jf(_$hash); + return _$hash; + } + + @override + String toString() { + return (newBuiltValueToStringHelper(r'RegisterEntrypointRequest') + ..add('appName', appName) + ..add('entrypointPath', entrypointPath)) + .toString(); + } +} + +class RegisterEntrypointRequestBuilder + implements + Builder { + _$RegisterEntrypointRequest? _$v; + + String? _appName; + String? get appName => _$this._appName; + set appName(String? appName) => _$this._appName = appName; + + String? _entrypointPath; + String? get entrypointPath => _$this._entrypointPath; + set entrypointPath(String? entrypointPath) => + _$this._entrypointPath = entrypointPath; + + RegisterEntrypointRequestBuilder(); + + RegisterEntrypointRequestBuilder get _$this { + final $v = _$v; + if ($v != null) { + _appName = $v.appName; + _entrypointPath = $v.entrypointPath; + _$v = null; + } + return this; + } + + @override + void replace(RegisterEntrypointRequest other) { + ArgumentError.checkNotNull(other, 'other'); + _$v = other as _$RegisterEntrypointRequest; + } + + @override + void update(void Function(RegisterEntrypointRequestBuilder)? updates) { + if (updates != null) updates(this); + } + + @override + RegisterEntrypointRequest build() => _build(); + + _$RegisterEntrypointRequest _build() { + final _$result = _$v ?? + new _$RegisterEntrypointRequest._( + appName: BuiltValueNullFieldError.checkNotNull( + appName, r'RegisterEntrypointRequest', 'appName'), + entrypointPath: BuiltValueNullFieldError.checkNotNull( + entrypointPath, + r'RegisterEntrypointRequest', + 'entrypointPath')); + replace(_$result); + return _$result; + } +} + +// ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/dwds/lib/data/serializers.dart b/dwds/lib/data/serializers.dart index 25f4e2af2..eb70929d2 100644 --- a/dwds/lib/data/serializers.dart +++ b/dwds/lib/data/serializers.dart @@ -13,6 +13,7 @@ import 'devtools_request.dart'; import 'error_response.dart'; import 'extension_request.dart'; import 'isolate_events.dart'; +import 'register_entrypoint_request.dart'; import 'register_event.dart'; import 'run_request.dart'; @@ -34,6 +35,7 @@ part 'serializers.g.dart'; ExtensionResponse, ExtensionEvent, ErrorResponse, + RegisterEntrypointRequest, RegisterEvent, RunRequest, ]) diff --git a/dwds/lib/data/serializers.g.dart b/dwds/lib/data/serializers.g.dart index 584ce7e34..6af553f62 100644 --- a/dwds/lib/data/serializers.g.dart +++ b/dwds/lib/data/serializers.g.dart @@ -22,6 +22,7 @@ Serializers _$serializers = (new Serializers().toBuilder() ..add(ExtensionResponse.serializer) ..add(IsolateExit.serializer) ..add(IsolateStart.serializer) + ..add(RegisterEntrypointRequest.serializer) ..add(RegisterEvent.serializer) ..add(RunRequest.serializer) ..addBuilderFactory( @@ -29,7 +30,10 @@ Serializers _$serializers = (new Serializers().toBuilder() () => new ListBuilder()) ..addBuilderFactory( const FullType(BuiltList, const [const FullType(ExtensionEvent)]), - () => new ListBuilder())) + () => new ListBuilder()) + ..addBuilderFactory( + const FullType(BuiltList, const [const FullType(String)]), + () => new ListBuilder())) .build(); // ignore_for_file: deprecated_member_use_from_same_package,type=lint diff --git a/dwds/lib/src/debugging/inspector.dart b/dwds/lib/src/debugging/inspector.dart index 660ee0dac..81e595db2 100644 --- a/dwds/lib/src/debugging/inspector.dart +++ b/dwds/lib/src/debugging/inspector.dart @@ -32,7 +32,7 @@ import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; /// Provides information about currently loaded scripts and objects and support /// for eval. class AppInspector implements AppInspectorInterface { - final _scriptCacheMemoizer = AsyncMemoizer>(); + late AsyncMemoizer> _scriptCacheMemoizer; Future> get scriptRefs => _populateScriptCaches(); @@ -106,6 +106,7 @@ class AppInspector implements AppInspectorInterface { } Future initialize() async { + _scriptCacheMemoizer = AsyncMemoizer>(); final libraries = await _libraryHelper.libraryRefs; isolate.rootLib = await _libraryHelper.rootLib; isolate.libraries?.addAll(libraries); @@ -121,6 +122,18 @@ class AppInspector implements AppInspectorInterface { isolate.extensionRPCs?.addAll(await _getExtensionRpcs()); } + Future registerEntrypoint( + String appName, + String entrypoint, + Debugger debugger, + ) { + // TODO: incremental update? + _libraryHelper = LibraryHelper(this); + _classHelper = ClassHelper(this); + _instanceHelper = InstanceHelper(this); + return initialize(); + } + static IsolateRef _toIsolateRef(Isolate isolate) => IsolateRef( id: isolate.id, name: isolate.name, @@ -696,7 +709,7 @@ class AppInspector implements AppInspectorInterface { Future> _populateScriptCaches() { return _scriptCacheMemoizer.runOnce(() async { final scripts = await globalToolConfiguration.loadStrategy - .metadataProviderFor(appConnection.request.entrypointPath) + .metadataProviderFor(appConnection.request.appName) .scripts; // For all the non-dart: libraries, find their parts and create scriptRefs // for them. diff --git a/dwds/lib/src/debugging/libraries.dart b/dwds/lib/src/debugging/libraries.dart index a4cb69932..070b9e6f9 100644 --- a/dwds/lib/src/debugging/libraries.dart +++ b/dwds/lib/src/debugging/libraries.dart @@ -54,7 +54,7 @@ class LibraryHelper extends Domain { Future> get libraryRefs async { if (_libraryRefsById.isNotEmpty) return _libraryRefsById.values.toList(); final libraries = await globalToolConfiguration.loadStrategy - .metadataProviderFor(inspector.appConnection.request.entrypointPath) + .metadataProviderFor(inspector.appConnection.request.appName) .libraries; for (var library in libraries) { _libraryRefsById[library] = diff --git a/dwds/lib/src/debugging/location.dart b/dwds/lib/src/debugging/location.dart index 26c954ed2..60fc6d7dc 100644 --- a/dwds/lib/src/debugging/location.dart +++ b/dwds/lib/src/debugging/location.dart @@ -146,18 +146,18 @@ class Locations { final Modules _modules; final String _root; - late String _entrypoint; + late String _appName; Locations(this._assetReader, this._modules, this._root); Modules get modules => _modules; - void initialize(String entrypoint) { + void initialize(String appName) { _sourceToTokenPosTable.clear(); _sourceToLocation.clear(); _locationMemoizer.clear(); _moduleToLocations.clear(); - _entrypoint = entrypoint; + _appName = appName; } /// Returns all [Location] data for a provided Dart source. @@ -178,7 +178,7 @@ class Locations { final dartUri = DartUri(url, _root); final serverPath = dartUri.serverPath; final module = await globalToolConfiguration.loadStrategy - .moduleForServerPath(_entrypoint, serverPath); + .moduleForServerPath(_appName, serverPath); final cache = _moduleToLocations[module]; if (cache != null) return cache; @@ -304,13 +304,13 @@ class Locations { return result; } final modulePath = await globalToolConfiguration.loadStrategy - .serverPathForModule(_entrypoint, module); + .serverPathForModule(_appName, module); if (modulePath == null) { _logger.warning('No module path for module: $module'); return result; } final sourceMapPath = await globalToolConfiguration.loadStrategy - .sourceMapPathForModule(_entrypoint, module); + .sourceMapPathForModule(_appName, module); if (sourceMapPath == null) { _logger.warning('No sourceMap path for module: $module'); return result; diff --git a/dwds/lib/src/debugging/metadata/provider.dart b/dwds/lib/src/debugging/metadata/provider.dart index 677bde885..80e2de2ec 100644 --- a/dwds/lib/src/debugging/metadata/provider.dart +++ b/dwds/lib/src/debugging/metadata/provider.dart @@ -2,9 +2,9 @@ // 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:async'; import 'dart:convert'; -import 'package:async/async.dart'; import 'package:dwds/src/debugging/metadata/module_metadata.dart'; import 'package:dwds/src/readers/asset_reader.dart'; import 'package:logging/logging.dart'; @@ -14,7 +14,6 @@ import 'package:path/path.dart' as p; class MetadataProvider { final AssetReader _assetReader; final _logger = Logger('MetadataProvider'); - final String entrypoint; bool _soundNullSafety; final List _libraries = []; final Map _scriptToModule = {}; @@ -22,7 +21,11 @@ class MetadataProvider { final Map _modulePathToModule = {}; final Map _moduleToModulePath = {}; final Map> _scripts = {}; - final _metadataMemoizer = AsyncMemoizer(); + + final _mainEntrypointCompleter = Completer(); + Future get mainEntrypoint => _mainEntrypointCompleter.future; + + final _entryPoints = >{}; /// Implicitly imported libraries in any DDC component. /// @@ -64,8 +67,9 @@ class MetadataProvider { 'dart:ui', ]; - MetadataProvider(this.entrypoint, this._assetReader) - : _soundNullSafety = false; + MetadataProvider(this._assetReader) : _soundNullSafety = false { + _logger.info('Created metadata provider'); + } /// A sound null safety mode for the whole app. /// @@ -176,44 +180,56 @@ class MetadataProvider { } Future _initialize() async { - await _metadataMemoizer.runOnce(() async { - var hasSoundNullSafety = true; - var hasUnsoundNullSafety = true; - // The merged metadata resides next to the entrypoint. - // Assume that .bootstrap.js has .ddc_merged_metadata - if (entrypoint.endsWith('.bootstrap.js')) { - _logger.info('Loading debug metadata...'); - final serverPath = - entrypoint.replaceAll('.bootstrap.js', '.ddc_merged_metadata'); - final merged = await _assetReader.metadataContents(serverPath); - if (merged != null) { - _addSdkMetadata(); - for (var contents in merged.split('\n')) { - try { - if (contents.isEmpty || - contents.startsWith('// intentionally empty:')) continue; - final moduleJson = json.decode(contents); - final metadata = - ModuleMetadata.fromJson(moduleJson as Map); - _addMetadata(metadata); - hasUnsoundNullSafety &= !metadata.soundNullSafety; - hasSoundNullSafety &= metadata.soundNullSafety; - _logger - .fine('Loaded debug metadata for module: ${metadata.name}'); - } catch (e) { - _logger.warning('Failed to read metadata: $e'); - rethrow; - } - } - if (!hasSoundNullSafety && !hasUnsoundNullSafety) { - throw Exception('Metadata contains modules with mixed null safety'); + _logger.info('Initializing... '); + await mainEntrypoint; + await Future.wait(_entryPoints.values); + _logger.info('Initialized.'); + } + + void update(String entrypoint) { + // The first registered entrypoint is the main one. + if (!_mainEntrypointCompleter.isCompleted) { + _mainEntrypointCompleter.complete(entrypoint); + } + _entryPoints.putIfAbsent(entrypoint, () => _update(entrypoint)); + } + + Future _update(String entrypoint) async { + var hasSoundNullSafety = true; + var hasUnsoundNullSafety = true; + // The merged metadata resides next to the entrypoint. + // Assume that .bootstrap.js has .ddc_merged_metadata + if (entrypoint.endsWith('.bootstrap.js')) { + _logger.info('Loading debug metadata...'); + final serverPath = + entrypoint.replaceAll('.bootstrap.js', '.ddc_merged_metadata'); + final merged = await _assetReader.metadataContents(serverPath); + if (merged != null) { + _addSdkMetadata(); + for (var contents in merged.split('\n')) { + try { + if (contents.isEmpty || + contents.startsWith('// intentionally empty:')) continue; + final moduleJson = json.decode(contents); + final metadata = + ModuleMetadata.fromJson(moduleJson as Map); + _addMetadata(metadata); + hasUnsoundNullSafety &= !metadata.soundNullSafety; + hasSoundNullSafety &= metadata.soundNullSafety; + _logger.fine('Loaded debug metadata for module: ${metadata.name}'); + } catch (e) { + _logger.warning('Failed to read metadata: $e'); + rethrow; } - _soundNullSafety = hasSoundNullSafety; } - _logger.info('Loaded debug metadata ' - '(${_soundNullSafety ? "sound" : "weak"} null safety)'); + if (!hasSoundNullSafety && !hasUnsoundNullSafety) { + throw Exception('Metadata contains modules with mixed null safety'); + } + _soundNullSafety = hasSoundNullSafety; } - }); + _logger.info('Loaded debug metadata ' + '(${_soundNullSafety ? "sound" : "weak"} null safety)'); + } } void _addMetadata(ModuleMetadata metadata) { diff --git a/dwds/lib/src/debugging/modules.dart b/dwds/lib/src/debugging/modules.dart index 37b857af1..66e9b4ae1 100644 --- a/dwds/lib/src/debugging/modules.dart +++ b/dwds/lib/src/debugging/modules.dart @@ -21,7 +21,7 @@ class Modules { final Map _libraryToModule = {}; - late String _entrypoint; + late String _appName; Modules(this._root); @@ -29,14 +29,14 @@ class Modules { /// /// Intended to be called multiple times throughout the development workflow, /// e.g. after a hot-reload. - void initialize(String entrypoint) { + void initialize(String appName) { // We only clear the source to module mapping as script IDs may persist // across hot reloads. _sourceToModule.clear(); _sourceToLibrary.clear(); _libraryToModule.clear(); _moduleMemoizer = AsyncMemoizer(); - _entrypoint = entrypoint; + _appName = appName; } /// Returns the containing module for the provided Dart server path. @@ -65,7 +65,7 @@ class Modules { /// Initializes [_sourceToModule] and [_sourceToLibrary]. Future _initializeMapping() async { final provider = - globalToolConfiguration.loadStrategy.metadataProviderFor(_entrypoint); + globalToolConfiguration.loadStrategy.metadataProviderFor(_appName); final libraryToScripts = await provider.scripts; final scriptToModule = await provider.scriptToModule; diff --git a/dwds/lib/src/handlers/dev_handler.dart b/dwds/lib/src/handlers/dev_handler.dart index 9de7a175f..949b5b417 100644 --- a/dwds/lib/src/handlers/dev_handler.dart +++ b/dwds/lib/src/handlers/dev_handler.dart @@ -12,6 +12,7 @@ import 'package:dwds/data/debug_event.dart'; import 'package:dwds/data/devtools_request.dart'; import 'package:dwds/data/error_response.dart'; import 'package:dwds/data/isolate_events.dart'; +import 'package:dwds/data/register_entrypoint_request.dart'; import 'package:dwds/data/register_event.dart'; import 'package:dwds/data/serializers.dart'; import 'package:dwds/src/config/tool_configuration.dart'; @@ -43,11 +44,10 @@ import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; /// Note: this should not be checked in enabled. const _enableLogging = false; -final _logger = Logger('DevHandler'); - /// SSE handler to enable development features like hot reload and /// opening DevTools. class DevHandler { + final _logger = Logger('DevHandler'); final _subs = []; final _sseHandlers = {}; final _injectedConnections = {}; @@ -256,6 +256,7 @@ class DevHandler { _injectedConnections.add(injectedConnection); AppConnection? appConnection; injectedConnection.stream.listen((data) async { + _logger.fine('Received injected connection request: $data'); try { final message = serializers.deserialize(jsonDecode(data)); if (message is ConnectRequest) { @@ -266,11 +267,28 @@ class DevHandler { } appConnection = await _handleConnectRequest(message, injectedConnection); + _logger.severe('Connecting to app id ${message.appId}'); + final connection = + await _handleConnectRequest(message, injectedConnection); + for (var entrypoint in connection.request.entrypoints) { + globalToolConfiguration.loadStrategy + .trackEntrypoint(connection.request.appName, entrypoint); + } + appConnection = connection; } else { final connection = appConnection; if (connection == null) { throw StateError('Not connected to an application.'); } + if (message is RegisterEntrypointRequest) { + globalToolConfiguration.loadStrategy.trackEntrypoint( + connection.request.appName, + message.entrypointPath, + ); + await _servicesByAppId[connection.request.appId] + ?.chromeProxyService + .parseRegisterEntrypointRequest(message); + } if (message is DevToolsRequest) { await _handleDebugRequest(connection, injectedConnection); } else if (message is IsolateExit) { diff --git a/dwds/lib/src/handlers/injector.dart b/dwds/lib/src/handlers/injector.dart index d179f977b..743871e83 100644 --- a/dwds/lib/src/handlers/injector.dart +++ b/dwds/lib/src/handlers/injector.dart @@ -8,6 +8,7 @@ import 'dart:io'; import 'dart:isolate'; import 'package:crypto/crypto.dart'; +import 'package:dwds/dwds.dart'; import 'package:dwds/src/config/tool_configuration.dart'; import 'package:dwds/src/version.dart'; import 'package:logging/logging.dart'; @@ -96,15 +97,20 @@ class DwdsInjector { devHandlerPath = '$requestedUriBase/$devHandlerPath'; _devHandlerPaths.add(devHandlerPath); final entrypoint = request.url.path; + + // Track the main entrypoint for the app read the build metadata. await globalToolConfiguration.loadStrategy - .trackEntrypoint(entrypoint); - body = await _injectClientAndHoistMain( + .trackAppEntrypoint(entrypoint); + + body = _injectClientAndHoistMain( body, appId, devHandlerPath, entrypoint, await _extensionUri, ); + _logger.info('Injecting debugging metadata for ' + 'entrypoint at $requestedUri'); body += await globalToolConfiguration.loadStrategy .bootstrapFor(entrypoint); _logger.info('Injected debugging metadata for ' @@ -130,13 +136,13 @@ class DwdsInjector { /// Returns the provided body with the main function hoisted into a global /// variable and a snippet of JS that loads the injected client. -Future _injectClientAndHoistMain( +String _injectClientAndHoistMain( String body, String appId, String devHandlerPath, String entrypointPath, String? extensionUri, -) async { +) { final bodyLines = body.split('\n'); final extensionIndex = bodyLines.indexWhere((line) => line.contains(mainExtensionMarker)); @@ -148,7 +154,7 @@ Future _injectClientAndHoistMain( // We inject the client in the entry point module as the client expects the // application to be in a ready state, that is the main function is hoisted // and the Dart SDK is loaded. - final injectedClientSnippet = await _injectedClientSnippet( + final injectedClientSnippet = _injectedClientSnippet( appId, devHandlerPath, entrypointPath, @@ -167,10 +173,18 @@ Future _injectClientAndHoistMain( } $injectedClientSnippet } else { - if(window.\$dartMainExecuted){ - $mainFunction(); - }else { - window.\$dartMainTearOffs.push($mainFunction); + console.log("INJECTOR: registering entrypoint..."); + if (typeof window.\$dartRegisterEntrypoint != "undefined") { + console.log("INJECTOR: registering entrypoint with dev handler"); + window.\$dartRegisterEntrypoint( + /* app name */ appName, + /* entrypoint */ "$entrypointPath", + ); + } + if (window.\$dartMainExecuted) { + $mainFunction(); + } else { + window.\$dartMainTearOffs.push($mainFunction); } } '''; @@ -179,38 +193,129 @@ Future _injectClientAndHoistMain( } /// JS snippet which includes global variables required for debugging. -Future _injectedClientSnippet( +String _injectedClientSnippet( String appId, String devHandlerPath, String entrypointPath, String? extensionUri, -) async { +) { final loadStrategy = globalToolConfiguration.loadStrategy; final buildSettings = loadStrategy.buildSettings; final appMetadata = globalToolConfiguration.appMetadata; final debugSettings = globalToolConfiguration.debugSettings; - var injectedBody = 'window.\$dartAppId = "$appId";\n' - 'window.\$dartReloadConfiguration = "${loadStrategy.reloadConfiguration}";\n' - 'window.\$dartModuleStrategy = "${loadStrategy.id}";\n' - 'window.\$loadModuleConfig = ${loadStrategy.loadModuleSnippet};\n' - 'window.\$dwdsVersion = "$packageVersion";\n' - 'window.\$dwdsDevHandlerPath = "$devHandlerPath";\n' - 'window.\$dwdsEnableDevToolsLaunch = ${debugSettings.enableDevToolsLaunch};\n' - 'window.\$dartEntrypointPath = "$entrypointPath";\n' - 'window.\$dartEmitDebugEvents = ${debugSettings.emitDebugEvents};\n' - 'window.\$isInternalBuild = ${appMetadata.isInternalBuild};\n' - 'window.\$isFlutterApp = ${buildSettings.isFlutterApp};\n' - '${loadStrategy.loadClientSnippet(_clientScript)}'; - - if (extensionUri != null) { - injectedBody += 'window.\$dartExtensionUri = "$extensionUri";\n'; - } + final appInfo = JSAppInfo( + appId: appId, + devHandlerPath: devHandlerPath, + dwdsVersion: packageVersion, + emitDebugEvents: debugSettings.emitDebugEvents, + enableDevToolsLaunch: debugSettings.enableDevToolsLaunch, + entrypointPath: entrypointPath, + extensionUrl: extensionUri, + isFlutterApp: buildSettings.isFlutterApp, + isInternalBuild: appMetadata.isInternalBuild, + loadModuleConfig: loadStrategy.loadModuleSnippet, + moduleStrategy: loadStrategy.id, + reloadConfiguration: loadStrategy.reloadConfiguration, + workspaceName: appMetadata.workspaceName, + ); - final workspaceName = appMetadata.workspaceName; - if (workspaceName != null) { - injectedBody += 'window.\$dartWorkspaceName = "$workspaceName";\n'; - } + final injectedBody = '\n' + //' console.log("INJECTOR: registering app: " + appName);\n' + // Used by DDC runtime to detect if a debugger is attached. + ' window.\$dwdsVersion = "$packageVersion";\n' + // Used by the injected client to communicate with the debugger. + ' window.\$dartAppInfo = ${appInfo.toJs()};\n' + // Load the injected client. + ' ${loadStrategy.loadClientSnippet(_clientScript)};\n'; + + Logger.root.warning(injectedBody); + + // injectedBody += '\n' + // ' let appRecord = {};\n' + // ' appRecord.moduleStrategy = "${loadStrategy.id}";\n' + // ' appRecord.reloadConfiguration = "${loadStrategy.reloadConfiguration}";\n' + // ' appRecord.loadModuleConfig = ${loadStrategy.loadModuleSnippet};\n' + // ' appRecord.dwdsVersion = "$packageVersion";\n' + // ' appRecord.enableDevToolsLaunch = ${debugSettings.enableDevToolsLaunch};\n' + // ' appRecord.emitDebugEvents = ${debugSettings.emitDebugEvents};\n' + // ' appRecord.isInternalBuild = ${appMetadata.isInternalBuild};\n' + // ' appRecord.appName = appName;\n' + // ' appRecord.appId = "$appId";\n' + // ' appRecord.isFlutterApp = ${buildSettings.isFlutterApp};\n' + // ' appRecord.devHandlerPath = "$devHandlerPath";\n' + // ' appRecord.entrypoints = new Array();\n' + // ' appRecord.entrypoints.push("$entrypointPath");\n'; + + // if (extensionUri != null) { + // injectedBody += ' appRecord.extensionUrl = "$extensionUri";\n'; + // } + + // final workspaceName = appMetadata.workspaceName; + // if (workspaceName != null) { + // injectedBody += ' appRecord.workspaceName = "$workspaceName";\n'; + // } + + // injectedBody += '\n' + // ' window.\$dartAppInfo = $appInfo;\n' + // ' console.log("INJECTOR: Loading injected client...");\n' + // ' ${loadStrategy.loadClientSnippet(_clientScript)};\n'; return injectedBody; } + +/// Generate JS app info object for the injected client. +/// TODO(annagrin): ensure client's AppInfo can read this object. +class JSAppInfo { + String moduleStrategy; + ReloadConfiguration reloadConfiguration; + String loadModuleConfig; + String dwdsVersion; + bool enableDevToolsLaunch; + bool emitDebugEvents; + bool isInternalBuild; + String appId; + bool isFlutterApp; + String? extensionUrl; + String devHandlerPath; + String entrypointPath; + String? workspaceName; + + JSAppInfo({ + required this.appId, + required this.devHandlerPath, + required this.dwdsVersion, + required this.emitDebugEvents, + required this.enableDevToolsLaunch, + required this.entrypointPath, + required this.extensionUrl, + required this.isFlutterApp, + required this.isInternalBuild, + required this.loadModuleConfig, + required this.moduleStrategy, + required this.reloadConfiguration, + required this.workspaceName, + }); + + String toJs() { + final fields = { + 'moduleStrategy': '"$moduleStrategy"', + 'reloadConfiguration': '"$reloadConfiguration"', + 'loadModuleConfig': loadModuleConfig, + 'dwdsVersion': '"$dwdsVersion"', + 'enableDevToolsLaunch': enableDevToolsLaunch, + 'emitDebugEvents': emitDebugEvents, + 'isInternalBuild': isInternalBuild, + 'appName': 'appName', + 'appId': '"$appId"', + 'isFlutterApp': isFlutterApp, + 'devHandlerPath': '"$devHandlerPath"', + 'entrypoints': '["$entrypointPath"]', + if (extensionUrl != null) 'extensionUrl': '"$extensionUrl"', + if (workspaceName != null) 'workspaceName': '"$workspaceName"', + }; + + final lines = fields.entries.map((e) => ' ${e.key}: ${e.value},'); + return ['{', ...lines, '}'].join('\n '); + } +} diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js index 0b0253f8f..a50c37a7d 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, intern-composite-values), the Dart to JavaScript compiler version: 3.3.0-57.0.dev. +// Generated by dart2js (NullSafetyMode.sound, csp, intern-composite-values), the Dart to JavaScript compiler version: 3.3.0-166.0.dev. // The code supports the following hooks: // dartPrint(message): // if this function is defined it is called instead of the Dart [print] @@ -34,8 +34,9 @@ var keys = Object.keys(from); for (var i = 0; i < keys.length; i++) { var key = keys[i]; - if (!to.hasOwnProperty(key)) + if (!to.hasOwnProperty(key)) { to[key] = from[key]; + } } } function mixinPropertiesEasy(from, to) { @@ -74,8 +75,9 @@ } } function inheritMany(sup, classes) { - for (var i = 0; i < classes.length; i++) + for (var i = 0; i < classes.length; i++) { inherit(classes[i], sup); + } } function mixinEasy(cls, mixin) { mixinPropertiesEasy(mixin.prototype, cls.prototype); @@ -98,11 +100,13 @@ if (holder[name] === uninitializedSentinel) { result = holder[name] = sentinelInProgress; result = holder[name] = initializer(); - } else + } else { result = holder[name]; + } } finally { - if (result === sentinelInProgress) + if (result === sentinelInProgress) { holder[name] = null; + } holder[getterName] = function() { return this[name]; }; @@ -114,8 +118,9 @@ var uninitializedSentinel = holder; holder[name] = uninitializedSentinel; holder[getterName] = function() { - if (holder[name] === uninitializedSentinel) + if (holder[name] === uninitializedSentinel) { holder[name] = initializer(); + } holder[getterName] = function() { return this[name]; }; @@ -128,8 +133,9 @@ holder[getterName] = function() { if (holder[name] === uninitializedSentinel) { var value = initializer(); - if (holder[name] !== uninitializedSentinel) + if (holder[name] !== uninitializedSentinel) { A.throwLateFieldADI(name); + } holder[name] = value; } var finalValue = holder[name]; @@ -152,8 +158,9 @@ return properties; } function convertAllToFastObject(arrayOfObjects) { - for (var i = 0; i < arrayOfObjects.length; ++i) + for (var i = 0; i < arrayOfObjects.length; ++i) { convertToFastObject(arrayOfObjects[i]); + } } var functionCounter = 0; function instanceTearOffGetter(isIntercepted, parameters) { @@ -178,8 +185,9 @@ } var typesOffset = 0; function tearOffParameters(container, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) { - if (typeof funType == "number") + if (typeof funType == "number") { funType += typesOffset; + } return {co: container, iS: isStatic, iI: isIntercepted, rC: requiredParameterCount, dV: optionalParameterDefaultValues, cs: callNames, fs: funsOrNames, fT: funType, aI: applyIndex || 0, nDA: needsDirectAccess}; } function installStaticTearOff(holder, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) { @@ -501,9 +509,6 @@ _clearChildren$0$x(receiver) { return J.getInterceptor$x(receiver)._clearChildren$0(receiver); }, - _initCustomEvent$4$x(receiver, a0, a1, a2, a3) { - return J.getInterceptor$x(receiver)._initCustomEvent$4(receiver, a0, a1, a2, a3); - }, _removeEventListener$3$x(receiver, a0, a1, a2) { return J.getInterceptor$x(receiver)._removeEventListener$3(receiver, a0, a1, a2); }, @@ -534,8 +539,8 @@ elementAt$1$ax(receiver, a0) { return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); }, - forEach$1$ax(receiver, a0) { - return J.getInterceptor$ax(receiver).forEach$1(receiver, a0); + forEach$1$x(receiver, a0) { + return J.getInterceptor$x(receiver).forEach$1(receiver, a0); }, forceLoadModule$3$x(receiver, a0, a1, a2) { return J.getInterceptor$x(receiver).forceLoadModule$3(receiver, a0, a1, a2); @@ -570,6 +575,9 @@ sort$1$ax(receiver, a0) { return J.getInterceptor$ax(receiver).sort$1(receiver, a0); }, + take$1$ax(receiver, a0) { + return J.getInterceptor$ax(receiver).take$1(receiver, a0); + }, then$1$1$x(receiver, a0, $T1) { return J.getInterceptor$x(receiver).then$1$1(receiver, a0, $T1); }, @@ -688,6 +696,14 @@ return new A.EfficientLengthMappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>")); return new A.MappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("MappedIterable<1,2>")); }, + TakeIterable_TakeIterable(iterable, takeCount, $E) { + var _s9_ = "takeCount"; + A.ArgumentError_checkNotNull(takeCount, _s9_, type$.int); + A.RangeError_checkNotNegative(takeCount, _s9_); + if (type$.EfficientLengthIterable_dynamic._is(iterable)) + return new A.EfficientLengthTakeIterable(iterable, takeCount, $E._eval$1("EfficientLengthTakeIterable<0>")); + return new A.TakeIterable(iterable, takeCount, $E._eval$1("TakeIterable<0>")); + }, SkipIterable_SkipIterable(iterable, count, $E) { var _s5_ = "count"; if (type$.EfficientLengthIterable_dynamic._is(iterable)) { @@ -997,7 +1013,7 @@ SubListIterable: function SubListIterable(t0, t1, t2, t3) { var _ = this; _.__internal$_iterable = t0; - _.__internal$_start = t1; + _._start = t1; _._endOrLength = t2; _.$ti = t3; }, @@ -1041,6 +1057,21 @@ this._f = t1; this.$ti = t2; }, + TakeIterable: function TakeIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._takeCount = t1; + this.$ti = t2; + }, + EfficientLengthTakeIterable: function EfficientLengthTakeIterable(t0, t1, t2) { + this.__internal$_iterable = t0; + this._takeCount = t1; + this.$ti = t2; + }, + TakeIterator: function TakeIterator(t0, t1, t2) { + this._iterator = t0; + this._remaining = t1; + this.$ti = t2; + }, SkipIterable: function SkipIterable(t0, t1, t2) { this.__internal$_iterable = t0; this._skipCount = t1; @@ -1073,7 +1104,7 @@ this.$ti = t1; }, Symbol: function Symbol(t0) { - this._name = t0; + this.__internal$_name = t0; }, __CastListBase__CastIterableBase_ListMixin: function __CastListBase__CastIterableBase_ListMixin() { }, @@ -2208,7 +2239,7 @@ _AllMatchesIterable: function _AllMatchesIterable(t0, t1, t2) { this._re = t0; this._string = t1; - this._start = t2; + this.__js_helper$_start = t2; }, _AllMatchesIterator: function _AllMatchesIterator(t0, t1, t2) { var _ = this; @@ -2247,7 +2278,7 @@ return t1.__late_helper$_value = t1; }, _Cell: function _Cell(t0) { - this.__late_helper$_name = t0; + this._name = t0; this.__late_helper$_value = null; }, _ensureNativeList(list) { @@ -3603,27 +3634,19 @@ throw A.wrapException(A.AssertionError$("Bad index " + index + " for " + environment.toString$0(0))); }, isSubtype(universe, s, t) { - var result, t1, _null = null, + var result, sCache = s._isSubtypeCache; if (sCache == null) sCache = s._isSubtypeCache = new Map(); result = sCache.get(t); if (result == null) { - result = A._isSubtype(universe, s, _null, t, _null, false) ? 1 : 0; + result = A._isSubtype(universe, s, null, t, null, false) ? 1 : 0; sCache.set(t, result); } - t1 = J.getInterceptor$(result); - if (t1.$eq(result, 0)) + if (0 === result) return false; - if (t1.$eq(result, 1)) + if (1 === result) return true; - A._rtiToString(s, _null); - A._rtiToString(t, _null); - A.StackTrace_current(); - if (!$._reportingExtraNullSafetyError) { - $._reportingExtraNullSafetyError = true; - $._reportingExtraNullSafetyError = false; - } return true; }, _isSubtype(universe, s, sEnv, t, tEnv, isLegacy) { @@ -3914,9 +3937,6 @@ _TypeError: function _TypeError(t0) { this.__rti$_message = t0; }, - _InconsistentSubtypingError: function _InconsistentSubtypingError(t0) { - this.__rti$_message = t0; - }, _AsyncRun__initializeScheduleImmediate() { var div, span, t1 = {}; if (self.scheduleImmediate != null) @@ -3992,7 +4012,7 @@ _wrapJsFunctionForAsync($function) { var $protected = function(fn, ERROR) { return function(errorCode, result) { - while (true) + while (true) { try { fn(errorCode, result); break; @@ -4000,6 +4020,7 @@ result = error; errorCode = ERROR; } + } }; }($function, 1); return $.Zone__current.registerBinaryCallback$3$1(new A._wrapJsFunctionForAsync_closure($protected), type$.void, type$.int, type$.dynamic); @@ -4026,12 +4047,8 @@ var result, error, stackTrace, future, replacement, t1, exception; try { result = computation.call$0(); - if ($T._eval$1("Future<0>")._is(result)) - return result; - else { - t1 = A._Future$value(result, $T); - return t1; - } + t1 = $T._eval$1("Future<0>")._is(result) ? result : A._Future$value(result, $T); + return t1; } catch (exception) { error = A.unwrapException(exception); stackTrace = A.getTraceFromException(exception); @@ -4680,12 +4697,12 @@ _.$ti = t4; }, _ControllerStream: function _ControllerStream(t0, t1) { - this._controller = t0; + this._async$_controller = t0; this.$ti = t1; }, _ControllerSubscription: function _ControllerSubscription(t0, t1, t2, t3, t4, t5, t6) { var _ = this; - _._controller = t0; + _._async$_controller = t0; _._async$_onData = t1; _._onError = t2; _._onDone = t3; @@ -4976,7 +4993,7 @@ B.JSArray_methods.add$1($.toStringVisiting, m); result._contents += "{"; t1.first = true; - J.forEach$1$ax(m, new A.MapBase_mapToString_closure(t1, result)); + J.forEach$1$x(m, new A.MapBase_mapToString_closure(t1, result)); result._contents += "}"; } finally { if (0 >= $.toStringVisiting.length) @@ -5040,7 +5057,7 @@ }, _HashSetIterator: function _HashSetIterator(t0, t1, t2) { var _ = this; - _._set = t0; + _._collection$_set = t0; _._collection$_elements = t1; _._offset = 0; _._collection$_current = null; @@ -5054,12 +5071,12 @@ _.$ti = t0; }, _LinkedHashSetCell: function _LinkedHashSetCell(t0) { - this._collection$_element = t0; + this._element = t0; this._collection$_next = null; }, _LinkedHashSetIterator: function _LinkedHashSetIterator(t0, t1, t2) { var _ = this; - _._set = t0; + _._collection$_set = t0; _._collection$_modifications = t1; _._collection$_current = _._collection$_cell = null; _.$ti = t2; @@ -5981,39 +5998,37 @@ return list; }, String_String$fromCharCodes(charCodes, start, end) { - var array, len; + var t1, t2, maxLength, array, len; + A.RangeError_checkNotNegative(start, "start"); + t1 = end == null; + t2 = !t1; + if (t2) { + maxLength = end - start; + if (maxLength < 0) + throw A.wrapException(A.RangeError$range(end, start, null, "end", null)); + if (maxLength === 0) + return ""; + } if (Array.isArray(charCodes)) { array = charCodes; len = array.length; - end = A.RangeError_checkValidRange(start, end, len); + if (t1) + end = len; return A.Primitives_stringFromCharCodes(start > 0 || end < len ? array.slice(start, end) : array); } if (type$.NativeUint8List._is(charCodes)) - return A.Primitives_stringFromNativeUint8List(charCodes, start, A.RangeError_checkValidRange(start, end, charCodes.length)); - return A.String__stringFromIterable(charCodes, start, end); - }, - String__stringFromIterable(charCodes, start, end) { - var t1, it, i, list, _null = null; - if (start < 0) - throw A.wrapException(A.RangeError$range(start, 0, J.get$length$asx(charCodes), _null, _null)); - t1 = end == null; - if (!t1 && end < start) - throw A.wrapException(A.RangeError$range(end, start, J.get$length$asx(charCodes), _null, _null)); - it = J.get$iterator$ax(charCodes); - for (i = 0; i < start; ++i) - if (!it.moveNext$0()) - throw A.wrapException(A.RangeError$range(start, 0, i, _null, _null)); - list = []; - if (t1) - for (; it.moveNext$0();) - list.push(it.get$current(it)); - else - for (i = start; i < end; ++i) { - if (!it.moveNext$0()) - throw A.wrapException(A.RangeError$range(end, start, i, _null, _null)); - list.push(it.get$current(it)); - } - return A.Primitives_stringFromCharCodes(list); + return A.String__stringFromUint8List(charCodes, start, end); + if (t2) + charCodes = J.take$1$ax(charCodes, end); + if (start > 0) + charCodes = J.skip$1$ax(charCodes, start); + return A.Primitives_stringFromCharCodes(A.List_List$of(charCodes, true, type$.int)); + }, + String__stringFromUint8List(charCodes, start, endOrNull) { + var len = charCodes.length; + if (start >= len) + return ""; + return A.Primitives_stringFromNativeUint8List(charCodes, start, endOrNull == null || endOrNull > len ? len : endOrNull); }, RegExp_RegExp(source, caseSensitive, multiLine) { return new A.JSSyntaxRegExp(source, A.JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, false, false, false)); @@ -7577,26 +7592,6 @@ this._jsWeakMap = t0; this.$ti = t1; }, - CustomEvent_CustomEvent(type, detail) { - var e, t1, exception, - canBubble = true, - cancelable = true; - detail = detail; - t1 = document.createEvent("CustomEvent"); - t1.toString; - e = type$.CustomEvent._as(t1); - e._dartDetail = detail; - if (type$.List_dynamic._is(detail) || type$.Map_dynamic_dynamic._is(detail) || typeof detail == "string" || typeof detail == "number") - try { - detail = new A._StructuredCloneDart2Js([], []).walk$1(detail); - J._initCustomEvent$4$x(e, type, canBubble, cancelable, detail); - } catch (exception) { - J._initCustomEvent$4$x(e, type, canBubble, cancelable, null); - } - else - J._initCustomEvent$4$x(e, type, canBubble, cancelable, null); - return e; - }, Element_Element$html(html, treeSanitizer, validator) { var t2, t1 = document.body; @@ -7616,26 +7611,18 @@ } return result; }, - EventSource__factoryEventSource(url, eventSourceInitDict) { - var t1 = new EventSource(url, A.convertDartToNative_Dictionary(eventSourceInitDict)); - t1.toString; - return t1; - }, - HttpRequest_request(url, method, responseType, withCredentials) { + HttpRequest_request0(url, method, responseType) { var t3, t4, t1 = new A._Future($.Zone__current, type$._Future_HttpRequest), completer = new A._AsyncCompleter(t1, type$._AsyncCompleter_HttpRequest), t2 = new XMLHttpRequest(); t2.toString; B.HttpRequest_methods.open$3$async(t2, method, url, true); - if (withCredentials != null) - B.HttpRequest_methods.set$withCredentials(t2, withCredentials); - if (responseType != null) - t2.responseType = responseType; + t2.responseType = responseType; t3 = type$.nullable_void_Function_ProgressEvent; t4 = type$.ProgressEvent; - A._EventStreamSubscription$(t2, "load", t3._as(new A.HttpRequest_request_closure(t2, completer)), false, t4); - A._EventStreamSubscription$(t2, "error", t3._as(completer.get$completeError()), false, t4); + A._EventStreamSubscription$0(t2, "load", t3._as(new A.HttpRequest_request_closure0(t2, completer)), false, t4); + A._EventStreamSubscription$0(t2, "error", t3._as(completer.get$completeError()), false, t4); t2.send(); return t1; }, @@ -7649,10 +7636,10 @@ t1.toString; return t1; }, - _EventStreamSubscription$(_target, _eventType, onData, _useCapture, $T) { - var t1 = onData == null ? null : A._wrapZone(new A._EventStreamSubscription_closure(onData), type$.Event); - t1 = new A._EventStreamSubscription(_target, _eventType, t1, false, $T._eval$1("_EventStreamSubscription<0>")); - t1._tryResume$0(); + _EventStreamSubscription$0(_target, _eventType, onData, _useCapture, $T) { + var t1 = onData == null ? null : A._wrapZone0(new A._EventStreamSubscription_closure0(onData), type$.Event); + t1 = new A._EventStreamSubscription0(_target, _eventType, t1, false, $T._eval$1("_EventStreamSubscription0<0>")); + t1._html$_tryResume$0(); return t1; }, _Html5NodeValidator$(uriPolicy) { @@ -7720,15 +7707,7 @@ return o; return new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(o, true); }, - _DOMWindowCrossFrame__createSafe(w) { - var t1 = window; - t1.toString; - if (w === t1) - return type$.WindowBase._as(w); - else - return new A._DOMWindowCrossFrame(); - }, - _wrapZone(callback, $T) { + _wrapZone0(callback, $T) { var t1 = $.Zone__current; if (t1 === B.C__RootZone) return callback; @@ -7768,8 +7747,6 @@ }, CssUnparsedValue: function CssUnparsedValue() { }, - CustomEvent: function CustomEvent() { - }, DataTransferItemList: function DataTransferItemList() { }, Document: function Document() { @@ -7796,8 +7773,6 @@ }, Event: function Event() { }, - EventSource: function EventSource() { - }, EventTarget: function EventTarget() { }, File: function File() { @@ -7818,7 +7793,7 @@ }, HttpRequest: function HttpRequest() { }, - HttpRequest_request_closure: function HttpRequest_request_closure(t0, t1) { + HttpRequest_request_closure0: function HttpRequest_request_closure0(t0, t1) { this.xhr = t0; this.completer = t1; }, @@ -7826,16 +7801,12 @@ }, ImageData: function ImageData() { }, - KeyboardEvent: function KeyboardEvent() { - }, Location: function Location() { }, MediaList: function MediaList() { }, MessageEvent: function MessageEvent() { }, - MessagePort: function MessagePort() { - }, MidiInputMap: function MidiInputMap() { }, MidiInputMap_keys_closure: function MidiInputMap_keys_closure(t0) { @@ -7872,8 +7843,6 @@ }, SelectElement: function SelectElement() { }, - SharedArrayBuffer: function SharedArrayBuffer() { - }, SourceBuffer: function SourceBuffer() { }, SourceBufferList: function SourceBufferList() { @@ -7915,8 +7884,6 @@ }, TrackDefaultList: function TrackDefaultList() { }, - UIEvent: function UIEvent() { - }, Url: function Url() { }, VideoTrackList: function VideoTrackList() { @@ -7944,29 +7911,29 @@ _AttributeMap: function _AttributeMap() { }, _ElementAttributeMap: function _ElementAttributeMap(t0) { - this._element = t0; + this._html$_element = t0; }, EventStreamProvider: function EventStreamProvider(t0, t1) { - this._eventType = t0; + this._html$_eventType = t0; this.$ti = t1; }, - _EventStream: function _EventStream(t0, t1, t2, t3) { + _EventStream0: function _EventStream0(t0, t1, t2, t3) { var _ = this; - _._target = t0; - _._eventType = t1; - _._useCapture = t2; + _._html$_target = t0; + _._html$_eventType = t1; + _._html$_useCapture = t2; _.$ti = t3; }, - _EventStreamSubscription: function _EventStreamSubscription(t0, t1, t2, t3, t4) { + _EventStreamSubscription0: function _EventStreamSubscription0(t0, t1, t2, t3, t4) { var _ = this; - _._pauseCount = 0; - _._target = t0; - _._eventType = t1; - _._onData = t2; - _._useCapture = t3; + _._html$_pauseCount = 0; + _._html$_target = t0; + _._html$_eventType = t1; + _._html$_onData = t2; + _._html$_useCapture = t3; _.$ti = t4; }, - _EventStreamSubscription_closure: function _EventStreamSubscription_closure(t0) { + _EventStreamSubscription_closure0: function _EventStreamSubscription_closure0(t0) { this.onData = t0; }, _EventStreamSubscription_onData_closure: function _EventStreamSubscription_onData_closure(t0) { @@ -8014,8 +7981,6 @@ _._current = null; _.$ti = t2; }, - _DOMWindowCrossFrame: function _DOMWindowCrossFrame() { - }, _SameOriginUriPolicy: function _SameOriginUriPolicy(t0, t1) { this._hiddenAnchor = t0; this._loc = t1; @@ -8144,26 +8109,6 @@ } return dict; }, - _convertDartToNative_Value(value) { - var array; - if (value == null) - return value; - if (typeof value == "string" || typeof value == "number" || A._isBool(value)) - return value; - if (type$.Map_dynamic_dynamic._is(value)) - return A.convertDartToNative_Dictionary(value); - if (type$.List_dynamic._is(value)) { - array = []; - J.forEach$1$ax(value, new A._convertDartToNative_Value_closure(array)); - value = array; - } - return value; - }, - convertDartToNative_Dictionary(dict) { - var object = {}; - J.forEach$1$ax(dict, new A.convertDartToNative_Dictionary_closure(object)); - return object; - }, isJavaScriptSimpleObject(value) { var proto = Object.getPrototypeOf(value), t1 = proto === Object.prototype; @@ -8175,32 +8120,12 @@ t1 = true; return t1; }, - _StructuredClone: function _StructuredClone() { - }, - _StructuredClone_walk_closure: function _StructuredClone_walk_closure(t0, t1) { - this._box_0 = t0; - this.$this = t1; - }, - _StructuredClone_walk_closure0: function _StructuredClone_walk_closure0(t0, t1) { - this._box_0 = t0; - this.$this = t1; - }, _AcceptStructuredClone: function _AcceptStructuredClone() { }, _AcceptStructuredClone_walk_closure: function _AcceptStructuredClone_walk_closure(t0, t1) { this.$this = t0; this.map = t1; }, - _convertDartToNative_Value_closure: function _convertDartToNative_Value_closure(t0) { - this.array = t0; - }, - convertDartToNative_Dictionary_closure: function convertDartToNative_Dictionary_closure(t0) { - this.object = t0; - }, - _StructuredCloneDart2Js: function _StructuredCloneDart2Js(t0, t1) { - this.values = t0; - this.copies = t1; - }, _AcceptStructuredCloneDart2Js: function _AcceptStructuredCloneDart2Js(t0, t1) { this.values = t0; this.copies = t1; @@ -8221,12 +8146,6 @@ dartArgs = A.List_List$from(J.map$1$1$ax($arguments, A.js___convertToDart$closure(), t1), true, t1); return A._convertToJS(A.Function_apply(type$.Function._as(callback), dartArgs, null)); }, - JsObject_JsObject$fromBrowserObject(object) { - var t1 = false; - if (t1) - throw A.wrapException(A.ArgumentError$("object cannot be a num, string, bool, or null", null)); - return A._wrapToDart(A._convertToJS(object)); - }, JsObject__convertDataTree(data) { return new A.JsObject__convertDataTree__convert(new A._IdentityHashMap(type$._IdentityHashMap_dynamic_dynamic)).call$1(data); }, @@ -8351,12 +8270,23 @@ else return $F._as(A._convertDartFunctionFast(f)); }, + getProperty(o, $name, $T) { + return $T._as(o[$name]); + }, promiseToFuture(jsPromise, $T) { var t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>")), completer = new A._AsyncCompleter(t1, $T._eval$1("_AsyncCompleter<0>")); jsPromise.then(A.convertDartClosureToJS(new A.promiseToFuture_closure(completer, $T), 1), A.convertDartClosureToJS(new A.promiseToFuture_closure0(completer), 1)); return t1; }, + _noDartifyRequired(o) { + return o == null || typeof o === "boolean" || typeof o === "number" || typeof o === "string" || o instanceof Int8Array || o instanceof Uint8Array || o instanceof Uint8ClampedArray || o instanceof Int16Array || o instanceof Uint16Array || o instanceof Int32Array || o instanceof Uint32Array || o instanceof Float32Array || o instanceof Float64Array || o instanceof ArrayBuffer || o instanceof DataView; + }, + dartify(o) { + if (A._noDartifyRequired(o)) + return o; + return new A.dartify_convert(new A._IdentityHashMap(type$._IdentityHashMap_of_nullable_Object_and_nullable_Object)).call$1(o); + }, promiseToFuture_closure: function promiseToFuture_closure(t0, t1) { this.completer = t0; this.T = t1; @@ -8364,6 +8294,9 @@ promiseToFuture_closure0: function promiseToFuture_closure0(t0) { this.completer = t0; }, + dartify_convert: function dartify_convert(t0) { + this._convertedObjects = t0; + }, NullRejectionException: function NullRejectionException(t0) { this.isUndefined = t0; }, @@ -8522,7 +8455,7 @@ this.$ti = t0; }, BuiltListMultimap_BuiltListMultimap($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); + var t1 = A._BuiltListMultimap$copy(B.Map_empty.get$keys(B.Map_empty), new A.BuiltListMultimap_BuiltListMultimap_closure(B.Map_empty), $K, $V); return t1; }, _BuiltListMultimap$copy(keys, lookup, $K, $V) { @@ -8532,7 +8465,7 @@ }, 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_empty0); + t1.replace$1(0, B.Map_empty); return t1; }, BuiltListMultimap: function BuiltListMultimap() { @@ -8562,12 +8495,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_empty0.get$keys(B.Map_empty0), new A.BuiltMap_BuiltMap_closure(B.Map_empty0), $K, $V); + t1._BuiltMap$copyAndCheckTypes$2(B.Map_empty.get$keys(B.Map_empty), new A.BuiltMap_BuiltMap_closure(B.Map_empty), $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_empty0); + t1.replace$1(0, B.Map_empty); return t1; }, BuiltMap: function BuiltMap() { @@ -8614,7 +8547,7 @@ _BuiltSet: function _BuiltSet(t0, t1, t2) { var _ = this; _._setFactory = t0; - _._set$_set = t1; + _._set = t1; _._set$_hashCode = null; _.$ti = t2; }, @@ -8627,7 +8560,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_empty0); + t1.replace$1(0, B.Map_empty); return t1; }, BuiltSetMultimap: function BuiltSetMultimap() { @@ -8736,6 +8669,7 @@ t2.add$1(0, new A.DoubleSerializer(A.BuiltList_BuiltList$from([B.Type_double_K1J], t1))); t2.add$1(0, new A.DurationSerializer(A.BuiltList_BuiltList$from([B.Type_Duration_SnA], t1))); t2.add$1(0, new A.IntSerializer(A.BuiltList_BuiltList$from([B.Type_int_tHn], t1))); + t2.add$1(0, new A.Int32Serializer(A.BuiltList_BuiltList$from([B.Type_Int32_Mhf], t1))); t2.add$1(0, new A.Int64Serializer(A.BuiltList_BuiltList$from([B.Type_Int64_ww8], t1))); t2.add$1(0, new A.JsonObjectSerializer(A.BuiltList_BuiltList$from([B.Type_JsonObject_gyf, B.Type_BoolJsonObject_8HQ, B.Type_ListJsonObject_yPV, B.Type_MapJsonObject_bBG, B.Type_NumJsonObject_H9C, B.Type_StringJsonObject_GAC], t1))); t2.add$1(0, new A.NullSerializer(A.BuiltList_BuiltList$from([B.Type_Null_Yyn], t1))); @@ -8796,6 +8730,10 @@ genericsStart = B.JSString_methods.indexOf$1($name, "<"); return genericsStart === -1 ? $name : B.JSString_methods.substring$2($name, 0, genericsStart); }, + _noSerializerMessageFor(typeName) { + var maybeRecordAdvice = B.JSString_methods.contains$1(typeName, "(") ? " Note that record types are not automatically serializable, please write and install your own `Serializer`." : ""; + return "No serializer for '" + typeName + "'." + maybeRecordAdvice; + }, BuiltJsonSerializers: function BuiltJsonSerializers(t0, t1, t2, t3, t4) { var _ = this; _._typeToSerializer = t0; @@ -8868,6 +8806,9 @@ DurationSerializer: function DurationSerializer(t0) { this.types = t0; }, + Int32Serializer: function Int32Serializer(t0) { + this.types = t0; + }, Int64Serializer: function Int64Serializer(t0) { this.types = t0; }, @@ -8974,14 +8915,16 @@ }, _$ConnectRequestSerializer: function _$ConnectRequestSerializer() { }, - _$ConnectRequest: function _$ConnectRequest(t0, t1, t2) { - this.appId = t0; - this.instanceId = t1; - this.entrypointPath = t2; + _$ConnectRequest: function _$ConnectRequest(t0, t1, t2, t3) { + var _ = this; + _.appName = t0; + _.appId = t1; + _.instanceId = t2; + _.entrypoints = t3; }, ConnectRequestBuilder: function ConnectRequestBuilder() { var _ = this; - _._entrypointPath = _._instanceId = _._appId = _._$v = null; + _._entrypoints = _._instanceId = _._connect_request$_appId = _._appName = _._connect_request$_$v = null; }, DebugEvent: function DebugEvent() { }, @@ -8998,7 +8941,7 @@ }, DebugEventBuilder: function DebugEventBuilder() { var _ = this; - _._timestamp = _._eventData = _._debug_event$_kind = _._debug_event$_$v = null; + _._debug_event$_timestamp = _._debug_event$_eventData = _._debug_event$_kind = _._debug_event$_$v = null; }, _$BatchedDebugEvents: function _$BatchedDebugEvents(t0) { this.events = t0; @@ -9028,7 +8971,7 @@ }, DebugInfoBuilder: function DebugInfoBuilder() { var _ = this; - _._tabId = _._tabUrl = _._workspaceName = _._isFlutterApp = _._isInternalBuild = _._extensionUrl = _._dwdsVersion = _._authUrl = _._appUrl = _._appOrigin = _._appInstanceId = _._debug_info$_appId = _._appEntrypointPath = _._debug_info$_$v = null; + _._tabId = _._tabUrl = _._workspaceName = _._isFlutterApp = _._isInternalBuild = _._extensionUrl = _._dwdsVersion = _._authUrl = _._appUrl = _._appOrigin = _._appInstanceId = _._appId = _._appEntrypointPath = _._debug_info$_$v = null; }, DevToolsRequest: function DevToolsRequest() { }, @@ -9137,6 +9080,17 @@ IsolateStartBuilder: function IsolateStartBuilder() { this._isolate_events$_$v = null; }, + RegisterEntrypointRequest: function RegisterEntrypointRequest() { + }, + _$RegisterEntrypointRequestSerializer: function _$RegisterEntrypointRequestSerializer() { + }, + _$RegisterEntrypointRequest: function _$RegisterEntrypointRequest(t0, t1) { + this.appName = t0; + this.entrypointPath = t1; + }, + RegisterEntrypointRequestBuilder: function RegisterEntrypointRequestBuilder() { + this._entrypointPath = this._register_entrypoint_request$_appName = this._register_entrypoint_request$_$v = null; + }, RegisterEvent: function RegisterEvent() { }, _$RegisterEventSerializer: function _$RegisterEventSerializer() { @@ -9146,7 +9100,7 @@ this.timestamp = t1; }, RegisterEventBuilder: function RegisterEventBuilder() { - this._register_event$_timestamp = this._register_event$_eventData = this._register_event$_$v = null; + this._timestamp = this._eventData = this._$v = null; }, RunRequest: function RunRequest() { }, @@ -9158,6 +9112,8 @@ }, _$serializers_closure0: function _$serializers_closure0() { }, + _$serializers_closure1: function _$serializers_closure1() { + }, BatchedStreamController: function BatchedStreamController(t0, t1, t2, t3, t4, t5) { var _ = this; _._checkDelayMilliseconds = t0; @@ -9187,6 +9143,9 @@ }, safeUnawaited_closure: function safeUnawaited_closure() { }, + Int32: function Int32(t0) { + this._i = t0; + }, Int64__parseRadix(s, radix, throwOnError) { var i, negative, t1, d0, d1, d2, digit, d00, d10; if (B.JSString_methods.startsWith$1(s, "-")) { @@ -9234,6 +9193,8 @@ return value; else if (A._isInt(value)) return A.Int64_Int64(value); + else if (value instanceof A.Int32) + return A.Int64_Int64(value._i); throw A.wrapException(A.ArgumentError$value(value, "other", "not an int, Int32 or Int64")); }, Int64__toRadixStringUnsigned(radix, d0, d1, d2, sign) { @@ -9424,7 +9385,7 @@ t3 = A.Logger_Logger("SseClient"); t4 = $.Zone__current; t5 = A.generateUuidV4(); - t1 = new A.SseClient(debugKey + "-" + t5, t2, t1, t3, new A._AsyncCompleter(new A._Future(t4, type$._Future_dynamic), type$._AsyncCompleter_dynamic)); + t1 = new A.SseClient(debugKey + "-" + t5, t2, t1, t3, new A._AsyncCompleter(new A._Future(t4, type$._Future_void), type$._AsyncCompleter_void)); t1.SseClient$2$debugKey(serverUrl, debugKey); return t1; }, @@ -9457,22 +9418,20 @@ this.$this = t1; this.message = t2; }, - _FetchOptions: function _FetchOptions() { - }, generateUuidV4() { - var t1 = new A.generateUuidV4__printDigits(), - t2 = new A.generateUuidV4__bitsDigits(t1, new A.generateUuidV4__generateBits(B.C__JSRandom)), + var t1 = new A.generateUuidV4_printDigits(), + t2 = new A.generateUuidV4_bitsDigits(t1, new A.generateUuidV4_generateBits(B.C__JSRandom)), t3 = B.C__JSRandom.nextInt$1(4); return A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)) + "-" + A.S(t2.call$2(16, 4)) + "-4" + A.S(t2.call$2(12, 3)) + "-" + A.S(t1.call$2(8 + t3, 1)) + A.S(t2.call$2(12, 3)) + "-" + A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)) + A.S(t2.call$2(16, 4)); }, - generateUuidV4__generateBits: function generateUuidV4__generateBits(t0) { + generateUuidV4_generateBits: function generateUuidV4_generateBits(t0) { this.random = t0; }, - generateUuidV4__printDigits: function generateUuidV4__printDigits() { + generateUuidV4_printDigits: function generateUuidV4_printDigits() { }, - generateUuidV4__bitsDigits: function generateUuidV4__bitsDigits(t0, t1) { - this._printDigits = t0; - this._generateBits = t1; + generateUuidV4_bitsDigits: function generateUuidV4_bitsDigits(t0, t1) { + this.printDigits = t0; + this.generateBits = t1; }, GuaranteeChannel$(innerStream, innerSink, allowSinkErrors, $T) { var t2, t1 = {}; @@ -9516,6 +9475,68 @@ }, Uuid: function Uuid() { }, + _EventStreamSubscription$(_target, _eventType, onData, _useCapture, $T) { + var t1; + if (onData == null) + t1 = null; + else { + t1 = A._wrapZone(new A._EventStreamSubscription_closure(onData), type$.JavaScriptObject); + t1 = t1 == null ? null : A.allowInterop(t1, type$.Function); + } + t1 = new A._EventStreamSubscription(_target, _eventType, t1, false, $T._eval$1("_EventStreamSubscription<0>")); + t1._tryResume$0(); + return t1; + }, + _wrapZone(callback, $T) { + var t1 = $.Zone__current; + if (t1 === B.C__RootZone) + return callback; + return t1.bindUnaryCallbackGuarded$1$1(callback, $T); + }, + EventStreamProvider0: function EventStreamProvider0(t0, t1) { + this._eventType = t0; + this.$ti = t1; + }, + _EventStream: function _EventStream(t0, t1, t2, t3) { + var _ = this; + _._target = t0; + _._eventType = t1; + _._useCapture = t2; + _.$ti = t3; + }, + _EventStreamSubscription: function _EventStreamSubscription(t0, t1, t2, t3, t4) { + var _ = this; + _._pauseCount = 0; + _._target = t0; + _._eventType = t1; + _._onData = t2; + _._useCapture = t3; + _.$ti = t4; + }, + _EventStreamSubscription_closure: function _EventStreamSubscription_closure(t0) { + this.onData = t0; + }, + _EventStreamSubscription_onData_closure0: function _EventStreamSubscription_onData_closure0(t0) { + this.handleData = t0; + }, + HttpRequest_request(url, method, withCredentials) { + var t3, + t1 = new A._Future($.Zone__current, type$._Future_JavaScriptObject), + completer = new A._AsyncCompleter(t1, type$._AsyncCompleter_JavaScriptObject), + t2 = type$.JavaScriptObject, + xhr = t2._as(new self.XMLHttpRequest()); + xhr.open(method, url, true); + xhr.withCredentials = true; + t3 = type$.nullable_void_Function_JavaScriptObject; + A._EventStreamSubscription$(xhr, "load", t3._as(new A.HttpRequest_request_closure(xhr, completer)), false, t2); + A._EventStreamSubscription$(xhr, "error", t3._as(completer.get$completeError()), false, t2); + xhr.send(); + return t1; + }, + HttpRequest_request_closure: function HttpRequest_request_closure(t0, t1) { + this.xhr = t0; + this.completer = t1; + }, HtmlWebSocketChannel$connect(url, protocols) { var t2, t3, localToForeignController, foreignToLocalController, t4, t5, _null = null, t1 = A.WebSocket_WebSocket(url.toString$0(0), protocols); @@ -9539,7 +9560,7 @@ _.innerWebSocket = t0; _._localCloseReason = _._localCloseCode = null; _.__HtmlWebSocketChannel__readyCompleter_A = $; - _._html0$_controller = t1; + _._controller = t1; _.__HtmlWebSocketChannel_sink_FI = $; }, HtmlWebSocketChannel_closure: function HtmlWebSocketChannel_closure(t0) { @@ -9571,47 +9592,110 @@ main() { return A.runZonedGuarded(new A.main_closure(), new A.main_closure0(), type$.Future_void); }, - _trySendEvent(sink, serialized, $T) { - var exception; - try { - sink.add$1(0, serialized); - } catch (exception) { - if (A.unwrapException(exception) instanceof A.StateError) - A.print("Cannot send event " + A.S(serialized) + ". Injected client connection is closed."); - else - throw exception; - } - }, - _launchCommunicationWithDebugExtension() { - var t1, t2; - A._listenForDebugExtensionAuthRequest(); - t1 = $.$get$serializers(); - t2 = new A.DebugInfoBuilder(); - type$.nullable_void_Function_DebugInfoBuilder._as(new A._launchCommunicationWithDebugExtension_closure()).call$1(t2); - self.window.top.document.dispatchEvent(A.CustomEvent_CustomEvent("dart-app-ready", B.C_JsonCodec.encode$2$toEncodable(t1.serialize$1(t2._debug_info$_build$0()), null))); - }, - _listenForDebugExtensionAuthRequest() { - var t1 = window; - t1.toString; - B.Window_methods.addEventListener$2(t1, "message", A.allowInterop(new A._listenForDebugExtensionAuthRequest_closure(), type$.dynamic_Function_Event)); + runClient() { + var $async$goto = 0, + $async$completer = A._makeAsyncAwaitCompleter(type$.void), + t1, t2, t3, t4, t5, t6, t7, dwdsConnection, uri, fixedPath, fixedUri, _0_0, manager, appInfo; + var $async$runClient = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { + if ($async$errorCode === 1) + return A._asyncRethrow($async$result, $async$completer); + while (true) + switch ($async$goto) { + case 0: + // Function start + appInfo = self.$dartAppInfo; + appInfo.appInstanceId = B.C_Uuid.v1$0(); + self.$dartAppInstanceId = A._asString(appInfo.appInstanceId); + self.$dartAppId = A._asString(appInfo.appId); + self.$loadModuleConfig = type$.Object_Function_String._as(type$.Function._as(appInfo.loadModuleConfig)); + t1 = A._asString(appInfo.devHandlerPath); + t2 = $.Zone__current; + t3 = Math.max(100, 1); + t4 = A.StreamController_StreamController(null, null, false, type$.DebugEvent); + t5 = A.StreamController_StreamController(null, null, false, type$.List_DebugEvent); + t2 = new A.BatchedStreamController(t3, 1000, t4, t5, new A._AsyncCompleter(new A._Future(t2, type$._Future_bool), type$._AsyncCompleter_bool), type$.BatchedStreamController_DebugEvent); + t3 = A.List_List$filled(A.QueueList__computeInitialCapacity(null), null, false, type$.nullable_Result_DebugEvent); + t6 = A.ListQueue$(type$._EventRequest_dynamic); + t7 = type$.StreamQueue_DebugEvent; + t2.set$__BatchedStreamController__inputQueue_A(t7._as(new A.StreamQueue(new A._ControllerStream(t4, A._instanceType(t4)._eval$1("_ControllerStream<1>")), new A.QueueList(t3, 0, 0, type$.QueueList_Result_DebugEvent), t6, t7))); + A.safeUnawaited(t2._batchAndSendEvents$0()); + dwdsConnection = new A.DevHandlerConnection(t2); + uri = A.Uri_parse(t1); + t1 = self; + t2 = type$.JavaScriptObject; + if (A._asString(t2._as(t2._as(t1.window).location).protocol) === "https:" && uri.get$scheme() === "http" && uri.get$host(uri) !== "localhost") + uri = uri.replace$1$scheme(0, "https"); + else if (A._asString(t2._as(t2._as(t1.window).location).protocol) === "wss:" && uri.get$scheme() === "ws" && uri.get$host(uri) !== "localhost") + uri = uri.replace$1$scheme(0, "wss"); + fixedPath = uri.toString$0(0); + fixedUri = A.Uri_parse(fixedPath); + t3 = fixedUri.isScheme$1("ws") || fixedUri.isScheme$1("wss") ? new A.WebSocketClient(A.HtmlWebSocketChannel$connect(fixedUri, null)) : new A.SseSocketClient(A.SseClient$(fixedPath, "InjectedClient")); + dwdsConnection.__DevHandlerConnection_client_F = t3; + new A._ControllerStream(t5, A._instanceType(t5)._eval$1("_ControllerStream<1>")).listen$1(dwdsConnection.get$_sendBatchedDebugEvents()); + t5 = type$.void_Function_String_String; + self.$dartRegisterEntrypoint = A.allowInterop(new A.runClient_closure(appInfo, dwdsConnection), t5); + A.print("Injected Client " + A.S(self.$dartAppInstanceId) + ": set registerEntrypoint"); + _0_0 = A._asString(appInfo.moduleStrategy); + $async$goto = "require-js" === _0_0 ? 3 : 4; + break; + case 3: + // then + $async$goto = 5; + return A._asyncAwait(A.RequireRestarter_create(), $async$runClient); + case 5: + // returning from await. + t4 = $async$result; + // goto break $label0$0 + $async$goto = 2; + break; + case 4: + // join + if ("legacy" === _0_0) { + t4 = new A.LegacyRestarter(); + // goto break $label0$0 + $async$goto = 2; + break; + } + t4 = A.throwExpression(A.StateError$("Unknown module strategy: " + A.S(A.getProperty(appInfo, "moduleStrategy", type$.String)))); + case 2: + // break $label0$0 + manager = new A.ReloadingManager(t3, t4); + self.$dartHotRestartDwds = A.allowInterop(new A.runClient_closure0(manager), type$.Promise_bool_Function_String); + self.$emitDebugEvent = A.allowInterop(new A.runClient_closure1(appInfo, dwdsConnection), t5); + self.$emitRegisterEvent = A.allowInterop(dwdsConnection.get$sendRegisterEvent(), type$.void_Function_String); + self.$launchDevTools = A.allowInterop(new A.runClient_closure2(dwdsConnection, appInfo), type$.void_Function); + t3.get$stream(t3).listen$2$onError(new A.runClient_closure3(appInfo, manager), new A.runClient_closure4()); + if (A._asBool(appInfo.enableDevToolsLaunch)) + A._EventStreamSubscription$(t2._as(t1.window), "keydown", type$.nullable_void_Function_JavaScriptObject._as(new A.runClient_closure5()), false, t2); + if (A._isChromium()) + dwdsConnection.sendConnectRequest$4(A._asString(appInfo.appName), A._asString(appInfo.appId), A._asString(appInfo.appInstanceId), A.StringList_get_toDart(type$.List_nullable_Object._as(appInfo.entrypoints))); + else + A.runMain(); + new A.DebugExtensionConnection(appInfo).launchCommunication$0(); + // implicit return + return A._asyncReturn(null, $async$completer); + } + }); + return A._asyncStartSync($async$runClient, $async$completer); }, - _authenticateUser(authUrl) { + DebugExtensionConnection__authenticateUser(authUrl) { var $async$goto = 0, $async$completer = A._makeAsyncAwaitCompleter(type$.bool), - $async$returnValue, responseText; - var $async$_authenticateUser = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { + $async$returnValue, $async$temp1, $async$temp2; + var $async$DebugExtensionConnection__authenticateUser = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { if ($async$errorCode === 1) return A._asyncRethrow($async$result, $async$completer); while (true) switch ($async$goto) { case 0: // Function start + $async$temp1 = B.JSString_methods; + $async$temp2 = A; $async$goto = 3; - return A._asyncAwait(A.HttpRequest_request(authUrl, "GET", null, true), $async$_authenticateUser); + return A._asyncAwait(A.HttpRequest_request(authUrl, "GET", true), $async$DebugExtensionConnection__authenticateUser); case 3: // returning from await. - responseText = $async$result.responseText; - $async$returnValue = B.JSString_methods.contains$1(responseText == null ? "" : responseText, "Dart Debug Authentication Success!"); + $async$returnValue = $async$temp1.contains$1($async$temp2._asString($async$result.responseText), "Dart Debug Authentication Success!"); // goto return $async$goto = 1; break; @@ -9620,68 +9704,81 @@ return A._asyncReturn($async$returnValue, $async$completer); } }); - return A._asyncStartSync($async$_authenticateUser, $async$completer); + return A._asyncStartSync($async$DebugExtensionConnection__authenticateUser, $async$completer); }, - _authUrl() { - var extensionUrl, authUrl, - t1 = window; - t1.toString; - extensionUrl = A._asStringQ(A.JsObject_JsObject$fromBrowserObject(t1).$index(0, "$dartExtensionUri")); - if (extensionUrl == null) - return null; - authUrl = A.Uri_parse(extensionUrl).replace$1$path(0, "$dwdsExtensionAuthentication"); - switch (authUrl.scheme) { - case "ws": - return authUrl.replace$1$scheme(0, "http").get$_text(); - case "wss": - return authUrl.replace$1$scheme(0, "https").get$_text(); - default: - return authUrl.get$_text(); - } + _isChromium() { + var t1 = type$.JavaScriptObject; + return B.JSString_methods.contains$1(A._asString(t1._as(t1._as(self.window).navigator).vendor), "Google"); + }, + StringList_get_toDart(_this) { + return A.List_List$from(J.map$1$1$ax(_this, new A.StringList_get_toDart_closure(), type$.dynamic), true, type$.String); }, main_closure: function main_closure() { }, - main__closure: function main__closure(t0) { + main_closure0: function main_closure0() { + }, + runClient_closure: function runClient_closure(t0, t1) { + this.appInfo = t0; + this.dwdsConnection = t1; + }, + runClient_closure0: function runClient_closure0(t0) { this.manager = t0; }, - main__closure0: function main__closure0(t0) { - this.client = t0; + runClient_closure1: function runClient_closure1(t0, t1) { + this.appInfo = t0; + this.dwdsConnection = t1; }, - main___closure2: function main___closure2(t0) { - this.events = t0; + runClient_closure2: function runClient_closure2(t0, t1) { + this.dwdsConnection = t0; + this.appInfo = t1; }, - main__closure1: function main__closure1(t0) { - this.debugEventController = t0; + runClient_closure3: function runClient_closure3(t0, t1) { + this.appInfo = t0; + this.manager = t1; }, - main___closure1: function main___closure1(t0, t1) { - this.kind = t0; - this.eventData = t1; + runClient_closure4: function runClient_closure4() { }, - main__closure2: function main__closure2(t0) { - this.client = t0; + runClient_closure5: function runClient_closure5() { }, - main___closure0: function main___closure0(t0) { - this.eventData = t0; + DebugExtensionConnection: function DebugExtensionConnection(t0) { + this.appInfo = t0; + }, + DebugExtensionConnection_launchCommunication_closure: function DebugExtensionConnection_launchCommunication_closure(t0) { + this.$this = t0; }, - main__closure3: function main__closure3(t0) { - this.client = t0; + DebugExtensionConnection__handleDebugExtensionAuthRequest_closure: function DebugExtensionConnection__handleDebugExtensionAuthRequest_closure(t0) { + this.$this = t0; }, - main___closure: function main___closure() { + DevHandlerConnection: function DevHandlerConnection(t0) { + this.__DevHandlerConnection_client_F = $; + this.debugEventController = t0; }, - main__closure4: function main__closure4(t0) { - this.manager = t0; + DevHandlerConnection_sendConnectRequest_closure: function DevHandlerConnection_sendConnectRequest_closure(t0, t1, t2, t3) { + var _ = this; + _.appName = t0; + _.appId = t1; + _.appInstanceId = t2; + _.entrypoints = t3; }, - main__closure5: function main__closure5() { + DevHandlerConnection_sendRegisterEntrypointRequest_closure: function DevHandlerConnection_sendRegisterEntrypointRequest_closure(t0, t1) { + this.appName = t0; + this.entrypointPath = t1; }, - main__closure6: function main__closure6() { + DevHandlerConnection__sendBatchedDebugEvents_closure: function DevHandlerConnection__sendBatchedDebugEvents_closure(t0) { + this.events = t0; }, - main__closure7: function main__closure7() { + DevHandlerConnection_sendDebugEvent_closure: function DevHandlerConnection_sendDebugEvent_closure(t0, t1) { + this.kind = t0; + this.eventData = t1; }, - main_closure0: function main_closure0() { + DevHandlerConnection_sendRegisterEvent_closure: function DevHandlerConnection_sendRegisterEvent_closure(t0) { + this.eventData = t0; }, - _launchCommunicationWithDebugExtension_closure: function _launchCommunicationWithDebugExtension_closure() { + DevHandlerConnection_sendDevToolsRequest_closure: function DevHandlerConnection_sendDevToolsRequest_closure(t0, t1) { + this.appId = t0; + this.appInstanceId = t1; }, - _listenForDebugExtensionAuthRequest_closure: function _listenForDebugExtensionAuthRequest_closure() { + StringList_get_toDart_closure: function StringList_get_toDart_closure() { }, LegacyRestarter: function LegacyRestarter() { }, @@ -10005,16 +10102,6 @@ A.throwExpression(A.UnsupportedError$("clear")); receiver.length = 0; }, - forEach$1(receiver, f) { - var end, i; - A._arrayInstanceType(receiver)._eval$1("~(1)")._as(f); - end = receiver.length; - for (i = 0; i < end; ++i) { - f.call$1(receiver[i]); - if (receiver.length !== end) - throw A.wrapException(A.ConcurrentModificationError$(receiver)); - } - }, map$1$1(receiver, f, $T) { var t1 = A._arrayInstanceType(receiver); return new A.MappedListIterable(receiver, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("MappedListIterable<1,2>")); @@ -10029,6 +10116,9 @@ this.$indexSet(list, i, A.S(receiver[i])); return list.join(separator); }, + take$1(receiver, n) { + return A.SubListIterable$(receiver, 0, A.checkNotNullable(n, "count", type$.int), A._arrayInstanceType(receiver)._precomputed1); + }, skip$1(receiver, n) { return A.SubListIterable$(receiver, n, null, A._arrayInstanceType(receiver)._precomputed1); }, @@ -10617,6 +10707,10 @@ var t1 = A._instanceType(this); return A.CastIterable_CastIterable(J.skip$1$ax(this.get$__internal$_source(), count), t1._precomputed1, t1._rest[1]); }, + take$1(_, count) { + var t1 = A._instanceType(this); + return A.CastIterable_CastIterable(J.take$1$ax(this.get$__internal$_source(), count), t1._precomputed1, t1._rest[1]); + }, elementAt$1(_, index) { return A._instanceType(this)._rest[1]._as(J.elementAt$1$ax(this.get$__internal$_source(), index)); }, @@ -10706,7 +10800,7 @@ J.$indexSet$ax(this.__internal$_source, t1._precomputed1._as(key), t1._rest[1]._as(value)); }, forEach$1(_, f) { - J.forEach$1$ax(this.__internal$_source, new A.CastMap_forEach_closure(this, this.$ti._eval$1("~(3,4)")._as(f))); + J.forEach$1$x(this.__internal$_source, new A.CastMap_forEach_closure(this, this.$ti._eval$1("~(3,4)")._as(f))); }, get$keys(_) { var t1 = this.$ti; @@ -10807,6 +10901,9 @@ skip$1(_, count) { return A.SubListIterable$(this, count, null, A._instanceType(this)._eval$1("ListIterable.E")); }, + take$1(_, count) { + return A.SubListIterable$(this, 0, A.checkNotNullable(count, "count", type$.int), A._instanceType(this)._eval$1("ListIterable.E")); + }, toList$1$growable(_, growable) { return A.List_List$of(this, true, A._instanceType(this)._eval$1("ListIterable.E")); }, @@ -10824,7 +10921,7 @@ }, get$_startIndex() { var $length = J.get$length$asx(this.__internal$_iterable), - t1 = this.__internal$_start; + t1 = this._start; if (t1 > $length) return $length; return t1; @@ -10832,7 +10929,7 @@ get$length(_) { var endOrLength, $length = J.get$length$asx(this.__internal$_iterable), - t1 = this.__internal$_start; + t1 = this._start; if (t1 >= $length) return 0; endOrLength = this._endOrLength; @@ -10852,15 +10949,29 @@ skip$1(_, count) { var newStart, endOrLength, _this = this; A.RangeError_checkNotNegative(count, "count"); - newStart = _this.__internal$_start + count; + newStart = _this._start + count; endOrLength = _this._endOrLength; if (endOrLength != null && newStart >= endOrLength) return new A.EmptyIterable(_this.$ti._eval$1("EmptyIterable<1>")); return A.SubListIterable$(_this.__internal$_iterable, newStart, endOrLength, _this.$ti._precomputed1); }, + take$1(_, count) { + var endOrLength, t1, newEnd, _this = this; + A.RangeError_checkNotNegative(count, "count"); + endOrLength = _this._endOrLength; + t1 = _this._start; + newEnd = t1 + count; + if (endOrLength == null) + return A.SubListIterable$(_this.__internal$_iterable, t1, newEnd, _this.$ti._precomputed1); + else { + if (endOrLength < newEnd) + return _this; + return A.SubListIterable$(_this.__internal$_iterable, t1, newEnd, _this.$ti._precomputed1); + } + }, toList$1$growable(_, growable) { var $length, result, i, _this = this, - start = _this.__internal$_start, + start = _this._start, t1 = _this.__internal$_iterable, t2 = J.getInterceptor$asx(t1), end = t2.get$length(t1), @@ -10980,6 +11091,39 @@ }, $isIterator: 1 }; + A.TakeIterable.prototype = { + get$iterator(_) { + return new A.TakeIterator(J.get$iterator$ax(this.__internal$_iterable), this._takeCount, A._instanceType(this)._eval$1("TakeIterator<1>")); + } + }; + A.EfficientLengthTakeIterable.prototype = { + get$length(_) { + var iterableLength = J.get$length$asx(this.__internal$_iterable), + t1 = this._takeCount; + if (iterableLength > t1) + return t1; + return iterableLength; + }, + $isEfficientLengthIterable: 1 + }; + A.TakeIterator.prototype = { + moveNext$0() { + if (--this._remaining >= 0) + return this._iterator.moveNext$0(); + this._remaining = -1; + return false; + }, + get$current(_) { + var t1; + if (this._remaining < 0) { + this.$ti._precomputed1._as(null); + return null; + } + t1 = this._iterator; + return t1.get$current(t1); + }, + $isIterator: 1 + }; A.SkipIterable.prototype = { skip$1(_, count) { A.ArgumentError_checkNotNull(count, "count", type$.int); @@ -11047,6 +11191,10 @@ skip$1(_, count) { A.RangeError_checkNotNegative(count, "count"); return this; + }, + take$1(_, count) { + A.RangeError_checkNotNegative(count, "count"); + return this; } }; A.EmptyIterator.prototype = { @@ -11085,17 +11233,17 @@ var hash = this._hashCode; if (hash != null) return hash; - hash = 664597 * B.JSString_methods.get$hashCode(this._name) & 536870911; + hash = 664597 * B.JSString_methods.get$hashCode(this.__internal$_name) & 536870911; this._hashCode = hash; return hash; }, toString$0(_) { - return 'Symbol("' + this._name + '")'; + return 'Symbol("' + this.__internal$_name + '")'; }, $eq(_, other) { if (other == null) return false; - return other instanceof A.Symbol && this._name === other._name; + return other instanceof A.Symbol && this.__internal$_name === other.__internal$_name; }, $isSymbol0: 1 }; @@ -11234,13 +11382,13 @@ get$namedArguments() { var t1, namedArgumentCount, t2, namedArgumentsStartIndex, map, i, t3, t4, _this = this; if (_this.__js_helper$_kind !== 0) - return B.Map_empty; + return B.Map_empty0; t1 = _this._namedArgumentNames; namedArgumentCount = t1.length; t2 = _this._arguments; namedArgumentsStartIndex = t2.length - namedArgumentCount - _this._typeArgumentCount; if (namedArgumentCount === 0) - return B.Map_empty; + return B.Map_empty0; map = new A.JsLinkedHashMap(type$.JsLinkedHashMap_Symbol_dynamic); for (i = 0; i < namedArgumentCount; ++i) { if (!(i < t1.length)) @@ -11680,19 +11828,19 @@ call$1(o) { return this.getTag(o); }, - $signature: 1 + $signature: 2 }; A.initHooks_closure0.prototype = { call$2(o, tag) { return this.getUnknownTag(o, tag); }, - $signature: 84 + $signature: 88 }; A.initHooks_closure1.prototype = { call$1(tag) { return this.prototypeForTag(A._asString(tag)); }, - $signature: 85 + $signature: 61 }; A.JSSyntaxRegExp.prototype = { toString$0(_) { @@ -11773,7 +11921,7 @@ }; A._AllMatchesIterable.prototype = { get$iterator(_) { - return new A._AllMatchesIterator(this._re, this._string, this._start); + return new A._AllMatchesIterator(this._re, this._string, this.__js_helper$_start); } }; A._AllMatchesIterator.prototype = { @@ -11871,7 +12019,7 @@ readLocal$1$0() { var t1 = this.__late_helper$_value; if (t1 === this) - A.throwExpression(new A.LateError("Local '" + this.__late_helper$_name + "' has not been initialized.")); + A.throwExpression(new A.LateError("Local '" + this._name + "' has not been initialized.")); return t1; }, readLocal$0() { @@ -11880,7 +12028,7 @@ _readField$0() { var t1 = this.__late_helper$_value; if (t1 === this) - throw A.wrapException(A.LateError$fieldNI(this.__late_helper$_name)); + throw A.wrapException(A.LateError$fieldNI(this._name)); return t1; } }; @@ -11889,10 +12037,9 @@ return B.Type_ByteBuffer_RkP; }, $isTrustedGetRuntimeType: 1, - $isNativeByteBuffer: 1, $isByteBuffer: 1 }; - A.NativeTypedData.prototype = {$isNativeTypedData: 1, $isTypedData: 1}; + A.NativeTypedData.prototype = {$isTypedData: 1}; A.NativeByteData.prototype = { get$runtimeType(receiver) { return B.Type_ByteData_zNC; @@ -12099,7 +12246,6 @@ } }; A._TypeError.prototype = {$isTypeError: 1}; - A._InconsistentSubtypingError.prototype = {$isTypeError: 1}; A._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = { call$1(_) { var t1 = this._box_0, @@ -12117,19 +12263,19 @@ t2 = this.span; t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); }, - $signature: 65 + $signature: 86 }; A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = { call$0() { this.callback.call$0(); }, - $signature: 5 + $signature: 4 }; A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = { call$0() { this.callback.call$0(); }, - $signature: 5 + $signature: 4 }; A._TimerImpl.prototype = { _TimerImpl$2(milliseconds, callback) { @@ -12186,7 +12332,7 @@ t1._tick = tick; _this.callback.call$1(t1); }, - $signature: 5 + $signature: 4 }; A._AsyncAwaitCompleter.prototype = { complete$1(_, value) { @@ -12218,7 +12364,7 @@ call$1(result) { return this.bodyFunction.call$2(0, result); }, - $signature: 3 + $signature: 5 }; A._awaitOnObject_closure0.prototype = { call$2(error, stackTrace) { @@ -12230,7 +12376,7 @@ call$2(errorCode, result) { this.$protected(A._asInt(errorCode), result); }, - $signature: 51 + $signature: 43 }; A.AsyncError.prototype = { toString$0(_) { @@ -12643,7 +12789,7 @@ call$1(_) { return this.originalSource; }, - $signature: 49 + $signature: 87 }; A._Future__propagateToListeners_handleValueCallback.prototype = { call$0() { @@ -12981,22 +13127,22 @@ A._SyncStreamController.prototype = {}; A._ControllerStream.prototype = { get$hashCode(_) { - return (A.Primitives_objectHashCode(this._controller) ^ 892482866) >>> 0; + return (A.Primitives_objectHashCode(this._async$_controller) ^ 892482866) >>> 0; }, $eq(_, other) { if (other == null) return false; if (this === other) return true; - return other instanceof A._ControllerStream && other._controller === this._controller; + return other instanceof A._ControllerStream && other._async$_controller === this._async$_controller; } }; A._ControllerSubscription.prototype = { _onCancel$0() { - return this._controller._recordCancel$1(this); + return this._async$_controller._recordCancel$1(this); }, _onPause$0() { - var t1 = this._controller, + var t1 = this._async$_controller, t2 = A._instanceType(t1); t2._eval$1("StreamSubscription<1>")._as(this); if ((t1._state & 8) !== 0) @@ -13004,7 +13150,7 @@ A._runGuarded(t1.onPause); }, _onResume$0() { - var t1 = this._controller, + var t1 = this._async$_controller, t2 = A._instanceType(t1); t2._eval$1("StreamSubscription<1>")._as(this); if ((t1._state & 8) !== 0) @@ -13279,7 +13425,7 @@ call$0() { this.result._completeError$2(this.error, this.stackTrace); }, - $signature: 5 + $signature: 4 }; A._BufferingStreamSubscription__sendError_sendError.prototype = { call$0() { @@ -13318,7 +13464,7 @@ var t1 = this.$ti; t1._eval$1("~(1)?")._as(onData); type$.nullable_void_Function._as(onDone); - return this._controller._subscribe$4(t1._eval$1("~(1)?")._as(onData), onError, onDone, cancelOnError === true); + return this._async$_controller._subscribe$4(t1._eval$1("~(1)?")._as(onData), onError, onDone, cancelOnError === true); }, listen$1(onData) { return this.listen$4$cancelOnError$onDone$onError(onData, null, null, null); @@ -13989,7 +14135,7 @@ t2._processUncaughtError$3(zone, type$.Object._as(e), t1._as(s)); } }, - $signature: 71 + $signature: 73 }; A._HashMap.prototype = { get$length(_) { @@ -14052,9 +14198,9 @@ nums = _this._collection$_nums; _this._collection$_addHashTableEntry$3(nums == null ? _this._collection$_nums = A._HashMap__newHashTable() : nums, key, value); } else - _this._set$2(key, value); + _this._collection$_set$2(key, value); }, - _set$2(key, value) { + _collection$_set$2(key, value) { var rest, hash, bucket, index, _this = this, t1 = A._instanceType(_this); t1._precomputed1._as(key); @@ -14211,7 +14357,7 @@ call$1(v) { return this.K._is(v); }, - $signature: 18 + $signature: 17 }; A._HashMapKeyIterable.prototype = { get$length(_) { @@ -14425,7 +14571,7 @@ var _this = this, elements = _this._collection$_elements, offset = _this._offset, - t1 = _this._set; + t1 = _this._collection$_set; if (elements !== t1._collection$_elements) throw A.wrapException(A.ConcurrentModificationError$(t1)); else if (offset >= elements.length) { @@ -14483,7 +14629,7 @@ var first = this._collection$_first; if (first == null) throw A.wrapException(A.StateError$("No elements")); - return A._instanceType(this)._precomputed1._as(first._collection$_element); + return A._instanceType(this)._precomputed1._as(first._element); }, add$1(_, element) { var strings, nums, _this = this; @@ -14541,7 +14687,7 @@ return -1; $length = bucket.length; for (i = 0; i < $length; ++i) - if (J.$eq$(bucket[i]._collection$_element, element)) + if (J.$eq$(bucket[i]._element, element)) return i; return -1; } @@ -14555,14 +14701,14 @@ moveNext$0() { var _this = this, cell = _this._collection$_cell, - t1 = _this._set; + t1 = _this._collection$_set; if (_this._collection$_modifications !== t1._collection$_modifications) throw A.wrapException(A.ConcurrentModificationError$(t1)); else if (cell == null) { _this.set$_collection$_current(null); return false; } else { - _this.set$_collection$_current(_this.$ti._eval$1("1?")._as(cell._collection$_element)); + _this.set$_collection$_current(_this.$ti._eval$1("1?")._as(cell._element)); _this._collection$_cell = cell._collection$_next; return true; } @@ -14587,7 +14733,7 @@ call$2(k, v) { this.result.$indexSet(0, this.K._as(k), this.V._as(v)); }, - $signature: 9 + $signature: 18 }; A.ListBase.prototype = { get$iterator(receiver) { @@ -14596,16 +14742,6 @@ elementAt$1(receiver, index) { return this.$index(receiver, index); }, - forEach$1(receiver, action) { - var $length, i; - A.instanceType(receiver)._eval$1("~(ListBase.E)")._as(action); - $length = this.get$length(receiver); - for (i = 0; i < $length; ++i) { - action.call$1(this.$index(receiver, i)); - if ($length !== this.get$length(receiver)) - throw A.wrapException(A.ConcurrentModificationError$(receiver)); - } - }, get$isEmpty(receiver) { return this.get$length(receiver) === 0; }, @@ -14638,6 +14774,9 @@ skip$1(receiver, count) { return A.SubListIterable$(receiver, count, null, A.instanceType(receiver)._eval$1("ListBase.E")); }, + take$1(receiver, count) { + return A.SubListIterable$(receiver, 0, A.checkNotNullable(count, "count", type$.int), A.instanceType(receiver)._eval$1("ListBase.E")); + }, cast$1$0(receiver, $R) { return new A.CastList(receiver, A.instanceType(receiver)._eval$1("@")._bind$1($R)._eval$1("CastList<1,2>")); }, @@ -14760,7 +14899,7 @@ return J.containsKey$1$x(this._collection$_map, key); }, forEach$1(_, action) { - J.forEach$1$ax(this._collection$_map, A._instanceType(this)._eval$1("~(1,2)")._as(action)); + J.forEach$1$x(this._collection$_map, A._instanceType(this)._eval$1("~(1,2)")._as(action)); }, get$isEmpty(_) { return J.get$isEmpty$asx(this._collection$_map); @@ -14909,7 +15048,7 @@ }, containsAll$1(other) { var t1, t2, o; - for (t1 = other._set$_set, t1 = A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1), t2 = t1.$ti._precomputed1; t1.moveNext$0();) { + for (t1 = other._set, t1 = A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1), t2 = t1.$ti._precomputed1; t1.moveNext$0();) { o = t1._collection$_current; if (!this.contains$1(0, o == null ? t2._as(o) : o)) return false; @@ -14926,6 +15065,9 @@ toString$0(_) { return A.Iterable_iterableToFullString(this, "{", "}"); }, + take$1(_, n) { + return A.TakeIterable_TakeIterable(this, n, A._instanceType(this)._precomputed1); + }, skip$1(_, n) { return A.SkipIterable_SkipIterable(this, n, A._instanceType(this)._precomputed1); }, @@ -15228,7 +15370,7 @@ call$1(v) { return this.E._is(v); }, - $signature: 18 + $signature: 17 }; A._SplayTreeSet__SplayTree_Iterable.prototype = {}; A._SplayTreeSet__SplayTree_Iterable_SetMixin.prototype = {}; @@ -16271,7 +16413,7 @@ }; A._symbolMapToStringMap_closure.prototype = { call$2(key, value) { - this.result.$indexSet(0, type$.Symbol._as(key)._name, value); + this.result.$indexSet(0, type$.Symbol._as(key).__internal$_name, value); }, $signature: 22 }; @@ -16282,7 +16424,7 @@ t1 = this.sb; t2 = this._box_0; t3 = t1._contents += t2.comma; - t3 += key._name; + t3 += key.__internal$_name; t1._contents = t3; t1._contents = t3 + ": "; t1._contents += A.Error_safeToString(value); @@ -16446,7 +16588,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._name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]"; + return "NoSuchMethodError: method not found: '" + _this._core$_memberName.__internal$_name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]"; } }; A.UnsupportedError.prototype = { @@ -16600,12 +16742,6 @@ return true; return false; }, - forEach$1(_, action) { - var t1; - A.instanceType(this)._eval$1("~(Iterable.E)")._as(action); - for (t1 = this.get$iterator(this); t1.moveNext$0();) - action.call$1(t1.get$current(t1)); - }, toList$1$growable(_, growable) { return A.List_List$of(this, growable, A.instanceType(this)._eval$1("Iterable.E")); }, @@ -16625,6 +16761,9 @@ get$isNotEmpty(_) { return !this.get$isEmpty(this); }, + take$1(_, count) { + return A.TakeIterable_TakeIterable(this, count, A.instanceType(this)._eval$1("Iterable.E")); + }, skip$1(_, count) { return A.SkipIterable_SkipIterable(this, count, A.instanceType(this)._eval$1("Iterable.E")); }, @@ -16713,13 +16852,13 @@ call$2(msg, position) { throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, this.host, position)); }, - $signature: 64 + $signature: 68 }; A.Uri_parseIPv6Address_error.prototype = { call$2(msg, position) { throw A.wrapException(A.FormatException$("Illegal IPv6 address, " + msg, this.host, position)); }, - $signature: 63 + $signature: 65 }; A.Uri_parseIPv6Address_parseHex.prototype = { call$2(start, end) { @@ -16958,7 +17097,7 @@ B.NativeUint8List_methods.fillRange$3(t1, 0, 96, defaultTransition); return t1; }, - $signature: 62 + $signature: 64 }; A._createTables_setChars.prototype = { call$3(target, chars, transition) { @@ -17193,12 +17332,6 @@ return receiver.length; } }; - A.CustomEvent.prototype = { - _initCustomEvent$4(receiver, type, bubbles, cancelable, detail) { - return receiver.initCustomEvent(type, true, true, detail); - }, - $isCustomEvent: 1 - }; A.DataTransferItemList.prototype = { get$length(receiver) { return receiver.length; @@ -17497,21 +17630,17 @@ call$1(e) { return type$.Element._is(type$.Node._as(e)); }, - $signature: 58 + $signature: 63 }; A.Event.prototype = {$isEvent: 1}; - A.EventSource.prototype = {$isEventSource: 1}; A.EventTarget.prototype = { addEventListener$3(receiver, type, listener, useCapture) { type$.nullable_dynamic_Function_Event._as(listener); if (listener != null) - this._addEventListener$3(receiver, type, listener, useCapture); - }, - addEventListener$2($receiver, type, listener) { - return this.addEventListener$3($receiver, type, listener, null); + this._addEventListener$3(receiver, type, listener, false); }, _addEventListener$3(receiver, type, listener, options) { - return receiver.addEventListener(type, A.convertDartClosureToJS(type$.nullable_dynamic_Function_Event._as(listener), 1), options); + return receiver.addEventListener(type, A.convertDartClosureToJS(type$.nullable_dynamic_Function_Event._as(listener), 1), false); }, _removeEventListener$3(receiver, type, listener, options) { return receiver.removeEventListener(type, A.convertDartClosureToJS(type$.nullable_dynamic_Function_Event._as(listener), 1), false); @@ -17556,8 +17685,7 @@ $isEfficientLengthIterable: 1, $isJavaScriptIndexingBehavior: 1, $isIterable: 1, - $isList: 1, - $isFileList: 1 + $isList: 1 }; A.FileWriter.prototype = { get$length(receiver) { @@ -17625,12 +17753,9 @@ open$3$async(receiver, method, url, async) { return receiver.open(method, url, true); }, - set$withCredentials(receiver, value) { - receiver.withCredentials = true; - }, $isHttpRequest: 1 }; - A.HttpRequest_request_closure.prototype = { + A.HttpRequest_request_closure0.prototype = { call$1(e) { var t1, t2, accepted, unknownRedirect, t3; type$.ProgressEvent._as(e); @@ -17646,27 +17771,11 @@ else t3.completeError$1(e); }, - $signature: 53 + $signature: 58 }; 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; @@ -17680,7 +17789,6 @@ } }; A.MessageEvent.prototype = {$isMessageEvent: 1}; - A.MessagePort.prototype = {$isMessagePort: 1}; A.MidiInputMap.prototype = { containsKey$1(receiver, key) { return A.convertNativeToDart_Dictionary(receiver.get(key)) != null; @@ -18041,7 +18149,6 @@ return receiver.length; } }; - A.SharedArrayBuffer.prototype = {$isSharedArrayBuffer: 1}; A.SourceBuffer.prototype = {$isSourceBuffer: 1}; A.SourceBufferList.prototype = { get$length(receiver) { @@ -18169,7 +18276,7 @@ call$2(k, v) { return B.JSArray_methods.add$1(this.keys, k); }, - $signature: 15 + $signature: 11 }; A.StyleSheet.prototype = {$isStyleSheet: 1}; A.TableElement.prototype = { @@ -18365,7 +18472,6 @@ return receiver.length; } }; - A.UIEvent.prototype = {}; A.Url.prototype = { toString$0(receiver) { var t1 = String(receiver); @@ -18387,18 +18493,7 @@ }, $isWebSocket: 1 }; - A.Window.prototype = { - alert$1(receiver, message) { - return receiver.alert(message); - }, - confirm$1(receiver, message) { - var t1 = receiver.confirm(message); - t1.toString; - return t1; - }, - $isWindow: 1, - $isWindowBase: 1 - }; + A.Window.prototype = {$isWindow: 1}; A.WorkerGlobalScope.prototype = {$isWorkerGlobalScope: 1}; A._Attr.prototype = {$is_Attr: 1}; A._CssRuleList.prototype = { @@ -18673,7 +18768,7 @@ forEach$1(_, f) { var t1, t2, t3, _i, t4, value; type$.void_Function_String_String._as(f); - for (t1 = this.get$keys(this), t2 = t1.length, t3 = this._element, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { + for (t1 = this.get$keys(this), t2 = t1.length, t3 = this._html$_element, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { t4 = A._asString(t1[_i]); value = t3.getAttribute(t4); f.call$2(t4, value == null ? A._asString(value) : value); @@ -18681,7 +18776,7 @@ }, get$keys(_) { var keys, len, t2, i, attr, t3, - t1 = this._element.attributes; + t1 = this._html$_element.attributes; t1.toString; keys = A._setArrayType([], type$.JSArray_String); for (len = t1.length, t2 = type$._Attr, i = 0; i < len; ++i) { @@ -18702,99 +18797,99 @@ }; A._ElementAttributeMap.prototype = { containsKey$1(_, key) { - var t1 = this._element.hasAttribute(key); + var t1 = this._html$_element.hasAttribute(key); t1.toString; return t1; }, $index(_, key) { - return this._element.getAttribute(A._asString(key)); + return this._html$_element.getAttribute(A._asString(key)); }, $indexSet(_, key, value) { - this._element.setAttribute(A._asString(key), A._asString(value)); + this._html$_element.setAttribute(A._asString(key), A._asString(value)); }, get$length(_) { return this.get$keys(this).length; } }; A.EventStreamProvider.prototype = {}; - A._EventStream.prototype = { + A._EventStream0.prototype = { listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) { var t1 = this.$ti; t1._eval$1("~(1)?")._as(onData); type$.nullable_void_Function._as(onDone); - return A._EventStreamSubscription$(this._target, this._eventType, onData, false, t1._precomputed1); + return A._EventStreamSubscription$0(this._html$_target, this._html$_eventType, onData, false, t1._precomputed1); }, listen$3$onDone$onError(onData, onDone, onError) { return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); } }; - A._EventStreamSubscription.prototype = { + A._EventStreamSubscription0.prototype = { cancel$0(_) { var _this = this; - if (_this._target == null) + if (_this._html$_target == null) return $.$get$nullFuture(); - _this._unlisten$0(); - _this._target = null; - _this.set$_onData(null); + _this._html$_unlisten$0(); + _this._html$_target = null; + _this.set$_html$_onData(null); return $.$get$nullFuture(); }, onData$1(handleData) { var t1, _this = this; _this.$ti._eval$1("~(1)?")._as(handleData); - if (_this._target == null) + if (_this._html$_target == null) throw A.wrapException(A.StateError$("Subscription has been canceled.")); - _this._unlisten$0(); - t1 = A._wrapZone(new A._EventStreamSubscription_onData_closure(handleData), type$.Event); - _this.set$_onData(t1); - _this._tryResume$0(); + _this._html$_unlisten$0(); + t1 = A._wrapZone0(new A._EventStreamSubscription_onData_closure(handleData), type$.Event); + _this.set$_html$_onData(t1); + _this._html$_tryResume$0(); }, pause$0(_) { - if (this._target == null) + if (this._html$_target == null) return; - ++this._pauseCount; - this._unlisten$0(); + ++this._html$_pauseCount; + this._html$_unlisten$0(); }, resume$0(_) { var _this = this; - if (_this._target == null || _this._pauseCount <= 0) + if (_this._html$_target == null || _this._html$_pauseCount <= 0) return; - --_this._pauseCount; - _this._tryResume$0(); + --_this._html$_pauseCount; + _this._html$_tryResume$0(); }, - _tryResume$0() { + _html$_tryResume$0() { var t2, _this = this, - t1 = _this._onData; - if (t1 != null && _this._pauseCount <= 0) { - t2 = _this._target; + t1 = _this._html$_onData; + if (t1 != null && _this._html$_pauseCount <= 0) { + t2 = _this._html$_target; t2.toString; - J.addEventListener$3$x(t2, _this._eventType, t1, false); + J.addEventListener$3$x(t2, _this._html$_eventType, t1, false); } }, - _unlisten$0() { + _html$_unlisten$0() { var t2, - t1 = this._onData; + t1 = this._html$_onData; if (t1 != null) { - t2 = this._target; + t2 = this._html$_target; t2.toString; - J._removeEventListener$3$x(t2, this._eventType, type$.nullable_dynamic_Function_Event._as(t1), false); + J._removeEventListener$3$x(t2, this._html$_eventType, type$.nullable_dynamic_Function_Event._as(t1), false); } }, - set$_onData(_onData) { - this._onData = type$.nullable_dynamic_Function_Event._as(_onData); + set$_html$_onData(_onData) { + this._html$_onData = type$.nullable_dynamic_Function_Event._as(_onData); }, $isStreamSubscription: 1 }; - A._EventStreamSubscription_closure.prototype = { + A._EventStreamSubscription_closure0.prototype = { call$1(e) { return this.onData.call$1(type$.Event._as(e)); }, - $signature: 4 + $signature: 15 }; A._EventStreamSubscription_onData_closure.prototype = { call$1(e) { return this.handleData.call$1(type$.Event._as(e)); }, - $signature: 4 + $signature: 15 }; A._Html5NodeValidator.prototype = { _Html5NodeValidator$1$uriPolicy(uriPolicy) { @@ -18961,7 +19056,6 @@ }, $isIterator: 1 }; - A._DOMWindowCrossFrame.prototype = {$isJSObject: 1, $isEventTarget: 1, $isWindowBase: 1}; A._SameOriginUriPolicy.prototype = {$isUriPolicy: 1}; A._ValidatingTreeSanitizer.prototype = { sanitizeTree$1(node) { @@ -18985,26 +19079,33 @@ attrs = null, isAttr = null; try { attrs = J.get$attributes$x(element); - isAttr = attrs._element.getAttribute("is"); + isAttr = attrs._html$_element.getAttribute("is"); type$.Element._as(element); t1 = function(element) { - if (!(element.attributes instanceof NamedNodeMap)) + if (!(element.attributes instanceof NamedNodeMap)) { return true; - if (element.id == "lastChild" || element.name == "lastChild" || element.id == "previousSibling" || element.name == "previousSibling" || element.id == "children" || element.name == "children") + } + if (element.id == "lastChild" || element.name == "lastChild" || element.id == "previousSibling" || element.name == "previousSibling" || element.id == "children" || element.name == "children") { return true; + } var childNodes = element.childNodes; - if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) + if (element.lastChild && element.lastChild !== childNodes[childNodes.length - 1]) { return true; - if (element.children) - if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) + } + if (element.children) { + if (!(element.children instanceof HTMLCollection || element.children instanceof NodeList)) { return true; + } + } var length = 0; - if (element.children) + if (element.children) { length = element.children.length; + } for (var i = 0; i < length; i++) { var child = element.children[i]; - if (child.id == "attributes" || child.name == "attributes" || child.id == "lastChild" || child.name == "lastChild" || child.id == "previousSibling" || child.name == "previousSibling" || child.id == "children" || child.name == "children") + if (child.id == "attributes" || child.name == "attributes" || child.id == "lastChild" || child.name == "lastChild" || child.id == "previousSibling" || child.name == "previousSibling" || child.id == "children" || child.name == "children") { return true; + } } return false; }(element); @@ -19076,7 +19177,7 @@ } t1 = attrs.get$keys(attrs); keys = A._setArrayType(t1.slice(0), A._arrayInstanceType(t1)); - for (i = attrs.get$keys(attrs).length - 1, t1 = attrs._element, t2 = "Removing disallowed attribute <" + tag + " "; i >= 0; --i) { + for (i = attrs.get$keys(attrs).length - 1, t1 = attrs._html$_element, t2 = "Removing disallowed attribute <" + tag + " "; i >= 0; --i) { if (!(i < keys.length)) return A.ioore(keys, i); $name = keys[i]; @@ -19155,7 +19256,7 @@ child = nextChild; } }, - $signature: 37 + $signature: 51 }; A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase.prototype = {}; A._DomRectList_JavaScriptObject_ListMixin.prototype = {}; @@ -19196,107 +19297,6 @@ A.__SpeechRecognitionResultList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; A.__StyleSheetList_JavaScriptObject_ListMixin.prototype = {}; A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin.prototype = {}; - A._StructuredClone.prototype = { - findSlot$1(value) { - var i, - t1 = this.values, - $length = t1.length; - for (i = 0; i < $length; ++i) - if (t1[i] === value) - return i; - B.JSArray_methods.add$1(t1, value); - B.JSArray_methods.add$1(this.copies, null); - return $length; - }, - walk$1(e) { - var slot, t2, copy, t3, _this = this, t1 = {}; - if (e == null) - return e; - if (A._isBool(e)) - return e; - if (typeof e == "number") - return e; - if (typeof e == "string") - return e; - if (e instanceof A.DateTime) - return new Date(e._value); - if (e instanceof A.JSSyntaxRegExp) - throw A.wrapException(A.UnimplementedError$("structured clone of RegExp")); - if (type$.File._is(e)) - return e; - if (type$.Blob._is(e)) - return e; - if (type$.FileList._is(e)) - 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)) - return e; - if (type$.Map_dynamic_dynamic._is(e)) { - slot = _this.findSlot$1(e); - t2 = _this.copies; - if (!(slot < t2.length)) - return A.ioore(t2, slot); - copy = t1.copy = t2[slot]; - if (copy != null) - return copy; - copy = {}; - t1.copy = copy; - B.JSArray_methods.$indexSet(t2, slot, copy); - J.forEach$1$ax(e, new A._StructuredClone_walk_closure(t1, _this)); - return t1.copy; - } - if (type$.List_dynamic._is(e)) { - slot = _this.findSlot$1(e); - t1 = _this.copies; - if (!(slot < t1.length)) - return A.ioore(t1, slot); - copy = t1[slot]; - if (copy != null) - return copy; - return _this.copyList$2(e, slot); - } - if (type$.JSObject._is(e)) { - slot = _this.findSlot$1(e); - t2 = _this.copies; - if (!(slot < t2.length)) - return A.ioore(t2, slot); - copy = t1.copy = t2[slot]; - if (copy != null) - return copy; - t3 = {}; - t3.toString; - t1.copy = t3; - B.JSArray_methods.$indexSet(t2, slot, t3); - _this.forEachObjectKey$2(e, new A._StructuredClone_walk_closure0(t1, _this)); - return t1.copy; - } - throw A.wrapException(A.UnimplementedError$("structured clone of other type")); - }, - copyList$2(e, slot) { - var i, - t1 = J.getInterceptor$asx(e), - $length = t1.get$length(e), - t2 = new Array($length); - t2.toString; - B.JSArray_methods.$indexSet(this.copies, slot, t2); - for (i = 0; i < $length; ++i) - B.JSArray_methods.$indexSet(t2, i, this.walk$1(t1.$index(e, i))); - return t2; - } - }; - A._StructuredClone_walk_closure.prototype = { - call$2(key, value) { - this._box_0.copy[key] = this.$this.walk$1(value); - }, - $signature: 9 - }; - A._StructuredClone_walk_closure0.prototype = { - call$2(key, value) { - this._box_0.copy[key] = this.$this.walk$1(value); - }, - $signature: 38 - }; A._AcceptStructuredClone.prototype = { findSlot$1(value) { var i, @@ -19386,29 +19386,7 @@ this.map.$indexSet(0, key, t1); return t1; }, - $signature: 39 - }; - A._convertDartToNative_Value_closure.prototype = { - call$1(element) { - this.array.push(A._convertDartToNative_Value(element)); - }, - $signature: 3 - }; - A.convertDartToNative_Dictionary_closure.prototype = { - call$2(key, value) { - this.object[key] = A._convertDartToNative_Value(value); - }, - $signature: 9 - }; - A._StructuredCloneDart2Js.prototype = { - forEachObjectKey$2(object, action) { - var t1, t2, _i, key; - type$.dynamic_Function_dynamic_dynamic._as(action); - for (t1 = Object.keys(object), t2 = t1.length, _i = 0; _i < t1.length; t1.length === t2 || (0, A.throwConcurrentModificationError)(t1), ++_i) { - key = t1[_i]; - action.call$2(key, object[key]); - } - } + $signature: 38 }; A._AcceptStructuredCloneDart2Js.prototype = { forEachJsField$2(object, action) { @@ -19443,7 +19421,7 @@ } else return A._convertToJS(o); }, - $signature: 40 + $signature: 39 }; A._convertToJS_closure.prototype = { call$1(o) { @@ -19457,32 +19435,32 @@ A._defineProperty(jsFunction, $.$get$DART_CLOSURE_PROPERTY_NAME(), o); return jsFunction; }, - $signature: 1 + $signature: 2 }; A._convertToJS_closure0.prototype = { call$1(o) { return new this.ctor(o); }, - $signature: 1 + $signature: 2 }; A._wrapToDart_closure.prototype = { call$1(o) { return new A.JsFunction(o == null ? type$.Object._as(o) : o); }, - $signature: 41 + $signature: 40 }; A._wrapToDart_closure0.prototype = { call$1(o) { var t1 = o == null ? type$.Object._as(o) : o; return new A.JsArray(t1, type$.JsArray_dynamic); }, - $signature: 42 + $signature: 41 }; A._wrapToDart_closure1.prototype = { call$1(o) { return new A.JsObject(o == null ? type$.Object._as(o) : o); }, - $signature: 43 + $signature: 42 }; A.JsObject.prototype = { $index(_, property) { @@ -19568,7 +19546,7 @@ call$1(r) { return this.completer.complete$1(0, this.T._eval$1("0/?")._as(r)); }, - $signature: 3 + $signature: 5 }; A.promiseToFuture_closure0.prototype = { call$1(e) { @@ -19576,7 +19554,54 @@ return this.completer.completeError$1(new A.NullRejectionException(e === undefined)); return this.completer.completeError$1(e); }, - $signature: 3 + $signature: 5 + }; + A.dartify_convert.prototype = { + call$1(o) { + var t1, proto, t2, dartObject, originalKeys, dartKeys, i, jsKey, dartKey, l, $length; + if (A._noDartifyRequired(o)) + return o; + t1 = this._convertedObjects; + o.toString; + if (t1.containsKey$1(0, o)) + return t1.$index(0, o); + if (o instanceof Date) + return A.DateTime$fromMillisecondsSinceEpoch(o.getTime(), true); + if (o instanceof RegExp) + throw A.wrapException(A.ArgumentError$("structured clone of RegExp", null)); + if (typeof Promise != "undefined" && o instanceof Promise) + return A.promiseToFuture(o, type$.nullable_Object); + proto = Object.getPrototypeOf(o); + if (proto === Object.prototype || proto === null) { + t2 = type$.nullable_Object; + dartObject = A.LinkedHashMap_LinkedHashMap$_empty(t2, t2); + t1.$indexSet(0, o, dartObject); + originalKeys = Object.keys(o); + dartKeys = []; + for (t1 = J.getInterceptor$ax(originalKeys), t2 = t1.get$iterator(originalKeys); t2.moveNext$0();) + dartKeys.push(A.dartify(t2.get$current(t2))); + for (i = 0; i < t1.get$length(originalKeys); ++i) { + jsKey = t1.$index(originalKeys, i); + if (!(i < dartKeys.length)) + return A.ioore(dartKeys, i); + dartKey = dartKeys[i]; + if (jsKey != null) + dartObject.$indexSet(0, dartKey, this.call$1(o[jsKey])); + } + return dartObject; + } + if (o instanceof Array) { + l = o; + dartObject = []; + t1.$indexSet(0, o, dartObject); + $length = A._asInt(o.length); + for (t1 = J.getInterceptor$asx(l), i = 0; i < $length; ++i) + dartObject.push(this.call$1(t1.$index(l, i))); + return dartObject; + } + return o; + }, + $signature: 12 }; A.NullRejectionException.prototype = { toString$0(_) { @@ -20141,6 +20166,10 @@ get$isNotEmpty(_) { return this._list.length !== 0; }, + take$1(_, n) { + var t1 = this._list; + return A.SubListIterable$(t1, 0, A.checkNotNullable(n, "count", type$.int), A._arrayInstanceType(t1)._precomputed1); + }, skip$1(_, n) { var t1 = this._list; return A.SubListIterable$(t1, n, null, A._arrayInstanceType(t1)._precomputed1); @@ -20295,7 +20324,7 @@ call$1(k) { return this.multimap.$index(0, k); }, - $signature: 1 + $signature: 2 }; A.BuiltListMultimap_hashCode_closure.prototype = { call$1(key) { @@ -20464,7 +20493,7 @@ call$1(k) { return this.multimap.$index(0, k); }, - $signature: 1 + $signature: 2 }; A.BuiltMap.prototype = { toBuilder$0() { @@ -20536,7 +20565,7 @@ call$1(k) { return this.map.$index(0, k); }, - $signature: 1 + $signature: 2 }; A.BuiltMap_hashCode_closure.prototype = { call$1(key) { @@ -20662,14 +20691,14 @@ var t1 = this.$this.$ti; this.replacement.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value)); }, - $signature: 9 + $signature: 18 }; A.BuiltSet.prototype = { get$hashCode(_) { var t2, t3, _this = this, t1 = _this._set$_hashCode; if (t1 == null) { - t1 = _this._set$_set; + t1 = _this._set; t2 = A._instanceType(t1); t3 = t2._eval$1("EfficientLengthMappedIterable<1,int>"); t3 = A.List_List$of(new A.EfficientLengthMappedIterable(t1, t2._eval$1("int(1)")._as(new A.BuiltSet_hashCode_closure(_this)), t3), false, t3._eval$1("Iterable.E")); @@ -20687,25 +20716,25 @@ return true; if (!(other instanceof A._BuiltSet)) return false; - t1 = _this._set$_set; - if (other._set$_set._collection$_length !== t1._collection$_length) + t1 = _this._set; + if (other._set._collection$_length !== t1._collection$_length) return false; if (other.get$hashCode(other) !== _this.get$hashCode(_this)) return false; return t1.containsAll$1(other); }, toString$0(_) { - return A.Iterable_iterableToFullString(this._set$_set, "{", "}"); + return A.Iterable_iterableToFullString(this._set, "{", "}"); }, get$length(_) { - return this._set$_set._collection$_length; + return this._set._collection$_length; }, get$iterator(_) { - var t1 = this._set$_set; + var t1 = this._set; return A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1); }, map$1$1(_, f, $T) { - var t1 = this._set$_set, + var t1 = this._set, t2 = A._instanceType(t1); return new A.EfficientLengthMappedIterable(t1, t2._bind$1($T)._eval$1("1(2)")._as(this.$ti._bind$1($T)._eval$1("1(2)")._as(f)), t2._eval$1("@<1>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>")); }, @@ -20713,24 +20742,28 @@ return this.map$1$1($receiver, f, type$.dynamic); }, contains$1(_, element) { - return this._set$_set.contains$1(0, element); + return this._set.contains$1(0, element); }, get$isEmpty(_) { - return this._set$_set._collection$_length === 0; + return this._set._collection$_length === 0; }, get$isNotEmpty(_) { - return this._set$_set._collection$_length !== 0; + return this._set._collection$_length !== 0; + }, + take$1(_, n) { + var t1 = this._set; + return A.TakeIterable_TakeIterable(t1, n, A._instanceType(t1)._precomputed1); }, skip$1(_, n) { - var t1 = this._set$_set; + var t1 = this._set; return A.SkipIterable_SkipIterable(t1, n, A._instanceType(t1)._precomputed1); }, get$first(_) { - var t1 = this._set$_set; + var t1 = this._set; return t1.get$first(t1); }, elementAt$1(_, index) { - return this._set$_set.elementAt$1(0, index); + return this._set.elementAt$1(0, index); }, $isIterable: 1 }; @@ -20747,7 +20780,7 @@ var t1, t2, element; if (!(!$.$get$isSoundMode() && !this.$ti._precomputed1._is(null))) return; - for (t1 = this._set$_set, t1 = A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1), t2 = t1.$ti._precomputed1; t1.moveNext$0();) { + for (t1 = this._set, t1 = A._LinkedHashSetIterator$(t1, t1._collection$_modifications, A._instanceType(t1)._precomputed1), t2 = t1.$ti._precomputed1; t1.moveNext$0();) { element = t1._collection$_current; if ((element == null ? t2._as(element) : element) == null) throw A.wrapException(A.ArgumentError$("iterable contained invalid element: null", null)); @@ -20927,7 +20960,7 @@ t2.set$_setOwner(new A._BuiltSet(t3, t4, A._instanceType(t2)._eval$1("_BuiltSet<1>"))); } builtSet = t2._setOwner; - t2 = builtSet._set$_set._collection$_length; + t2 = builtSet._set._collection$_length; t3 = _this.__SetMultimapBuilder__builtMap_A; if (t2 === 0) { t3 === $ && A.throwLateFieldNI(_s9_); @@ -20966,7 +20999,7 @@ else { t1 = builtValues.$ti; t1._eval$1("_BuiltSet<1>")._as(builtValues); - result = new A.SetBuilder(builtValues._setFactory, builtValues._set$_set, builtValues, t1._eval$1("SetBuilder<1>")); + result = new A.SetBuilder(builtValues._setFactory, builtValues._set, builtValues, t1._eval$1("SetBuilder<1>")); } _this.__SetMultimapBuilder__builderMap_A.$indexSet(0, key, result); } @@ -21045,7 +21078,7 @@ call$1(k) { return this.multimap.$index(0, k); }, - $signature: 1 + $signature: 2 }; A.EnumClass.prototype = { toString$0(_) { @@ -21214,7 +21247,7 @@ call$0() { return A.SetBuilder_SetBuilder(type$.Object); }, - $signature: 99 + $signature: 49 }; A.Serializers_Serializers_closure3.prototype = { call$0() { @@ -21350,7 +21383,7 @@ t1 = J.getInterceptor$(object); serializer = _this.serializerForType$1(t1.get$runtimeType(object)); if (serializer == null) - throw A.wrapException(A.StateError$("No serializer for '" + t1.get$runtimeType(object).toString$0(0) + "'.")); + throw A.wrapException(A.StateError$(A._noSerializerMessageFor(t1.get$runtimeType(object).toString$0(0)))); if (type$.StructuredSerializer_dynamic._is(serializer)) { result = [serializer.get$wireName()]; B.JSArray_methods.addAll$1(result, serializer.serialize$2(_this, object)); @@ -21389,7 +21422,6 @@ }, _deserialize$3(objectBeforePlugins, object, specifiedType) { var serializer, error, primitive, error0, serializer0, error1, error2, wireName, exception, _this = this, - _s19_ = "No serializer for '", _s62_ = string$.serial, t1 = specifiedType.root; if (t1 == null) { @@ -21398,7 +21430,7 @@ wireName = A._asString(t1.get$first(object)); serializer = _this._wireNameToSerializer._map$_map.$index(0, wireName); if (serializer == null) - throw A.wrapException(A.StateError$(_s19_ + wireName + "'.")); + throw A.wrapException(A.StateError$(A._noSerializerMessageFor(wireName))); if (type$.StructuredSerializer_dynamic._is(serializer)) try { t1 = serializer.deserialize$2(_this, t1.sublist$1(object, 1)); @@ -21432,7 +21464,7 @@ if (type$.List_dynamic._is(object) && typeof J.get$first$ax(object) == "string") return _this.deserialize$1(objectBeforePlugins); else - throw A.wrapException(A.StateError$(_s19_ + t1.toString$0(0) + "'.")); + throw A.wrapException(A.StateError$(A._noSerializerMessageFor(t1.toString$0(0)))); if (type$.StructuredSerializer_dynamic._is(serializer0)) try { t1 = object == null ? null : serializer0.deserialize$3$specifiedType(_this, type$.Iterable_nullable_Object._as(object), specifiedType); @@ -21636,13 +21668,13 @@ call$1(value) { return this.serializers.serialize$2$specifiedType(value, this.valueType); }, - $signature: 2 + $signature: 3 }; A.BuiltListMultimapSerializer_deserialize_closure.prototype = { call$1(value) { return this.serializers.deserialize$2$specifiedType(value, this.valueType); }, - $signature: 34 + $signature: 12 }; A.BuiltListSerializer.prototype = { serialize$3$specifiedType(serializers, builtList, specifiedType) { @@ -21700,13 +21732,13 @@ call$1(item) { return this.serializers.serialize$2$specifiedType(item, this.elementType); }, - $signature: 2 + $signature: 3 }; A.BuiltListSerializer_deserialize_closure.prototype = { call$1(item) { return this.serializers.deserialize$2$specifiedType(item, this.elementType); }, - $signature: 2 + $signature: 3 }; A.BuiltMapSerializer.prototype = { serialize$3$specifiedType(serializers, builtMap, specifiedType) { @@ -21825,7 +21857,7 @@ result.push(serializers.serialize$2$specifiedType(key, keyType)); result0 = t2.$index(0, key); t4 = result0 == null ? t3 : result0; - t5 = t4._set$_set; + t5 = t4._set; t6 = A._instanceType(t5); t7 = t6._eval$1("EfficientLengthMappedIterable<1,Object?>"); result.push(A.List_List$of(new A.EfficientLengthMappedIterable(t5, t6._eval$1("Object?(1)")._as(t4.$ti._eval$1("Object?(1)")._as(new A.BuiltSetMultimapSerializer_serialize_closure(serializers, valueType))), t7), true, t7._eval$1("Iterable.E"))); @@ -21906,13 +21938,13 @@ call$1(value) { return this.serializers.serialize$2$specifiedType(value, this.valueType); }, - $signature: 2 + $signature: 3 }; A.BuiltSetMultimapSerializer_deserialize_closure.prototype = { call$1(value) { return this.serializers.deserialize$2$specifiedType(value, this.valueType); }, - $signature: 2 + $signature: 3 }; A.BuiltSetSerializer.prototype = { serialize$3$specifiedType(serializers, builtSet, specifiedType) { @@ -21930,7 +21962,7 @@ return A.ioore(t1, 0); elementType = t1[0]; } - t1 = builtSet._set$_set; + t1 = builtSet._set; t2 = A._instanceType(t1); return new A.EfficientLengthMappedIterable(t1, t2._eval$1("Object?(1)")._as(builtSet.$ti._eval$1("Object?(1)")._as(new A.BuiltSetSerializer_serialize_closure(serializers, elementType))), t2._eval$1("EfficientLengthMappedIterable<1,Object?>")); }, @@ -21970,13 +22002,13 @@ call$1(item) { return this.serializers.serialize$2$specifiedType(item, this.elementType); }, - $signature: 2 + $signature: 3 }; A.BuiltSetSerializer_deserialize_closure.prototype = { call$1(item) { return this.serializers.deserialize$2$specifiedType(item, this.elementType); }, - $signature: 2 + $signature: 3 }; A.DateTimeSerializer.prototype = { serialize$3$specifiedType(serializers, dateTime, specifiedType) { @@ -22070,6 +22102,29 @@ return "Duration"; } }; + A.Int32Serializer.prototype = { + serialize$3$specifiedType(serializers, int32, specifiedType) { + return type$.Int32._as(int32)._i; + }, + serialize$2(serializers, int32) { + return this.serialize$3$specifiedType(serializers, int32, B.FullType_null_List_empty_false); + }, + deserialize$3$specifiedType(serializers, serialized, specifiedType) { + A._asInt(serialized); + return new A.Int32((serialized & 2147483647) - ((serialized & 2147483648) >>> 0)); + }, + deserialize$2(serializers, serialized) { + return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false); + }, + $isSerializer: 1, + $isPrimitiveSerializer: 1, + get$types(receiver) { + return this.types; + }, + get$wireName() { + return "Int32"; + } + }; A.Int64Serializer.prototype = { serialize$3$specifiedType(serializers, int64, specifiedType) { return type$.Int64._as(int64)._toRadixString$1(10); @@ -22681,43 +22736,69 @@ A._$ConnectRequestSerializer.prototype = { serialize$3$specifiedType(serializers, object, specifiedType) { type$.ConnectRequest._as(object); - return ["appId", serializers.serialize$2$specifiedType(object.appId, B.FullType_h8g), "instanceId", serializers.serialize$2$specifiedType(object.instanceId, B.FullType_h8g), "entrypointPath", serializers.serialize$2$specifiedType(object.entrypointPath, B.FullType_h8g)]; + return ["appName", serializers.serialize$2$specifiedType(object.appName, B.FullType_h8g), "appId", serializers.serialize$2$specifiedType(object.appId, B.FullType_h8g), "instanceId", serializers.serialize$2$specifiedType(object.instanceId, B.FullType_h8g), "entrypoints", serializers.serialize$2$specifiedType(object.entrypoints, B.FullType_hkZ)]; }, 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, + var t1, t2, t3, t4, t5, value, t6, t7, t8, t9, result = new A.ConnectRequestBuilder(), 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); + for (t1 = type$.BuiltList_nullable_Object, t2 = type$.String, t3 = type$.List_String, t4 = type$.ListBuilder_String; iterator.moveNext$0();) { + t5 = iterator.get$current(iterator); + t5.toString; + A._asString(t5); iterator.moveNext$0(); value = iterator.get$current(iterator); - switch (t1) { + switch (t5) { + case "appName": + t5 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); + t5.toString; + A._asString(t5); + result.get$_connect_request$_$this()._appName = t5; + break; case "appId": - t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); - t1.toString; - A._asString(t1); - result.get$_connect_request$_$this()._appId = t1; + t5 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); + t5.toString; + A._asString(t5); + result.get$_connect_request$_$this()._connect_request$_appId = t5; break; case "instanceId": - t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); - t1.toString; - A._asString(t1); - result.get$_connect_request$_$this()._instanceId = t1; + t5 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); + t5.toString; + A._asString(t5); + result.get$_connect_request$_$this()._instanceId = t5; break; - case "entrypointPath": - t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); - t1.toString; - A._asString(t1); - result.get$_connect_request$_$this()._entrypointPath = t1; + case "entrypoints": + t5 = result.get$_connect_request$_$this(); + t6 = t5._entrypoints; + if (t6 == null) { + t6 = new A.ListBuilder(t4); + t6.set$__ListBuilder__list_A(t3._as(A.List_List$from(B.List_empty, true, t2))); + t6.set$_listOwner(null); + t5.set$_entrypoints(t6); + t5 = t6; + } else + t5 = t6; + t6 = serializers.deserialize$2$specifiedType(value, B.FullType_hkZ); + t6.toString; + t1._as(t6); + t7 = t5.$ti; + t8 = t7._eval$1("_BuiltList<1>"); + t9 = t7._eval$1("List<1>"); + if (t8._is(t6)) { + t8._as(t6); + t5.set$__ListBuilder__list_A(t9._as(t6._list)); + t5.set$_listOwner(t6); + } else { + t5.set$__ListBuilder__list_A(t9._as(A.List_List$from(t6, true, t7._precomputed1))); + t5.set$_listOwner(null); + } break; } } - return result._build$0(); + return result._connect_request$_build$0(); }, deserialize$2(serializers, serialized) { return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false); @@ -22738,50 +22819,90 @@ return false; if (other === _this) return true; - return other instanceof A._$ConnectRequest && _this.appId === other.appId && _this.instanceId === other.instanceId && _this.entrypointPath === other.entrypointPath; + return other instanceof A._$ConnectRequest && _this.appName === other.appName && _this.appId === other.appId && _this.instanceId === other.instanceId && _this.entrypoints.$eq(0, other.entrypoints); }, get$hashCode(_) { - return A.$jf(A.$jc(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.appId)), B.JSString_methods.get$hashCode(this.instanceId)), B.JSString_methods.get$hashCode(this.entrypointPath))); + var _this = this, + t1 = _this.entrypoints; + return A.$jf(A.$jc(A.$jc(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(_this.appName)), B.JSString_methods.get$hashCode(_this.appId)), B.JSString_methods.get$hashCode(_this.instanceId)), t1.get$hashCode(t1))); }, toString$0(_) { - var t1 = $.$get$newBuiltValueToStringHelper().call$1("ConnectRequest"), + var _this = this, + t1 = $.$get$newBuiltValueToStringHelper().call$1("ConnectRequest"), t2 = J.getInterceptor$ax(t1); - t2.add$2(t1, "appId", this.appId); - t2.add$2(t1, "instanceId", this.instanceId); - t2.add$2(t1, "entrypointPath", this.entrypointPath); + t2.add$2(t1, "appName", _this.appName); + t2.add$2(t1, "appId", _this.appId); + t2.add$2(t1, "instanceId", _this.instanceId); + t2.add$2(t1, "entrypoints", _this.entrypoints); return t2.toString$0(t1); } }; A.ConnectRequestBuilder.prototype = { + get$entrypoints() { + var t1 = this.get$_connect_request$_$this(), + t2 = t1._entrypoints; + if (t2 == null) { + t2 = A.ListBuilder_ListBuilder(B.List_empty, type$.String); + t1.set$_entrypoints(t2); + t1 = t2; + } else + t1 = t2; + return t1; + }, get$_connect_request$_$this() { - var _this = this, - $$v = _this._$v; + var t1, _this = this, + $$v = _this._connect_request$_$v; if ($$v != null) { - _this._appId = $$v.appId; + _this._appName = $$v.appName; + _this._connect_request$_appId = $$v.appId; _this._instanceId = $$v.instanceId; - _this._entrypointPath = $$v.entrypointPath; - _this._$v = null; + t1 = $$v.entrypoints; + _this.set$_entrypoints(A.ListBuilder_ListBuilder(t1, t1.$ti._precomputed1)); + _this._connect_request$_$v = null; } return _this; }, - _build$0() { - var t1, t2, t3, t4, _this = this, + _connect_request$_build$0() { + var _$failedField, e, _$result0, t1, t2, t3, t4, t5, exception, _this = this, _s14_ = "ConnectRequest", _s10_ = "instanceId", - _s14_0 = "entrypointPath", - _$result = _this._$v; - if (_$result == null) { - t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._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; + _s11_ = "entrypoints", + _$result = null; + try { + _$result0 = _this._connect_request$_$v; + if (_$result0 == null) { + t1 = type$.String; + t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._appName, _s14_, "appName", t1); + t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._connect_request$_appId, _s14_, "appId", t1); + t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_connect_request$_$this()._instanceId, _s14_, _s10_, t1); + t5 = _this.get$entrypoints().build$0(); + _$result0 = new A._$ConnectRequest(t2, t3, t4, t5); + A.BuiltValueNullFieldError_checkNotNull(t2, _s14_, "appName", t1); + A.BuiltValueNullFieldError_checkNotNull(t3, _s14_, "appId", t1); + A.BuiltValueNullFieldError_checkNotNull(t4, _s14_, _s10_, t1); + A.BuiltValueNullFieldError_checkNotNull(t5, _s14_, _s11_, type$.BuiltList_String); + } + _$result = _$result0; + } catch (exception) { + _$failedField = A._Cell$named("_$failedField"); + try { + _$failedField.__late_helper$_value = _s11_; + _this.get$entrypoints().build$0(); + } catch (exception) { + e = A.unwrapException(exception); + t1 = A.BuiltValueNestedFieldError$(_s14_, _$failedField.readLocal$0(), J.toString$0$(e)); + throw A.wrapException(t1); + } + throw exception; + } + t1 = type$.ConnectRequest; + t2 = t1._as(_$result); + A.ArgumentError_checkNotNull(t2, "other", t1); + _this._connect_request$_$v = t2; + return _$result; + }, + set$_entrypoints(_entrypoints) { + this._entrypoints = type$.nullable_ListBuilder_String._as(_entrypoints); } }; A.DebugEvent.prototype = {}; @@ -22815,13 +22936,13 @@ t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); t1.toString; A._asString(t1); - result.get$_debug_event$_$this()._eventData = t1; + result.get$_debug_event$_$this()._debug_event$_eventData = t1; break; case "timestamp": t1 = serializers.deserialize$2$specifiedType(value, B.FullType_kjq); t1.toString; A._asInt(t1); - result.get$_debug_event$_$this()._timestamp = t1; + result.get$_debug_event$_$this()._debug_event$_timestamp = t1; break; } } @@ -22941,8 +23062,8 @@ $$v = _this._debug_event$_$v; if ($$v != null) { _this._debug_event$_kind = $$v.kind; - _this._eventData = $$v.eventData; - _this._timestamp = $$v.timestamp; + _this._debug_event$_eventData = $$v.eventData; + _this._debug_event$_timestamp = $$v.timestamp; _this._debug_event$_$v = null; } return _this; @@ -22956,9 +23077,9 @@ 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); + t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._debug_event$_eventData, _s10_, _s9_, t1); t4 = type$.int; - t5 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._timestamp, _s10_, _s9_0, t4); + t5 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_debug_event$_$this()._debug_event$_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); @@ -23132,55 +23253,55 @@ switch (t1) { case "appEntrypointPath": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._appEntrypointPath = t1; + result.get$_debug_info$_$this()._appEntrypointPath = t1; break; case "appId": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._debug_info$_appId = t1; + result.get$_debug_info$_$this()._appId = t1; break; case "appInstanceId": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._appInstanceId = t1; + result.get$_debug_info$_$this()._appInstanceId = t1; break; case "appOrigin": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._appOrigin = t1; + result.get$_debug_info$_$this()._appOrigin = t1; break; case "appUrl": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._appUrl = t1; + result.get$_debug_info$_$this()._appUrl = t1; break; case "authUrl": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._authUrl = t1; + result.get$_debug_info$_$this()._authUrl = t1; break; case "dwdsVersion": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._dwdsVersion = t1; + result.get$_debug_info$_$this()._dwdsVersion = t1; break; case "extensionUrl": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._extensionUrl = t1; + result.get$_debug_info$_$this()._extensionUrl = t1; break; case "isInternalBuild": t1 = A._asBoolQ(serializers.deserialize$2$specifiedType(value, B.FullType_MtR)); - result.get$_$this()._isInternalBuild = t1; + result.get$_debug_info$_$this()._isInternalBuild = t1; break; case "isFlutterApp": t1 = A._asBoolQ(serializers.deserialize$2$specifiedType(value, B.FullType_MtR)); - result.get$_$this()._isFlutterApp = t1; + result.get$_debug_info$_$this()._isFlutterApp = t1; break; case "workspaceName": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._workspaceName = t1; + result.get$_debug_info$_$this()._workspaceName = t1; break; case "tabUrl": t1 = A._asStringQ(serializers.deserialize$2$specifiedType(value, B.FullType_h8g)); - result.get$_$this()._tabUrl = t1; + result.get$_debug_info$_$this()._tabUrl = t1; break; case "tabId": t1 = A._asIntQ(serializers.deserialize$2$specifiedType(value, B.FullType_kjq)); - result.get$_$this()._tabId = t1; + result.get$_debug_info$_$this()._tabId = t1; break; } } @@ -23232,12 +23353,12 @@ } }; A.DebugInfoBuilder.prototype = { - get$_$this() { + get$_debug_info$_$this() { var _this = this, $$v = _this._debug_info$_$v; if ($$v != null) { _this._appEntrypointPath = $$v.appEntrypointPath; - _this._debug_info$_appId = $$v.appId; + _this._appId = $$v.appId; _this._appInstanceId = $$v.appInstanceId; _this._appOrigin = $$v.appOrigin; _this._appUrl = $$v.appUrl; @@ -23257,7 +23378,7 @@ var _this = this, _$result = _this._debug_info$_$v; if (_$result == null) - _$result = new A._$DebugInfo(_this.get$_$this()._appEntrypointPath, _this.get$_$this()._debug_info$_appId, _this.get$_$this()._appInstanceId, _this.get$_$this()._appOrigin, _this.get$_$this()._appUrl, _this.get$_$this()._authUrl, _this.get$_$this()._dwdsVersion, _this.get$_$this()._extensionUrl, _this.get$_$this()._isInternalBuild, _this.get$_$this()._isFlutterApp, _this.get$_$this()._workspaceName, _this.get$_$this()._tabUrl, _this.get$_$this()._tabId); + _$result = new A._$DebugInfo(_this.get$_debug_info$_$this()._appEntrypointPath, _this.get$_debug_info$_$this()._appId, _this.get$_debug_info$_$this()._appInstanceId, _this.get$_debug_info$_$this()._appOrigin, _this.get$_debug_info$_$this()._appUrl, _this.get$_debug_info$_$this()._authUrl, _this.get$_debug_info$_$this()._dwdsVersion, _this.get$_debug_info$_$this()._extensionUrl, _this.get$_debug_info$_$this()._isInternalBuild, _this.get$_debug_info$_$this()._isFlutterApp, _this.get$_debug_info$_$this()._workspaceName, _this.get$_debug_info$_$this()._tabUrl, _this.get$_debug_info$_$this()._tabId); A.ArgumentError_checkNotNull(_$result, "other", type$.DebugInfo); return _this._debug_info$_$v = _$result; } @@ -24171,6 +24292,113 @@ return this._isolate_events$_$v = _$result; } }; + A.RegisterEntrypointRequest.prototype = {}; + A._$RegisterEntrypointRequestSerializer.prototype = { + serialize$3$specifiedType(serializers, object, specifiedType) { + type$.RegisterEntrypointRequest._as(object); + return ["appName", serializers.serialize$2$specifiedType(object.appName, B.FullType_h8g), "entrypointPath", serializers.serialize$2$specifiedType(object.entrypointPath, B.FullType_h8g)]; + }, + 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, $$v, + result = new A.RegisterEntrypointRequestBuilder(), + 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 "appName": + t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); + t1.toString; + A._asString(t1); + $$v = result._register_entrypoint_request$_$v; + if ($$v != null) { + result._register_entrypoint_request$_appName = $$v.appName; + result._entrypointPath = $$v.entrypointPath; + result._register_entrypoint_request$_$v = null; + } + result._register_entrypoint_request$_appName = t1; + break; + case "entrypointPath": + t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); + t1.toString; + A._asString(t1); + $$v = result._register_entrypoint_request$_$v; + if ($$v != null) { + result._register_entrypoint_request$_appName = $$v.appName; + result._entrypointPath = $$v.entrypointPath; + result._register_entrypoint_request$_$v = null; + } + result._entrypointPath = t1; + break; + } + } + return result._register_entrypoint_request$_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_ExN; + }, + get$wireName() { + return "RegisterEntrypointRequest"; + } + }; + A._$RegisterEntrypointRequest.prototype = { + $eq(_, other) { + if (other == null) + return false; + if (other === this) + return true; + return other instanceof A._$RegisterEntrypointRequest && this.appName === other.appName && this.entrypointPath === other.entrypointPath; + }, + get$hashCode(_) { + return A.$jf(A.$jc(A.$jc(0, B.JSString_methods.get$hashCode(this.appName)), B.JSString_methods.get$hashCode(this.entrypointPath))); + }, + toString$0(_) { + var t1 = $.$get$newBuiltValueToStringHelper().call$1("RegisterEntrypointRequest"), + t2 = J.getInterceptor$ax(t1); + t2.add$2(t1, "appName", this.appName); + t2.add$2(t1, "entrypointPath", this.entrypointPath); + return t2.toString$0(t1); + } + }; + A.RegisterEntrypointRequestBuilder.prototype = { + get$_register_entrypoint_request$_$this() { + var _this = this, + $$v = _this._register_entrypoint_request$_$v; + if ($$v != null) { + _this._register_entrypoint_request$_appName = $$v.appName; + _this._entrypointPath = $$v.entrypointPath; + _this._register_entrypoint_request$_$v = null; + } + return _this; + }, + _register_entrypoint_request$_build$0() { + var t1, t2, t3, _this = this, + _s25_ = "RegisterEntrypointRequest", + _s14_ = "entrypointPath", + _$result = _this._register_entrypoint_request$_$v; + if (_$result == null) { + t1 = type$.String; + t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_entrypoint_request$_$this()._register_entrypoint_request$_appName, _s25_, "appName", t1); + t3 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_entrypoint_request$_$this()._entrypointPath, _s25_, _s14_, t1); + _$result = new A._$RegisterEntrypointRequest(t2, t3); + A.BuiltValueNullFieldError_checkNotNull(t2, _s25_, "appName", t1); + A.BuiltValueNullFieldError_checkNotNull(t3, _s25_, _s14_, t1); + } + A.ArgumentError_checkNotNull(_$result, "other", type$.RegisterEntrypointRequest); + return _this._register_entrypoint_request$_$v = _$result; + } + }; A.RegisterEvent.prototype = {}; A._$RegisterEventSerializer.prototype = { serialize$3$specifiedType(serializers, object, specifiedType) { @@ -24195,29 +24423,29 @@ t1 = serializers.deserialize$2$specifiedType(value, B.FullType_h8g); t1.toString; A._asString(t1); - $$v = result._register_event$_$v; + $$v = result._$v; if ($$v != null) { - result._register_event$_eventData = $$v.eventData; - result._register_event$_timestamp = $$v.timestamp; - result._register_event$_$v = null; + result._eventData = $$v.eventData; + result._timestamp = $$v.timestamp; + result._$v = null; } - result._register_event$_eventData = t1; + result._eventData = t1; break; case "timestamp": t1 = serializers.deserialize$2$specifiedType(value, B.FullType_kjq); t1.toString; A._asInt(t1); - $$v = result._register_event$_$v; + $$v = result._$v; if ($$v != null) { - result._register_event$_eventData = $$v.eventData; - result._register_event$_timestamp = $$v.timestamp; - result._register_event$_$v = null; + result._eventData = $$v.eventData; + result._timestamp = $$v.timestamp; + result._$v = null; } - result._register_event$_timestamp = t1; + result._timestamp = t1; break; } } - return result._register_event$_build$0(); + return result._build$0(); }, deserialize$2(serializers, serialized) { return this.deserialize$3$specifiedType(serializers, serialized, B.FullType_null_List_empty_false); @@ -24251,33 +24479,33 @@ } }; A.RegisterEventBuilder.prototype = { - get$_register_event$_$this() { + get$_$this() { var _this = this, - $$v = _this._register_event$_$v; + $$v = _this._$v; if ($$v != null) { - _this._register_event$_eventData = $$v.eventData; - _this._register_event$_timestamp = $$v.timestamp; - _this._register_event$_$v = null; + _this._eventData = $$v.eventData; + _this._timestamp = $$v.timestamp; + _this._$v = null; } return _this; }, - _register_event$_build$0() { + _build$0() { var t1, t2, t3, t4, _this = this, _s13_ = "RegisterEvent", _s9_ = "eventData", _s9_0 = "timestamp", - _$result = _this._register_event$_$v; + _$result = _this._$v; if (_$result == null) { t1 = type$.String; - t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_event$_$this()._register_event$_eventData, _s13_, _s9_, t1); + t2 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_$this()._eventData, _s13_, _s9_, t1); t3 = type$.int; - t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_register_event$_$this()._register_event$_timestamp, _s13_, _s9_0, t3); + t4 = A.BuiltValueNullFieldError_checkNotNull(_this.get$_$this()._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); } A.ArgumentError_checkNotNull(_$result, "other", type$.RegisterEvent); - return _this._register_event$_$v = _$result; + return _this._$v = _$result; } }; A.RunRequest.prototype = {}; @@ -24327,12 +24555,18 @@ call$0() { return A.ListBuilder_ListBuilder(B.List_empty, type$.DebugEvent); }, - $signature: 56 + $signature: 55 }; A._$serializers_closure0.prototype = { call$0() { return A.ListBuilder_ListBuilder(B.List_empty, type$.ExtensionEvent); }, + $signature: 56 + }; + A._$serializers_closure1.prototype = { + call$0() { + return A.ListBuilder_ListBuilder(B.List_empty, type$.String); + }, $signature: 57 }; A.BatchedStreamController.prototype = { @@ -24443,13 +24677,13 @@ call$0() { return true; }, - $signature: 31 + $signature: 32 }; A.BatchedStreamController__hasEventDuring_closure.prototype = { call$0() { return false; }, - $signature: 31 + $signature: 32 }; A.SocketClient.prototype = {}; A.SseSocketClient.prototype = { @@ -24468,7 +24702,7 @@ t1 = this._channel, value = t1.__HtmlWebSocketChannel_sink_FI; if (value === $) { - t2 = t1._html0$_controller.__StreamChannelController__foreign_F; + t2 = t1._controller.__StreamChannelController__foreign_F; t2 === $ && A.throwLateFieldNI("_foreign"); t2 = t2.__GuaranteeChannel__sink_F; t2 === $ && A.throwLateFieldNI("_sink"); @@ -24479,7 +24713,7 @@ }, get$stream(_) { var t2, - t1 = this._channel._html0$_controller.__StreamChannelController__foreign_F; + t1 = this._channel._controller.__StreamChannelController__foreign_F; t1 === $ && A.throwLateFieldNI("_foreign"); t1 = t1.__GuaranteeChannel__streamController_F; t1 === $ && A.throwLateFieldNI("_streamController"); @@ -24498,7 +24732,39 @@ type$.StackTrace._as(stackTrace); return $.$get$_logger().log$4(B.Level_WARNING_900, "Error in unawaited Future:", error, stackTrace); }, - $signature: 17 + $signature: 16 + }; + A.Int32.prototype = { + _toInt$1(val) { + if (val instanceof A.Int32) + return val._i; + else if (A._isInt(val)) + return val; + throw A.wrapException(A.ArgumentError$value(val, "other", "Not an int, Int32 or Int64")); + }, + $eq(_, other) { + if (other == null) + return false; + if (other instanceof A.Int32) + return this._i === other._i; + else if (other instanceof A.Int64) + return A.Int64_Int64(this._i).$eq(0, other); + else if (A._isInt(other)) + return this._i === other; + return false; + }, + compareTo$1(_, other) { + if (other instanceof A.Int64) + return A.Int64_Int64(this._i)._compareTo$1(other); + return B.JSInt_methods.compareTo$1(this._i, this._toInt$1(other)); + }, + get$hashCode(_) { + return this._i; + }, + toString$0(_) { + return B.JSInt_methods.toString$0(this._i); + }, + $isComparable: 1 }; A.Int64.prototype = { $eq(_, other) { @@ -24514,7 +24780,7 @@ return false; o = A.Int64_Int64(other); } else - o = null; + o = other instanceof A.Int32 ? A.Int64_Int64(other._i) : null; if (o != null) return _this._l === o._l && _this._m === o._m && _this._h === o._h; return false; @@ -24818,14 +25084,15 @@ var t2, _this = this, t1 = serverUrl + "?sseClientId=" + _this._clientId; _this.__SseClient__serverUrl_A = t1; - t1 = A.EventSource__factoryEventSource(t1, A.LinkedHashMap_LinkedHashMap$_literal(["withCredentials", true], type$.String, type$.dynamic)); + t2 = type$.JavaScriptObject; + t1 = t2._as(new self.EventSource(t1, t2._as({withCredentials: true}))); _this.__SseClient__eventSource_A = t1; - t1 = new A._EventStream(t1, "open", false, type$._EventStream_Event); + t1 = new A._EventStream(t1, "open", false, type$._EventStream_JavaScriptObject); t1.get$first(t1).whenComplete$1(new A.SseClient_closure(_this)); - B.EventSource_methods.addEventListener$2(_this.__SseClient__eventSource_A, "message", _this.get$_onIncomingMessage()); - B.EventSource_methods.addEventListener$2(_this.__SseClient__eventSource_A, "control", _this.get$_onIncomingControlMessage()); - t1 = type$.nullable_void_Function_Event; - t2 = type$.Event; + t1 = type$.Function; + _this.__SseClient__eventSource_A.addEventListener("message", A.allowInterop(_this.get$_onIncomingMessage(), t1)); + _this.__SseClient__eventSource_A.addEventListener("control", A.allowInterop(_this.get$_onIncomingControlMessage(), t1)); + t1 = type$.nullable_void_Function_JavaScriptObject; A._EventStreamSubscription$(_this.__SseClient__eventSource_A, "open", t1._as(new A.SseClient_closure0(_this)), false, t2); A._EventStreamSubscription$(_this.__SseClient__eventSource_A, "error", t1._as(new A.SseClient_closure1(_this)), false, t2); }, @@ -24836,7 +25103,7 @@ t1.close(); if ((_this._onConnected.future._state & 30) === 0) { t1 = _this._outgoingController; - new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$2$cancelOnError(null, true).asFuture$1$1(null, type$.dynamic); + new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$2$cancelOnError(null, true).asFuture$1$1(null, type$.void); } _this._incomingController.close$0(0); _this._outgoingController.close$0(0); @@ -24850,14 +25117,14 @@ t1.completeError$1(error); }, _onIncomingControlMessage$1(message) { - var data = new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(type$.MessageEvent._as(type$.Event._as(message)).data, true); - if (J.$eq$(data, "close")) + var data = type$.JavaScriptObject._as(message).data; + if (J.$eq$(A.dartify(data), "close")) this.close$0(0); else throw A.wrapException(A.UnsupportedError$("[" + this._clientId + '] Illegal Control Message "' + A.S(data) + '"')); }, _onIncomingMessage$1(message) { - this._incomingController.add$1(0, A._asString(B.C_JsonCodec.decode$2$reviver(0, A._asString(new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(type$.MessageEvent._as(type$.Event._as(message)).data, true)), null))); + this._incomingController.add$1(0, A._asString(B.C_JsonCodec.decode$2$reviver(0, A._asString(type$.JavaScriptObject._as(message).data), null))); }, _onOutgoingDone$0() { this.close$0(0); @@ -24897,7 +25164,7 @@ t2 = t1._outgoingController; new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$2$onDone(t1.get$_onOutgoingMessage(), t1.get$_onOutgoingDone()); }, - $signature: 5 + $signature: 4 }; A.SseClient_closure0.prototype = { call$1(_) { @@ -24905,7 +25172,7 @@ if (t1 != null) t1.cancel$0(0); }, - $signature: 4 + $signature: 1 }; A.SseClient_closure1.prototype = { call$1(error) { @@ -24915,7 +25182,7 @@ if (t2 !== true) t1._errorTimer = A.Timer_Timer(B.Duration_5000000, new A.SseClient__closure(t1, error)); }, - $signature: 4 + $signature: 1 }; A.SseClient__closure.prototype = { call$0() { @@ -24957,8 +25224,13 @@ t2 = t1.__SseClient__serverUrl_A; t2 === $ && A.throwLateFieldNI("_serverUrl"); url = t2 + "&messageId=" + ++t1._lastMessageId; + t1 = $async$self._box_0.encodedMessage; + if (t1 == null) + t1 = null; + t2 = type$.JavaScriptObject; + t1 = t2._as({method: "POST", body: t1, credentials: "include"}); $async$goto = 6; - return A._asyncAwait(A.promiseToFuture(self.fetch(url, {method: "POST", credentials: "include", body: $async$self._box_0.encodedMessage}), type$.dynamic), $async$call$0); + return A._asyncAwait(A.promiseToFuture(type$.JSObject._as(t2._as(self.window).fetch(url, t1)), type$.nullable_Object), $async$call$0); case 6: // returning from await. $async$handler = 1; @@ -24995,24 +25267,23 @@ }, $signature: 25 }; - A._FetchOptions.prototype = {}; - A.generateUuidV4__generateBits.prototype = { + A.generateUuidV4_generateBits.prototype = { call$1(bitCount) { return this.random.nextInt$1(B.JSInt_methods._shlPositive$1(1, bitCount)); }, $signature: 21 }; - A.generateUuidV4__printDigits.prototype = { + A.generateUuidV4_printDigits.prototype = { call$2(value, count) { return B.JSString_methods.padLeft$2(B.JSInt_methods.toRadixString$1(value, 16), count, "0"); }, - $signature: 29 + $signature: 31 }; - A.generateUuidV4__bitsDigits.prototype = { + A.generateUuidV4_bitsDigits.prototype = { call$2(bitCount, digitCount) { - return this._printDigits.call$2(this._generateBits.call$1(bitCount), digitCount); + return this.printDigits.call$2(this.generateBits.call$1(bitCount), digitCount); }, - $signature: 29 + $signature: 31 }; A.GuaranteeChannel.prototype = { GuaranteeChannel$3$allowSinkErrors(innerSink, allowSinkErrors, _box_0, $T) { @@ -25296,31 +25567,117 @@ return t2 + t3 + t4 + t5 + "-" + t6 + t7 + "-" + t8 + t9 + "-" + t10 + t11 + "-" + t12 + t13 + t14 + t15 + t16 + t1[t17]; } }; - A.HtmlWebSocketChannel.prototype = { - HtmlWebSocketChannel$1(innerWebSocket) { + A.EventStreamProvider0.prototype = {}; + A._EventStream.prototype = { + listen$4$cancelOnError$onDone$onError(onData, cancelOnError, onDone, onError) { + var t1 = this.$ti; + t1._eval$1("~(1)?")._as(onData); + type$.nullable_void_Function._as(onDone); + return A._EventStreamSubscription$(this._target, this._eventType, onData, false, t1._precomputed1); + }, + listen$3$onDone$onError(onData, onDone, onError) { + return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); + } + }; + A._EventStreamSubscription.prototype = { + cancel$0(_) { var _this = this, - t1 = _this.__HtmlWebSocketChannel__readyCompleter_A = new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void), - t2 = _this.innerWebSocket, - t3 = t2.readyState; - t3.toString; - if (t3 === 1) { - t1.complete$0(0); - _this._listen$0(); - } else { - if (t3 === 2 || t3 === 3) - t1.completeError$1(new A.WebSocketChannelException("WebSocket state error: " + t3)); - t1 = new A._EventStream(t2, "open", false, type$._EventStream_Event); - t1.get$first(t1).then$1$1(0, new A.HtmlWebSocketChannel_closure(_this), type$.Null); - } - t1 = new A._EventStream(t2, "error", false, type$._EventStream_Event); - t3 = type$.Null; - t1.get$first(t1).then$1$1(0, new A.HtmlWebSocketChannel_closure0(_this), t3); - A._EventStreamSubscription$(t2, "message", type$.nullable_void_Function_MessageEvent._as(new A.HtmlWebSocketChannel_closure1(_this)), false, type$.MessageEvent); - t2 = new A._EventStream(t2, "close", false, type$._EventStream_CloseEvent); - t2.get$first(t2).then$1$1(0, new A.HtmlWebSocketChannel_closure2(_this), t3); + emptyFuture = A.Future_Future$value(null, type$.void); + if (_this._target == null) + return emptyFuture; + _this._unlisten$0(); + _this._onData = _this._target = null; + return emptyFuture; + }, + onData$1(handleData) { + var t1, _this = this; + _this.$ti._eval$1("~(1)?")._as(handleData); + if (_this._target == null) + throw A.wrapException(A.StateError$("Subscription has been canceled.")); + _this._unlisten$0(); + t1 = A._wrapZone(new A._EventStreamSubscription_onData_closure0(handleData), type$.JavaScriptObject); + t1 = t1 == null ? null : A.allowInterop(t1, type$.Function); + _this._onData = t1; + _this._tryResume$0(); + }, + pause$0(_) { + if (this._target == null) + return; + ++this._pauseCount; + this._unlisten$0(); + }, + resume$0(_) { + var _this = this; + if (_this._target == null || _this._pauseCount <= 0) + return; + --_this._pauseCount; + _this._tryResume$0(); + }, + _tryResume$0() { + var _this = this, + t1 = _this._onData; + if (t1 != null && _this._pauseCount <= 0) + _this._target.addEventListener(_this._eventType, t1, false); + }, + _unlisten$0() { + var t1 = this._onData; + if (t1 != null) + this._target.removeEventListener(this._eventType, t1, false); + }, + $isStreamSubscription: 1 + }; + A._EventStreamSubscription_closure.prototype = { + call$1(e) { + return this.onData.call$1(type$.JavaScriptObject._as(e)); + }, + $signature: 1 + }; + A._EventStreamSubscription_onData_closure0.prototype = { + call$1(e) { + return this.handleData.call$1(type$.JavaScriptObject._as(e)); + }, + $signature: 1 + }; + A.HttpRequest_request_closure.prototype = { + call$1(e) { + var t1 = this.xhr, + $status = A._asInt(t1.status), + accepted = $status >= 200 && $status < 300, + unknownRedirect = $status > 307 && $status < 400, + t2 = accepted || $status === 0 || $status === 304 || unknownRedirect, + t3 = this.completer; + if (t2) + t3.complete$1(0, t1); + else + t3.completeError$1(e); + }, + $signature: 1 + }; + A.HtmlWebSocketChannel.prototype = { + HtmlWebSocketChannel$1(innerWebSocket) { + var _this = this, + t1 = _this.__HtmlWebSocketChannel__readyCompleter_A = new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_void), type$._AsyncCompleter_void), + t2 = _this.innerWebSocket, + t3 = t2.readyState; + t3.toString; + if (t3 === 1) { + t1.complete$0(0); + _this._listen$0(); + } else { + if (t3 === 2 || t3 === 3) + t1.completeError$1(new A.WebSocketChannelException("WebSocket state error: " + t3)); + t1 = new A._EventStream0(t2, "open", false, type$._EventStream_Event); + t1.get$first(t1).then$1$1(0, new A.HtmlWebSocketChannel_closure(_this), type$.Null); + } + t1 = new A._EventStream0(t2, "error", false, type$._EventStream_Event); + t3 = type$.Null; + t1.get$first(t1).then$1$1(0, new A.HtmlWebSocketChannel_closure0(_this), t3); + A._EventStreamSubscription$0(t2, "message", type$.nullable_void_Function_MessageEvent._as(new A.HtmlWebSocketChannel_closure1(_this)), false, type$.MessageEvent); + t2 = new A._EventStream0(t2, "close", false, type$._EventStream_CloseEvent); + t2.get$first(t2).then$1$1(0, new A.HtmlWebSocketChannel_closure2(_this), t3); }, _listen$0() { - var t1 = this._html0$_controller.__StreamChannelController__local_F; + var t1 = this._controller.__StreamChannelController__local_F; t1 === $ && A.throwLateFieldNI("_local"); t1 = t1.__GuaranteeChannel__streamController_F; t1 === $ && A.throwLateFieldNI("_streamController"); @@ -25338,7 +25695,7 @@ t2.complete$0(0); t1._listen$0(); }, - $signature: 36 + $signature: 29 }; A.HtmlWebSocketChannel_closure0.prototype = { call$1(_) { @@ -25349,7 +25706,7 @@ t2 = t1.__HtmlWebSocketChannel__readyCompleter_A; t2 === $ && A.throwLateFieldNI("_readyCompleter"); t2.completeError$1(error); - t1 = t1._html0$_controller.__StreamChannelController__local_F; + t1 = t1._controller.__StreamChannelController__local_F; t1 === $ && A.throwLateFieldNI("_local"); t2 = t1.__GuaranteeChannel__sink_F; t2 === $ && A.throwLateFieldNI("_sink"); @@ -25358,7 +25715,7 @@ t1 === $ && A.throwLateFieldNI("_sink"); t1.close$0(0); }, - $signature: 36 + $signature: 29 }; A.HtmlWebSocketChannel_closure1.prototype = { call$1($event) { @@ -25366,13 +25723,13 @@ data = new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(type$.MessageEvent._as($event).data, true); if (type$.ByteBuffer._is(data)) data = A.NativeUint8List_NativeUint8List$view(data, 0, null); - t1 = this.$this._html0$_controller.__StreamChannelController__local_F; + t1 = this.$this._controller.__StreamChannelController__local_F; t1 === $ && A.throwLateFieldNI("_local"); t1 = t1.__GuaranteeChannel__sink_F; t1 === $ && A.throwLateFieldNI("_sink"); t1.add$1(0, data); }, - $signature: 35 + $signature: 36 }; A.HtmlWebSocketChannel_closure2.prototype = { call$1($event) { @@ -25380,13 +25737,13 @@ type$.CloseEvent._as($event); $event.code; $event.reason; - t1 = this.$this._html0$_controller.__StreamChannelController__local_F; + t1 = this.$this._controller.__StreamChannelController__local_F; t1 === $ && A.throwLateFieldNI("_local"); t1 = t1.__GuaranteeChannel__sink_F; t1 === $ && A.throwLateFieldNI("_sink"); t1.close$0(0); }, - $signature: 83 + $signature: 66 }; A.HtmlWebSocketChannel__listen_closure.prototype = { call$0() { @@ -25404,8 +25761,7 @@ A.main_closure.prototype = { call$0() { var $async$goto = 0, - $async$completer = A._makeAsyncAwaitCompleter(type$.void), - uri, t1, t2, fixedPath, fixedUri, client, restarter, manager, t3, t4, debugEventController, t5; + $async$completer = A._makeAsyncAwaitCompleter(type$.void); var $async$call$0 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { if ($async$errorCode === 1) return A._asyncRethrow($async$result, $async$completer); @@ -25413,195 +25769,75 @@ switch ($async$goto) { case 0: // Function start - if (self.$dartAppInstanceId == null) - self.$dartAppInstanceId = B.C_Uuid.v1$0(); - uri = A.Uri_parse(self.$dwdsDevHandlerPath); - t1 = type$.Location; - t2 = t1._as(window.location).protocol; - t2.toString; - if (t2 === "https:" && uri.get$scheme() === "http" && uri.get$host(uri) !== "localhost") - uri = uri.replace$1$scheme(0, "https"); - else { - t1 = t1._as(window.location).protocol; - t1.toString; - if (t1 === "wss:" && uri.get$scheme() === "ws" && uri.get$host(uri) !== "localhost") - uri = uri.replace$1$scheme(0, "wss"); - } - fixedPath = uri.toString$0(0); - fixedUri = A.Uri_parse(fixedPath); - client = fixedUri.isScheme$1("ws") || fixedUri.isScheme$1("wss") ? new A.WebSocketClient(A.HtmlWebSocketChannel$connect(fixedUri, null)) : new A.SseSocketClient(A.SseClient$(fixedPath, "InjectedClient")); - $async$goto = J.$eq$(self.$dartModuleStrategy, "require-js") ? 2 : 4; - break; + $async$goto = 2; + return A._asyncAwait(A.runClient(), $async$call$0); case 2: - // then - $async$goto = 5; - return A._asyncAwait(A.RequireRestarter_create(), $async$call$0); - case 5: // returning from await. - restarter = $async$result; - // goto join - $async$goto = 3; - break; - case 4: - // else - if (J.$eq$(self.$dartModuleStrategy, "legacy")) - restarter = new A.LegacyRestarter(); - else - throw A.wrapException(A.StateError$("Unknown module strategy: " + A.S(self.$dartModuleStrategy))); - case 3: - // join - manager = new A.ReloadingManager(client, restarter); - self.$dartHotRestartDwds = A.allowInterop(new A.main__closure(manager), type$.Promise_bool_Function_String); - t1 = $.Zone__current; - t2 = Math.max(100, 1); - t3 = A.StreamController_StreamController(null, null, false, type$.DebugEvent); - t4 = A.StreamController_StreamController(null, null, false, type$.List_DebugEvent); - debugEventController = new A.BatchedStreamController(t2, 1000, t3, t4, new A._AsyncCompleter(new A._Future(t1, type$._Future_bool), type$._AsyncCompleter_bool), type$.BatchedStreamController_DebugEvent); - t1 = A.List_List$filled(A.QueueList__computeInitialCapacity(null), null, false, type$.nullable_Result_DebugEvent); - t2 = A.ListQueue$(type$._EventRequest_dynamic); - t5 = type$.StreamQueue_DebugEvent; - debugEventController.set$__BatchedStreamController__inputQueue_A(t5._as(new A.StreamQueue(new A._ControllerStream(t3, A._instanceType(t3)._eval$1("_ControllerStream<1>")), new A.QueueList(t1, 0, 0, type$.QueueList_Result_DebugEvent), t2, t5))); - A.safeUnawaited(debugEventController._batchAndSendEvents$0()); - new A._ControllerStream(t4, A._instanceType(t4)._eval$1("_ControllerStream<1>")).listen$1(new A.main__closure0(client)); - self.$emitDebugEvent = A.allowInterop(new A.main__closure1(debugEventController), type$.void_Function_String_String); - self.$emitRegisterEvent = A.allowInterop(new A.main__closure2(client), type$.void_Function_String); - self.$launchDevTools = A.allowInterop(new A.main__closure3(client), type$.void_Function); - client.get$stream(client).listen$2$onError(new A.main__closure4(manager), new A.main__closure5()); - if (A.boolConversionCheck(self.$dwdsEnableDevToolsLaunch)) { - t1 = window; - t1.toString; - A._EventStreamSubscription$(t1, "keydown", type$.nullable_void_Function_KeyboardEvent._as(new A.main__closure6()), false, type$.KeyboardEvent); - } - t1 = window.navigator.vendor; - t1.toString; - if (B.JSString_methods.contains$1(t1, "Google")) { - t1 = client.get$sink(); - t2 = $.$get$serializers(); - t3 = new A.ConnectRequestBuilder(); - type$.nullable_void_Function_ConnectRequestBuilder._as(new A.main__closure7()).call$1(t3); - A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._build$0()), null), type$.dynamic); - } else - A.runMain(); - A._launchCommunicationWithDebugExtension(); // implicit return return A._asyncReturn(null, $async$completer); } }); return A._asyncStartSync($async$call$0, $async$completer); }, - $signature: 66 - }; - A.main__closure.prototype = { - call$1(runId) { - return A.toPromise(this.manager.hotRestart$1$runId(A._asString(runId)), type$.bool); - }, $signature: 67 }; - A.main__closure0.prototype = { - call$1(events) { - var t1, t2, t3; - type$.List_DebugEvent._as(events); - if (A.boolConversionCheck(self.$dartEmitDebugEvents)) { - t1 = this.client.get$sink(); - t2 = $.$get$serializers(); - t3 = new A.BatchedDebugEventsBuilder(); - type$.nullable_void_Function_BatchedDebugEventsBuilder._as(new A.main___closure2(events)).call$1(t3); - A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._debug_event$_build$0()), null), type$.dynamic); - } + A.main_closure0.prototype = { + call$2(error, stackTrace) { + type$.Object._as(error); + type$.StackTrace._as(stackTrace); + A.print("Unhandled error detected in the injected client.js script.\n\nYou can disable this script in webdev by passing --no-injected-client if it\nis preventing your app from loading, but note that this will also prevent\nall debugging and hot reload/restart functionality from working.\n\nThe original error is below, please file an issue at\nhttps://github.com/dart-lang/webdev/issues/new and attach this output:\n\n" + A.S(error) + "\n" + stackTrace.toString$0(0) + "\n"); }, - $signature: 68 + $signature: 10 }; - A.main___closure2.prototype = { - call$1(b) { - var t1 = A.ListBuilder_ListBuilder(this.events, type$.DebugEvent); - type$.nullable_ListBuilder_DebugEvent._as(t1); - b.get$_debug_event$_$this().set$_events(t1); - return t1; - }, - $signature: 69 - }; - A.main__closure1.prototype = { - call$2(kind, eventData) { + A.runClient_closure.prototype = { + call$2(appName, entrypointPath) { var t1, t2; - A._asString(kind); - A._asString(eventData); - if (A.boolConversionCheck(self.$dartEmitDebugEvents)) { - t1 = this.debugEventController._inputController; - t2 = new A.DebugEventBuilder(); - type$.nullable_void_Function_DebugEventBuilder._as(new A.main___closure1(kind, eventData)).call$1(t2); - A._trySendEvent(new A._StreamSinkWrapper(t1, A._instanceType(t1)._eval$1("_StreamSinkWrapper<1>")), t2._debug_event$_build$0(), type$.DebugEvent); - } + A._asString(appName); + A._asString(entrypointPath); + t1 = this.appInfo; + t2 = type$.List_nullable_Object; + if (B.JSArray_methods.contains$1(A.StringList_get_toDart(t2._as(t1.entrypoints)), entrypointPath)) + return; + B.JSArray_methods.add$1(A.StringList_get_toDart(t2._as(t1.entrypoints)), entrypointPath); + if (A._isChromium()) + this.dwdsConnection.sendRegisterEntrypointRequest$2(appName, entrypointPath); }, - $signature: 15 + $signature: 11 }; - A.main___closure1.prototype = { - call$1(b) { - var t1 = Date.now(); - b.get$_debug_event$_$this()._timestamp = t1; - b.get$_debug_event$_$this()._debug_event$_kind = this.kind; - b.get$_debug_event$_$this()._eventData = this.eventData; - return b; + A.runClient_closure0.prototype = { + call$1(runId) { + return A.toPromise(this.manager.hotRestart$1$runId(A._asString(runId)), type$.bool); }, - $signature: 70 + $signature: 102 }; - A.main__closure2.prototype = { - call$1(eventData) { - var t1, t2, t3; + A.runClient_closure1.prototype = { + call$2(kind, eventData) { + A._asString(kind); A._asString(eventData); - t1 = this.client.get$sink(); - t2 = $.$get$serializers(); - t3 = new A.RegisterEventBuilder(); - type$.nullable_void_Function_RegisterEventBuilder._as(new A.main___closure0(eventData)).call$1(t3); - A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._register_event$_build$0()), null), type$.dynamic); - }, - $signature: 33 - }; - A.main___closure0.prototype = { - call$1(b) { - var t1 = Date.now(); - b.get$_register_event$_$this()._register_event$_timestamp = t1; - b.get$_register_event$_$this()._register_event$_eventData = this.eventData; - return b; + if (A._asBool(this.appInfo.emitDebugEvents)) + this.dwdsConnection.sendDebugEvent$2(kind, eventData); }, - $signature: 72 + $signature: 11 }; - A.main__closure3.prototype = { + A.runClient_closure2.prototype = { call$0() { - var t2, t3, - t1 = window.navigator.vendor; - t1.toString; - if (!B.JSString_methods.contains$1(t1, "Google")) { - t1 = window; - t1.toString; - B.Window_methods.alert$1(t1, "Dart DevTools is only supported on Chromium based browsers."); + if (!A._isChromium()) { + type$.JavaScriptObject._as(self.window).alert("Dart DevTools is only supported on Chromium based browsers."); return; } - t1 = this.client.get$sink(); - t2 = $.$get$serializers(); - t3 = new A.DevToolsRequestBuilder(); - type$.nullable_void_Function_DevToolsRequestBuilder._as(new A.main___closure()).call$1(t3); - A._trySendEvent(t1, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(t3._devtools_request$_build$0()), null), type$.dynamic); + var t1 = this.appInfo; + this.dwdsConnection.sendDevToolsRequest$2(A._asString(t1.appId), A._asString(t1.appInstanceId)); }, $signature: 0 }; - A.main___closure.prototype = { - call$1(b) { - var t1 = A._asStringQ(self.$dartAppId); - b.get$_devtools_request$_$this()._devtools_request$_appId = t1; - t1 = A._asStringQ(self.$dartAppInstanceId); - b.get$_devtools_request$_$this()._devtools_request$_instanceId = t1; - return b; - }, - $signature: 73 - }; - A.main__closure4.prototype = { + A.runClient_closure3.prototype = { call$1(serialized) { - return this.$call$body$main__closure(A._asString(serialized)); + return this.$call$body$runClient_closure(A._asString(serialized)); }, - $call$body$main__closure(serialized) { + $call$body$runClient_closure(serialized) { var $async$goto = 0, $async$completer = A._makeAsyncAwaitCompleter(type$.void), - $async$self = this, $alert, t1, win, t2, t3, $event; + $async$self = this, t1, $alert, t2, $event; var $async$call$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { if ($async$errorCode === 1) return A._asyncRethrow($async$result, $async$completer); @@ -25614,7 +25850,8 @@ break; case 2: // then - $async$goto = J.$eq$(self.$dartReloadConfiguration, "ReloadConfiguration.liveReload") ? 5 : 7; + t1 = $async$self.appInfo; + $async$goto = A._asString(t1.reloadConfiguration) === "ReloadConfiguration.liveReload" ? 5 : 7; break; case 5: // then @@ -25624,7 +25861,7 @@ break; case 7: // else - $async$goto = J.$eq$(self.$dartReloadConfiguration, "ReloadConfiguration.hotRestart") ? 8 : 10; + $async$goto = A._asString(t1.reloadConfiguration) === "ReloadConfiguration.hotRestart" ? 8 : 10; break; case 8: // then @@ -25637,7 +25874,7 @@ break; case 10: // else - if (J.$eq$(self.$dartReloadConfiguration, "ReloadConfiguration.hotReload")) + if (A._asString(t1.reloadConfiguration) === "ReloadConfiguration.hotReload") A.print("Hot reload is currently unsupported. Ignoring change."); case 9: // join @@ -25651,32 +25888,17 @@ if ($event instanceof A._$DevToolsResponse) { if (!$event.success) { $alert = "DevTools failed to open with:\n" + A.S($event.error); - if ($event.promptExtension) { - t1 = window; - t1.toString; - t1 = B.Window_methods.confirm$1(t1, $alert); - } else - t1 = false; - if (t1) { - win = window.open("https://goo.gle/dart-debug-extension", "_blank"); - A._DOMWindowCrossFrame__createSafe(win); - } else { - t1 = window; - t1.toString; - B.Window_methods.alert$1(t1, $alert); - } + t1 = $event.promptExtension && A._asBool(type$.JavaScriptObject._as(self.window).confirm($alert)); + t2 = type$.JavaScriptObject; + if (t1) + type$.nullable_JavaScriptObject._as(t2._as(self.window).open("https://goo.gle/dart-debug-extension", "_blank")); + else + t2._as(self.window).alert($alert); } } else if ($event instanceof A._$RunRequest) A.runMain(); - else if ($event instanceof A._$ErrorResponse) { - window.toString; - t1 = $event.error; - t2 = $event.stackTrace; - t3 = typeof console != "undefined"; - t3.toString; - if (t3) - window.console.error("Error from backend:\n\nError: " + t1 + "\n\nStack Trace:\n" + t2); - } + else if ($event instanceof A._$ErrorResponse) + type$.JavaScriptObject._as(self.window).reportError("Error from backend:\n\nError: " + $event.error + "\n\nStack Trace:\n" + $event.stackTrace); case 3: // join // implicit return @@ -25685,151 +25907,214 @@ }); return A._asyncStartSync($async$call$1, $async$completer); }, - $signature: 74 + $signature: 69 }; - A.main__closure5.prototype = { + A.runClient_closure4.prototype = { call$1(error) { }, $signature: 7 }; - A.main__closure6.prototype = { + A.runClient_closure5.prototype = { call$1(e) { - var t1; - if (type$.KeyboardEvent._is(e)) - if (B.JSArray_methods.contains$1(B.List_er0, e.key)) { - t1 = e.altKey; - t1.toString; - if (t1) { - t1 = e.ctrlKey; - t1.toString; - if (!t1) { - t1 = e.metaKey; - t1.toString; - t1 = !t1; - } else - t1 = false; - } else - t1 = false; - } else - t1 = false; - else - t1 = false; - if (t1) { + if (B.JSArray_methods.contains$1(B.List_er0, A._asString(e.key)) && A._asBool(e.altKey) && !A._asBool(e.ctrlKey) && !A._asBool(e.metaKey)) { e.preventDefault(); self.$launchDevTools.call$0(); } }, - $signature: 4 + $signature: 1 }; - A.main__closure7.prototype = { + A.DebugExtensionConnection.prototype = { + launchCommunication$0() { + var t1, t2; + type$.JavaScriptObject._as(self.window).addEventListener("message", A.allowInterop(this.get$_handleDebugExtensionAuthRequest(), type$.Function)); + t1 = $.$get$serializers(); + t2 = new A.DebugInfoBuilder(); + type$.nullable_void_Function_DebugInfoBuilder._as(new A.DebugExtensionConnection_launchCommunication_closure(this)).call$1(t2); + this._dispatchEvent$2("dart-app-ready", B.C_JsonCodec.encode$2$toEncodable(t1.serialize$1(t2._debug_info$_build$0()), null)); + }, + authUrl$1(extensionUrl) { + var authUrl; + if (extensionUrl == null) + return null; + authUrl = A.Uri_parse(extensionUrl).replace$1$path(0, "$dwdsExtensionAuthentication"); + switch (authUrl.scheme) { + case "ws": + return authUrl.replace$1$scheme(0, "http").get$_text(); + case "wss": + return authUrl.replace$1$scheme(0, "https").get$_text(); + default: + return authUrl.get$_text(); + } + }, + _dispatchEvent$2(message, detail) { + var t1 = self, + t2 = type$.JavaScriptObject; + A._asBool(t2._as(t1.window).dispatchEvent(t2._as(new t1.CustomEvent("dart-auth-response", t2._as({detail: detail}))))); + }, + _handleDebugExtensionAuthRequest$1($event) { + var auth; + type$.JavaScriptObject._as($event); + if (typeof $event.data != "string") + return; + if (A._asString($event.data) !== "dart-auth-request") + return; + auth = this.authUrl$1(A._asStringQ(this.appInfo.extensionUrl)); + if (auth != null) + A.DebugExtensionConnection__authenticateUser(auth).then$1$1(0, new A.DebugExtensionConnection__handleDebugExtensionAuthRequest_closure(this), type$.void); + } + }; + A.DebugExtensionConnection_launchCommunication_closure.prototype = { call$1(b) { - var t1 = A._asStringQ(self.$dartAppId); - b.get$_connect_request$_$this()._appId = t1; - t1 = A._asStringQ(self.$dartAppInstanceId); - b.get$_connect_request$_$this()._instanceId = t1; - t1 = A._asStringQ(self.$dartEntrypointPath); - b.get$_connect_request$_$this()._entrypointPath = t1; + var t4, t5, + t1 = this.$this, + t2 = t1.appInfo, + t3 = A._asString(t2.appName); + b.get$_debug_info$_$this()._appEntrypointPath = t3; + t3 = A._asString(t2.appId); + b.get$_debug_info$_$this()._appId = t3; + t3 = A._asString(t2.appInstanceId); + b.get$_debug_info$_$this()._appInstanceId = t3; + t3 = self; + t4 = type$.JavaScriptObject; + t5 = A._asString(t4._as(t4._as(t3.window).location).origin); + b.get$_debug_info$_$this()._appOrigin = t5; + t3 = A._asString(t4._as(t4._as(t3.window).location).href); + b.get$_debug_info$_$this()._appUrl = t3; + t1 = t1.authUrl$1(A._asStringQ(t2.extensionUrl)); + b.get$_debug_info$_$this()._authUrl = t1; + t1 = A._asStringQ(t2.extensionUrl); + b.get$_debug_info$_$this()._extensionUrl = t1; + t1 = A._asBool(t2.isInternalBuild); + b.get$_debug_info$_$this()._isInternalBuild = t1; + t1 = A._asBool(t2.isFlutterApp); + b.get$_debug_info$_$this()._isFlutterApp = t1; + t2 = A._asStringQ(t2.workspaceName); + b.get$_debug_info$_$this()._workspaceName = t2; return b; }, - $signature: 75 + $signature: 70 }; - A.main_closure0.prototype = { - call$2(error, stackTrace) { - type$.Object._as(error); - type$.StackTrace._as(stackTrace); - A.print("Unhandled error detected in the injected client.js script.\n\nYou can disable this script in webdev by passing --no-injected-client if it\nis preventing your app from loading, but note that this will also prevent\nall debugging and hot reload/restart functionality from working.\n\nThe original error is below, please file an issue at\nhttps://github.com/dart-lang/webdev/issues/new and attach this output:\n\n" + A.S(error) + "\n" + stackTrace.toString$0(0) + "\n"); + A.DebugExtensionConnection__handleDebugExtensionAuthRequest_closure.prototype = { + call$1(isAuthenticated) { + return this.$this._dispatchEvent$2("dart-auth-response", "" + A._asBool(isAuthenticated)); }, - $signature: 11 + $signature: 71 + }; + A.DevHandlerConnection.prototype = { + sendConnectRequest$4(appName, appId, appInstanceId, entrypoints) { + var t1 = new A.ConnectRequestBuilder(); + type$.nullable_void_Function_ConnectRequestBuilder._as(new A.DevHandlerConnection_sendConnectRequest_closure(appName, appId, appInstanceId, type$.List_String._as(entrypoints))).call$1(t1); + this._serializeAndTrySendEvent$1$1(t1._connect_request$_build$0(), type$.ConnectRequest); + }, + sendRegisterEntrypointRequest$2(appName, entrypointPath) { + var t1 = new A.RegisterEntrypointRequestBuilder(); + type$.nullable_void_Function_RegisterEntrypointRequestBuilder._as(new A.DevHandlerConnection_sendRegisterEntrypointRequest_closure(appName, entrypointPath)).call$1(t1); + this._serializeAndTrySendEvent$1$1(t1._register_entrypoint_request$_build$0(), type$.RegisterEntrypointRequest); + }, + _sendBatchedDebugEvents$1(events) { + var t1 = new A.BatchedDebugEventsBuilder(); + type$.nullable_void_Function_BatchedDebugEventsBuilder._as(new A.DevHandlerConnection__sendBatchedDebugEvents_closure(type$.List_DebugEvent._as(events))).call$1(t1); + this._serializeAndTrySendEvent$1$1(t1._debug_event$_build$0(), type$.BatchedDebugEvents); + }, + sendDebugEvent$2(kind, eventData) { + var t1 = this.debugEventController._inputController, + t2 = new A.DebugEventBuilder(); + type$.nullable_void_Function_DebugEventBuilder._as(new A.DevHandlerConnection_sendDebugEvent_closure(kind, eventData)).call$1(t2); + this._trySendEvent$1$2(new A._StreamSinkWrapper(t1, A._instanceType(t1)._eval$1("_StreamSinkWrapper<1>")), t2._debug_event$_build$0(), type$.DebugEvent); + }, + sendRegisterEvent$1(eventData) { + var t1 = new A.RegisterEventBuilder(); + type$.nullable_void_Function_RegisterEventBuilder._as(new A.DevHandlerConnection_sendRegisterEvent_closure(A._asString(eventData))).call$1(t1); + this._serializeAndTrySendEvent$1$1(t1._build$0(), type$.RegisterEvent); + }, + sendDevToolsRequest$2(appId, appInstanceId) { + var t1 = new A.DevToolsRequestBuilder(); + type$.nullable_void_Function_DevToolsRequestBuilder._as(new A.DevHandlerConnection_sendDevToolsRequest_closure(appId, appInstanceId)).call$1(t1); + this._serializeAndTrySendEvent$1$1(t1._devtools_request$_build$0(), type$.DevToolsRequest); + }, + _trySendEvent$1$2(sink, $event, $T) { + var exception; + $T._eval$1("StreamSink<0>")._as(sink); + $T._as($event); + try { + sink.add$1(0, $event); + } catch (exception) { + if (A.unwrapException(exception) instanceof A.StateError) + A.print("Cannot send event " + A.S($event) + ". Injected client connection is closed."); + else + throw exception; + } + }, + _serializeAndTrySendEvent$1$1(object, $T) { + var t1; + $T._as(object); + t1 = this.__DevHandlerConnection_client_F; + t1 === $ && A.throwLateFieldNI("client"); + this._trySendEvent$1$2(t1.get$sink(), B.C_JsonCodec.encode$2$toEncodable($.$get$serializers().serialize$1(object), null), type$.dynamic); + } }; - A._launchCommunicationWithDebugExtension_closure.prototype = { + A.DevHandlerConnection_sendConnectRequest_closure.prototype = { call$1(b) { - var t2, - t1 = A._asStringQ(self.$dartEntrypointPath); - b.get$_$this()._appEntrypointPath = t1; - t1 = window; - t1.toString; - t1 = A._asStringQ(A.JsObject_JsObject$fromBrowserObject(t1).$index(0, "$dartAppId")); - b.get$_$this()._debug_info$_appId = t1; - t1 = A._asStringQ(self.$dartAppInstanceId); - b.get$_$this()._appInstanceId = t1; - t1 = type$.Location; - t2 = B.Location_methods.get$origin(t1._as(window.location)); - b.get$_$this()._appOrigin = t2; - t1 = t1._as(window.location).href; - t1.toString; - b.get$_$this()._appUrl = t1; - t1 = A._authUrl(); - b.get$_$this()._authUrl = t1; - t1 = window; - t1.toString; - t1 = A._asStringQ(A.JsObject_JsObject$fromBrowserObject(t1).$index(0, "$dartExtensionUri")); - b.get$_$this()._extensionUrl = t1; - t1 = window; - t1.toString; - t1 = A._asBoolQ(A.JsObject_JsObject$fromBrowserObject(t1).$index(0, "$isInternalBuild")); - b.get$_$this()._isInternalBuild = t1; - t1 = window; - t1.toString; - t1 = A._asBoolQ(A.JsObject_JsObject$fromBrowserObject(t1).$index(0, "$isFlutterApp")); - b.get$_$this()._isFlutterApp = t1; - t1 = A._asStringQ(self.$dartWorkspaceName); - b.get$_$this()._workspaceName = t1; + var t1, _this = this; + b.get$_connect_request$_$this()._appName = _this.appName; + b.get$_connect_request$_$this()._connect_request$_appId = _this.appId; + b.get$_connect_request$_$this()._instanceId = _this.appInstanceId; + t1 = type$.nullable_ListBuilder_String._as(A.ListBuilder_ListBuilder(_this.entrypoints, type$.String)); + b.get$_connect_request$_$this().set$_entrypoints(t1); return b; }, - $signature: 76 + $signature: 74 }; - A._listenForDebugExtensionAuthRequest_closure.prototype = { - call$1($event) { - return this.$call$body$_listenForDebugExtensionAuthRequest_closure(type$.Event._as($event)); + A.DevHandlerConnection_sendRegisterEntrypointRequest_closure.prototype = { + call$1(b) { + b.get$_register_entrypoint_request$_$this()._register_entrypoint_request$_appName = this.appName; + b.get$_register_entrypoint_request$_$this()._entrypointPath = this.entrypointPath; + return b; }, - $call$body$_listenForDebugExtensionAuthRequest_closure($event) { - var $async$goto = 0, - $async$completer = A._makeAsyncAwaitCompleter(type$.Null), - $async$returnValue, t1, $async$temp1, $async$temp2, $async$temp3, $async$temp4; - var $async$call$1 = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) { - if ($async$errorCode === 1) - return A._asyncRethrow($async$result, $async$completer); - while (true) - switch ($async$goto) { - case 0: - // Function start - type$.MessageEvent._as($event); - if (typeof new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.data, true) != "string") { - // goto return - $async$goto = 1; - break; - } - if (A._asString(new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy($event.data, true)) !== "dart-auth-request") { - // goto return - $async$goto = 1; - break; - } - $async$goto = A._authUrl() != null ? 3 : 4; - break; - case 3: - // then - t1 = A._authUrl(); - t1.toString; - $async$temp1 = self.window.top.document; - $async$temp2 = A; - $async$temp3 = "dart-auth-response"; - $async$temp4 = A; - $async$goto = 5; - return A._asyncAwait(A._authenticateUser(t1), $async$call$1); - case 5: - // returning from await. - $async$temp1.dispatchEvent($async$temp2.CustomEvent_CustomEvent($async$temp3, $async$temp4.S($async$result))); - case 4: - // join - case 1: - // return - return A._asyncReturn($async$returnValue, $async$completer); - } - }); - return A._asyncStartSync($async$call$1, $async$completer); + $signature: 75 + }; + A.DevHandlerConnection__sendBatchedDebugEvents_closure.prototype = { + call$1(b) { + var t1 = A.ListBuilder_ListBuilder(this.events, type$.DebugEvent); + type$.nullable_ListBuilder_DebugEvent._as(t1); + b.get$_debug_event$_$this().set$_events(t1); + return t1; + }, + $signature: 76 + }; + A.DevHandlerConnection_sendDebugEvent_closure.prototype = { + call$1(b) { + var t1 = Date.now(); + b.get$_debug_event$_$this()._debug_event$_timestamp = t1; + b.get$_debug_event$_$this()._debug_event$_kind = this.kind; + b.get$_debug_event$_$this()._debug_event$_eventData = this.eventData; + return b; }, $signature: 77 }; + A.DevHandlerConnection_sendRegisterEvent_closure.prototype = { + call$1(b) { + var t1 = Date.now(); + b.get$_$this()._timestamp = t1; + b.get$_$this()._eventData = this.eventData; + return b; + }, + $signature: 78 + }; + A.DevHandlerConnection_sendDevToolsRequest_closure.prototype = { + call$1(b) { + b.get$_devtools_request$_$this()._devtools_request$_appId = this.appId; + b.get$_devtools_request$_$this()._devtools_request$_instanceId = this.appInstanceId; + return b; + }, + $signature: 79 + }; + A.StringList_get_toDart_closure.prototype = { + call$1(e) { + return A._asString(e); + }, + $signature: 80 + }; A.LegacyRestarter.prototype = { restart$1$runId(runId) { var $async$goto = 0, @@ -25853,7 +26138,7 @@ t1 = new A._Future($.Zone__current, type$._Future_bool); t2 = window; t2.toString; - $async$returnValue = t1.then$1$1(0, new A.LegacyRestarter_restart_closure(A._EventStreamSubscription$(t2, "message", type$.nullable_void_Function_MessageEvent._as(new A.LegacyRestarter_restart_closure0(new A._AsyncCompleter(t1, type$._AsyncCompleter_bool))), false, type$.MessageEvent)), type$.bool); + $async$returnValue = t1.then$1$1(0, new A.LegacyRestarter_restart_closure(A._EventStreamSubscription$0(t2, "message", type$.nullable_void_Function_MessageEvent._as(new A.LegacyRestarter_restart_closure0(new A._AsyncCompleter(t1, type$._AsyncCompleter_bool))), false, type$.MessageEvent)), type$.bool); // goto return $async$goto = 1; break; @@ -25878,7 +26163,7 @@ if (t1) this.reloadCompleter.complete$1(0, true); }, - $signature: 35 + $signature: 36 }; A.LegacyRestarter_restart_closure.prototype = { call$1(value) { @@ -25886,7 +26171,7 @@ this.sub.cancel$0(0); return value; }, - $signature: 78 + $signature: 81 }; A.ReloadingManager.prototype = { hotRestart$1$runId(runId) { @@ -25948,7 +26233,7 @@ var t1 = e == null ? type$.Object._as(e) : e; return this.completer.completeError$2(t1, A.StackTrace_current()); }, - $signature: 3 + $signature: 5 }; A.RequireLoader.prototype = {}; A.HotReloadFailedException.prototype = { @@ -25991,7 +26276,7 @@ // returning from await. newDigests = $async$result; modulesToLoad = A._setArrayType([], type$.JSArray_String); - for (t1 = J.getInterceptor$x(newDigests), t2 = J.get$iterator$ax(t1.get$keys(newDigests)), t4 = $.___lastKnownDigests.__late_helper$_name, t5 = type$.Location; t2.moveNext$0();) { + for (t1 = J.getInterceptor$x(newDigests), t2 = J.get$iterator$ax(t1.get$keys(newDigests)), t4 = $.___lastKnownDigests._name, t5 = type$.Location; t2.moveNext$0();) { t6 = t2.get$current(t2); t7 = $.___lastKnownDigests.__late_helper$_value; if (t7 === $.___lastKnownDigests) @@ -26066,7 +26351,7 @@ $async$temp2 = type$.Map_dynamic_dynamic; $async$temp3 = A; $async$goto = 3; - return A._asyncAwait(A.HttpRequest_request(J.get$digestsPath$x(self.$requireLoader), "GET", "json", null), $async$_getDigests$0); + return A._asyncAwait(A.HttpRequest_request0(J.get$digestsPath$x(self.$requireLoader), "GET", "json"), $async$_getDigests$0); case 3: // returning from await. $async$returnValue = $async$temp1.cast$2$0$ax($async$temp2._as($async$temp3._convertNativeToDart_XHR_Response($async$result.response)), t1, t1); @@ -26292,13 +26577,13 @@ t1 = type$.Object._as(t1); t1.main(); }, - $signature: 5 + $signature: 4 }; A.RequireRestarter__reloadModule_closure.prototype = { call$1(e) { this.completer.completeError$2(new A.HotReloadFailedException(J.get$message$x(type$.JsError._as(e))), this.stackTrace); }, - $signature: 81 + $signature: 84 }; A._createScript_closure.prototype = { call$0() { @@ -26307,7 +26592,7 @@ return A.html_ScriptElement___new_tearOff$closure(); return new A._createScript__closure(nonce); }, - $signature: 82 + $signature: 85 }; A._createScript__closure.prototype = { call$0() { @@ -26315,7 +26600,7 @@ t1.setAttribute("nonce", this.nonce); return t1; }, - $signature: 14 + $signature: 28 }; (function aliases() { var _ = J.Interceptor.prototype; @@ -26328,7 +26613,7 @@ _ = A._HashMap.prototype; _.super$_HashMap$_containsKey = _._containsKey$1; _.super$_HashMap$_get = _._get$1; - _.super$_HashMap$_set = _._set$2; + _.super$_HashMap$_set = _._collection$_set$2; _ = A.Iterable.prototype; _.super$Iterable$where = _.where$1; _ = A.Object.prototype; @@ -26354,81 +26639,84 @@ _instance_0_u = hunkHelpers._instance_0u, _instance_1_u = hunkHelpers._instance_1u, _instance_0_i = hunkHelpers._instance_0i; - _static_2(J, "_interceptors_JSArray__compareAny$closure", "JSArray__compareAny", 28); - _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 10); - _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 10); - _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 10); + _static_2(J, "_interceptors_JSArray__compareAny$closure", "JSArray__compareAny", 30); + _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 9); + _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 9); + _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 9); _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0); - _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 3); - _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 11); + _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 5); + _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 10); _static_0(A, "async___nullDoneHandler$closure", "_nullDoneHandler", 0); - _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 86, 0); + _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 89, 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); - }], 87, 1); + }], 90, 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); - }], 88, 1); + }], 91, 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); - }], 89, 1); + }], 92, 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); - }], 90, 0); + }], 93, 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); - }], 91, 0); + }], 94, 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); - }], 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", 33); - _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"], 32, 0, 0); + }], 95, 0); + _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 96, 0); + _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 97, 0); + _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 98, 0); + _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 99, 0); + _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 100, 0); + _static_1(A, "async___printToZone$closure", "_printToZone", 34); + _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 101, 0); + _instance(A._Completer.prototype, "get$completeError", 0, 1, null, ["call$2", "call$1"], ["completeError$2", "completeError$1"], 33, 0, 0); _instance(A._AsyncCompleter.prototype, "get$complete", 1, 0, function() { return [null]; - }, ["call$1", "call$0"], ["complete$1", "complete$0"], 54, 0, 0); - _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 11); + }, ["call$1", "call$0"], ["complete$1", "complete$0"], 53, 0, 0); + _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 10); var _; - _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 16); + _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 37); _instance(_, "get$addError", 0, 1, function() { return [null]; - }, ["call$2", "call$1"], ["addError$2", "addError$1"], 32, 0, 0); + }, ["call$2", "call$1"], ["addError$2", "addError$1"], 33, 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", 16); - _instance_2_u(_, "get$_handleError", "_handleError$2", 17); + _instance_1_u(_, "get$_handleData", "_handleData$1", 37); + _instance_2_u(_, "get$_handleError", "_handleError$2", 16); _instance_0_u(_, "get$_handleDone", "_handleDone$0", 0); - _static_2(A, "collection___defaultEquals$closure", "_defaultEquals0", 12); - _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 13); - _static_2(A, "collection_ListBase__compareAny$closure", "ListBase__compareAny", 28); - _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 1); - _static_1(A, "core__identityHashCode$closure", "identityHashCode", 13); - _static_2(A, "core__identical$closure", "identical", 12); - _static_0(A, "html_ScriptElement___new_tearOff$closure", "ScriptElement___new_tearOff", 14); - _static(A, "html__Html5NodeValidator__standardAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__standardAttributeValidator"], 30, 0); - _static(A, "html__Html5NodeValidator__uriAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__uriAttributeValidator"], 30, 0); + _static_2(A, "collection___defaultEquals$closure", "_defaultEquals0", 13); + _static_1(A, "collection___defaultHashCode$closure", "_defaultHashCode", 14); + _static_2(A, "collection_ListBase__compareAny$closure", "ListBase__compareAny", 30); + _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 2); + _static_1(A, "core__identityHashCode$closure", "identityHashCode", 14); + _static_2(A, "core__identical$closure", "identical", 13); + _static_0(A, "html_ScriptElement___new_tearOff$closure", "ScriptElement___new_tearOff", 28); + _static(A, "html__Html5NodeValidator__standardAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__standardAttributeValidator"], 35, 0); + _static(A, "html__Html5NodeValidator__uriAttributeValidator$closure", 4, null, ["call$4"], ["_Html5NodeValidator__uriAttributeValidator"], 35, 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", 34); - _static_1(A, "js___convertToDart$closure", "_convertToDart", 2); - _instance_2_u(_ = A.DeepCollectionEquality.prototype, "get$equals", "equals$2", 12); - _instance_1_i(_, "get$hash", "hash$1", 13); - _instance_1_u(_, "get$isValidKey", "isValidKey$1", 55); - _instance_1_u(_ = A.SseClient.prototype, "get$_onIncomingControlMessage", "_onIncomingControlMessage$1", 4); - _instance_1_u(_, "get$_onIncomingMessage", "_onIncomingMessage$1", 4); + _instance_1_i(A.WebSocket.prototype, "get$send", "send$1", 5); + _static_1(A, "js___convertToJS$closure", "_convertToJS", 12); + _static_1(A, "js___convertToDart$closure", "_convertToDart", 3); + _instance_2_u(_ = A.DeepCollectionEquality.prototype, "get$equals", "equals$2", 13); + _instance_1_i(_, "get$hash", "hash$1", 14); + _instance_1_u(_, "get$isValidKey", "isValidKey$1", 54); + _instance_1_u(_ = A.SseClient.prototype, "get$_onIncomingControlMessage", "_onIncomingControlMessage$1", 1); + _instance_1_u(_, "get$_onIncomingMessage", "_onIncomingMessage$1", 1); _instance_0_u(_, "get$_onOutgoingDone", "_onOutgoingDone$0", 0); - _instance_1_u(_, "get$_onOutgoingMessage", "_onOutgoingMessage$1", 61); - _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 79); - _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 80); + _instance_1_u(_, "get$_onOutgoingMessage", "_onOutgoingMessage$1", 62); + _instance_1_u(A.DebugExtensionConnection.prototype, "get$_handleDebugExtensionAuthRequest", "_handleDebugExtensionAuthRequest$1", 1); + _instance_1_u(_ = A.DevHandlerConnection.prototype, "get$_sendBatchedDebugEvents", "_sendBatchedDebugEvents$1", 72); + _instance_1_u(_, "get$sendRegisterEvent", "sendRegisterEvent$1", 34); + _instance_1_u(_ = A.RequireRestarter.prototype, "get$_moduleParents", "_moduleParents$1", 82); + _instance_2_u(_, "get$_moduleTopologicalCompare", "_moduleTopologicalCompare$2", 83); })(); (function inheritance() { var _mixin = hunkHelpers.mixin, @@ -26436,25 +26724,26 @@ _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.MapBase, A.Error, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.SkipIterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.ListBase, A.Symbol, A.MapView, A.ConstantMap, A._KeysOrValuesOrElementsIterator, 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._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, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A._ListQueueIterator, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A.Converter, A._Base64Encoder, A._Base64Decoder, 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._EventStreamSubscription, 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.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.Uint8ListSerializer, 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.BatchedStreamController, A.SocketClient, A.Int64, A._StackState, 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.MapBase, A.Error, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.TakeIterator, A.SkipIterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.ListBase, A.Symbol, A.MapView, A.ConstantMap, A._KeysOrValuesOrElementsIterator, 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._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, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A._ListQueueIterator, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A.Converter, A._Base64Encoder, A._Base64Decoder, 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._EventStreamSubscription0, A._Html5NodeValidator, A.ImmutableListMixin, A.NodeValidatorBuilder, A._SimpleNodeValidator, A._SvgNodeValidator, A.FixedSizeListIterator, A._SameOriginUriPolicy, A._ValidatingTreeSanitizer, 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.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.Int32Serializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.Uint8ListSerializer, 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.RegisterEntrypointRequest, A._$RegisterEntrypointRequestSerializer, A.RegisterEntrypointRequestBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.BatchedStreamController, A.SocketClient, A.Int32, A.Int64, A._StackState, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.EventStreamProvider0, A._EventStreamSubscription, A.WebSocketChannelException, A.DebugExtensionConnection, A.DevHandlerConnection, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]); _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JavaScriptBigInt, J.JavaScriptSymbol, J.JSNumber, J.JSString]); - _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, J.JSArray, A.NativeByteBuffer, A.NativeTypedData, 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._FetchOptions, A.Promise, A.RequireLoader, A.JsError, A.JsMap]); + _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, J.JSArray, A.NativeByteBuffer, A.NativeTypedData, 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]); - _inheritMany(A.Iterable, [A._CastIterableBase, A.EfficientLengthIterable, A.MappedIterable, A.WhereIterable, A.SkipIterable, A._KeysOrValues, A._AllMatchesIterable, A._StringAllMatchesIterable]); + _inheritMany(A.Iterable, [A._CastIterableBase, A.EfficientLengthIterable, A.MappedIterable, A.WhereIterable, A.TakeIterable, A.SkipIterable, A._KeysOrValues, A._AllMatchesIterable, A._StringAllMatchesIterable]); _inheritMany(A._CastIterableBase, [A.CastIterable, A.__CastListBase__CastIterableBase_ListMixin]); _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.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.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._launchCommunicationWithDebugExtension_closure, A._listenForDebugExtensionAuthRequest_closure, A.LegacyRestarter_restart_closure0, A.LegacyRestarter_restart_closure, A.toFuture_closure, A.RequireRestarter__reloadModule_closure]); - _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._JsonStringifier_writeMap_closure, A._BigIntImpl_hashCode_combine, A._symbolMapToStringMap_closure, A.NoSuchMethodError_toString_closure, 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.safeUnawaited_closure, A.Pool__runOnRelease_closure0, A.generateUuidV4__printDigits, A.generateUuidV4__bitsDigits, A.main__closure1, A.main_closure0, A.toPromise_closure]); + _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.SplayTreeSet_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A._createTables_setChars, A._createTables_setRange, A.Element_Element$html_closure, A.HttpRequest_request_closure0, A._EventStreamSubscription_closure0, A._EventStreamSubscription_onData_closure, A.NodeValidatorBuilder_allowsElement_closure, A.NodeValidatorBuilder_allowsAttribute_closure, A._SimpleNodeValidator_closure, A._SimpleNodeValidator_closure0, A._TemplatingNodeValidator_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.dartify_convert, 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.Pool__runOnRelease_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4_generateBits, A._GuaranteeSink__addError_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure0, A.HttpRequest_request_closure, A.HtmlWebSocketChannel_closure, A.HtmlWebSocketChannel_closure0, A.HtmlWebSocketChannel_closure1, A.HtmlWebSocketChannel_closure2, A.runClient_closure0, A.runClient_closure3, A.runClient_closure4, A.runClient_closure5, A.DebugExtensionConnection_launchCommunication_closure, A.DebugExtensionConnection__handleDebugExtensionAuthRequest_closure, A.DevHandlerConnection_sendConnectRequest_closure, A.DevHandlerConnection_sendRegisterEntrypointRequest_closure, A.DevHandlerConnection__sendBatchedDebugEvents_closure, A.DevHandlerConnection_sendDebugEvent_closure, A.DevHandlerConnection_sendRegisterEvent_closure, A.DevHandlerConnection_sendDevToolsRequest_closure, A.StringList_get_toDart_closure, A.LegacyRestarter_restart_closure0, A.LegacyRestarter_restart_closure, A.toFuture_closure, A.RequireRestarter__reloadModule_closure]); + _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._JsonStringifier_writeMap_closure, A._BigIntImpl_hashCode_combine, A._symbolMapToStringMap_closure, A.NoSuchMethodError_toString_closure, 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._AcceptStructuredClone_walk_closure, A.AudioParamMap_keys_closure, A.StreamQueue__ensureListening_closure1, A.hashObjects_closure, A.MapBuilder_replace_closure, A.safeUnawaited_closure, A.Pool__runOnRelease_closure0, A.generateUuidV4_printDigits, A.generateUuidV4_bitsDigits, A.main_closure0, A.runClient_closure, A.runClient_closure1, A.toPromise_closure]); _inherit(A.CastList, A._CastListBase); _inheritMany(A.MapBase, [A.CastMap, A.JsLinkedHashMap, A._HashMap, A._JsonMap, A._AttributeMap]); _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A._CyclicInitializationError, A.RuntimeError, A.AssertionError, A._Error, A.JsonUnsupportedObjectError, A.ArgumentError, A.NoSuchMethodError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError, A.BuiltValueNullFieldError, A.BuiltValueNestedFieldError, A.DeserializationError]); - _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A.Future_Future$microtask_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainForeignFuture_closure1, A._Future__chainCoreFutureAsync_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteError_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._Future_timeout_closure, A.Stream_length_closure0, A.Stream_first_closure, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._BufferingStreamSubscription_asFuture_closure, A._BufferingStreamSubscription_asFuture__closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._cancelAndValue_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A.StreamQueue__ensureListening_closure0, A.Serializers_Serializers_closure, A.Serializers_Serializers_closure0, A.Serializers_Serializers_closure1, A.Serializers_Serializers_closure2, A.Serializers_Serializers_closure3, A._$serializers_closure, A._$serializers_closure0, A.BatchedStreamController__hasEventOrTimeOut_closure, A.BatchedStreamController__hasEventDuring_closure, A.Logger_Logger_closure, A.SseClient_closure, A.SseClient__closure, A.SseClient__onOutgoingMessage_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A.HtmlWebSocketChannel__listen_closure, A.main_closure, A.main__closure3, A.RequireRestarter__reload_closure, A._createScript_closure, A._createScript__closure]); + _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A.Future_Future$microtask_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainForeignFuture_closure1, A._Future__chainCoreFutureAsync_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteError_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A._Future_timeout_closure, A.Stream_length_closure0, A.Stream_first_closure, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._BufferingStreamSubscription_asFuture_closure, A._BufferingStreamSubscription_asFuture__closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._cancelAndValue_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A.StreamQueue__ensureListening_closure0, A.Serializers_Serializers_closure, A.Serializers_Serializers_closure0, A.Serializers_Serializers_closure1, A.Serializers_Serializers_closure2, A.Serializers_Serializers_closure3, A._$serializers_closure, A._$serializers_closure0, A._$serializers_closure1, A.BatchedStreamController__hasEventOrTimeOut_closure, A.BatchedStreamController__hasEventDuring_closure, A.Logger_Logger_closure, A.SseClient_closure, A.SseClient__closure, A.SseClient__onOutgoingMessage_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A.HtmlWebSocketChannel__listen_closure, A.main_closure, A.runClient_closure2, A.RequireRestarter__reload_closure, A._createScript_closure, A._createScript__closure]); _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeyIterable, A._HashMapKeyIterable]); _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A.ReversedListIterable, A.ListQueue, A._JsonMapKeyIterable]); _inherit(A.EfficientLengthMappedIterable, A.MappedIterable); + _inherit(A.EfficientLengthTakeIterable, A.TakeIterable); _inherit(A.EfficientLengthSkipIterable, A.SkipIterable); _inheritMany(A.ListBase, [A.UnmodifiableListBase, A._FrozenElementList, A._ChildNodeListLazy]); _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView); @@ -26472,10 +26761,10 @@ _inherit(A.NativeTypedArrayOfInt, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin); _inheritMany(A.NativeTypedArrayOfDouble, [A.NativeFloat32List, A.NativeFloat64List]); _inheritMany(A.NativeTypedArrayOfInt, [A.NativeInt16List, A.NativeInt32List, A.NativeInt8List, A.NativeUint16List, A.NativeUint32List, A.NativeUint8ClampedList, A.NativeUint8List]); - _inheritMany(A._Error, [A._TypeError, A._InconsistentSubtypingError]); + _inherit(A._TypeError, A._Error); _inheritMany(A._Completer, [A._AsyncCompleter, A._SyncCompleter]); _inheritMany(A._StreamController, [A._AsyncStreamController, A._SyncStreamController]); - _inheritMany(A.Stream, [A._StreamImpl, A._ForwardingStream, A._EventStream]); + _inheritMany(A.Stream, [A._StreamImpl, A._ForwardingStream, A._EventStream0, A._EventStream]); _inherit(A._ControllerStream, A._StreamImpl); _inheritMany(A._BufferingStreamSubscription, [A._ControllerSubscription, A._ForwardingStreamSubscription]); _inheritMany(A._DelayedEvent, [A._DelayedData, A._DelayedError]); @@ -26497,11 +26786,11 @@ _inherit(A.Utf8Codec, A.Encoding); _inheritMany(A.ArgumentError, [A.RangeError, A.IndexError]); _inherit(A._DataUri, A._Uri); - _inheritMany(A.EventTarget, [A.Node, A.EventSource, A.FileWriter, A.HttpRequestEventTarget, A.MessagePort, A.SourceBuffer, A._SourceBufferList_EventTarget_ListMixin, A.TextTrack, A.TextTrackCue, A._TextTrackList_EventTarget_ListMixin, A.VideoTrackList, A.WebSocket, A.Window, A.WorkerGlobalScope, A.AudioTrackList, A.BaseAudioContext]); + _inheritMany(A.EventTarget, [A.Node, A.FileWriter, A.HttpRequestEventTarget, A.SourceBuffer, A._SourceBufferList_EventTarget_ListMixin, A.TextTrack, A.TextTrackCue, A._TextTrackList_EventTarget_ListMixin, A.VideoTrackList, A.WebSocket, A.Window, A.WorkerGlobalScope, A.AudioTrackList, A.BaseAudioContext]); _inheritMany(A.Node, [A.Element, A.CharacterData, A.Document, A._Attr]); _inheritMany(A.Element, [A.HtmlElement, A.SvgElement]); _inheritMany(A.HtmlElement, [A.AnchorElement, A.AreaElement, A.BaseElement, A.BodyElement, A.FormElement, A.ScriptElement, A.SelectElement, A.TableElement, A.TableRowElement, A.TableSectionElement, A.TemplateElement]); - _inheritMany(A.Event, [A.CloseEvent, A.CustomEvent, A.UIEvent, A.MessageEvent, A.ProgressEvent]); + _inheritMany(A.Event, [A.CloseEvent, A.MessageEvent, A.ProgressEvent]); _inherit(A.CssPerspective, A.CssTransformComponent); _inherit(A.CssStyleDeclaration, A._CssStyleDeclaration_JavaScriptObject_CssStyleDeclarationBase); _inheritMany(A.CssStyleValue, [A.CssTransformValue, A.CssUnparsedValue]); @@ -26516,7 +26805,6 @@ _inherit(A.HtmlCollection, A._HtmlCollection_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A.HtmlDocument, A.Document); _inherit(A.HttpRequest, A.HttpRequestEventTarget); - _inherit(A.KeyboardEvent, A.UIEvent); _inherit(A.MidiInputMap, A._MidiInputMap_JavaScriptObject_MapMixin); _inherit(A.MidiOutputMap, A._MidiOutputMap_JavaScriptObject_MapMixin); _inherit(A._MimeTypeArray_JavaScriptObject_ListMixin_ImmutableListMixin, A._MimeTypeArray_JavaScriptObject_ListMixin); @@ -26550,7 +26838,6 @@ _inherit(A._StyleSheetList, A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin); _inherit(A._ElementAttributeMap, A._AttributeMap); _inherit(A._TemplatingNodeValidator, A._SimpleNodeValidator); - _inherit(A._StructuredCloneDart2Js, A._StructuredClone); _inherit(A._AcceptStructuredCloneDart2Js, A._AcceptStructuredClone); _inheritMany(A.JsObject, [A.JsFunction, A._JsArray_JsObject_ListMixin]); _inherit(A.JsArray, A._JsArray_JsObject_ListMixin); @@ -26589,6 +26876,7 @@ _inherit(A._$BatchedEvents, A.BatchedEvents); _inherit(A._$IsolateExit, A.IsolateExit); _inherit(A._$IsolateStart, A.IsolateStart); + _inherit(A._$RegisterEntrypointRequest, A.RegisterEntrypointRequest); _inherit(A._$RegisterEvent, A.RegisterEvent); _inherit(A._$RunRequest, A.RunRequest); _inheritMany(A.SocketClient, [A.SseSocketClient, A.WebSocketClient]); @@ -26658,14 +26946,14 @@ })(); var init = { typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []}, - mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List"}, + mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List", Object: "Object", Map: "Map"}, mangledNames: {}, - types: ["~()", "@(@)", "Object?(@)", "~(@)", "~(Event)", "Null()", "~(String,@)", "Null(@)", "Null(Object,StackTrace)", "~(@,@)", "~(~())", "~(Object,StackTrace)", "bool(Object?,Object?)", "int(Object?)", "ScriptElement()", "~(String,String)", "~(Object?)", "~(@,StackTrace)", "bool(@)", "~(Object?,Object?)", "int(int,int)", "int(int)", "~(Symbol0,@)", "String(String)", "~(Uint8List,String,int)", "Future()", "bool(NodeValidator)", "bool(String)", "int(@,@)", "String(int,int)", "bool(Element,String,String,_Html5NodeValidator)", "bool()", "~(Object[StackTrace?])", "~(String)", "Object?(Object?)", "~(MessageEvent)", "Null(Event)", "~(Node,Node?)", "Null(@,@)", "@(@,@)", "@(Object?)", "JsFunction(@)", "JsArray<@>(@)", "JsObject(@)", "int(int,@)", "IndentingBuiltValueToStringHelper(String)", "ListBuilder()", "ListMultimapBuilder()", "MapBuilder()", "_Future<@>(@)", "SetMultimapBuilder()", "~(int,@)", "Null(@,StackTrace)", "~(ProgressEvent)", "~([Object?])", "bool(Object?)", "ListBuilder()", "ListBuilder()", "bool(Node)", "String(@)", "Logger()", "~(String?)", "Uint8List(@,@)", "~(String,int?)", "~(String,int)", "Null(~())", "Future<~>()", "Promise<1&>(String)", "~(List)", "ListBuilder(BatchedDebugEventsBuilder)", "DebugEventBuilder(DebugEventBuilder)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "RegisterEventBuilder(RegisterEventBuilder)", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "Future<~>(String)", "ConnectRequestBuilder(ConnectRequestBuilder)", "DebugInfoBuilder(DebugInfoBuilder)", "Future(Event)", "bool(bool)", "List(String)", "int(String,String)", "~(JsError)", "ScriptElement()()", "Null(CloseEvent)", "@(@,String)", "@(String)", "~(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?)", "SetBuilder()"], + types: ["~()", "~(JavaScriptObject)", "@(@)", "Object?(@)", "Null()", "~(@)", "~(String,@)", "Null(@)", "Null(Object,StackTrace)", "~(~())", "~(Object,StackTrace)", "~(String,String)", "Object?(Object?)", "bool(Object?,Object?)", "int(Object?)", "~(Event)", "~(@,StackTrace)", "bool(@)", "~(@,@)", "~(Object?,Object?)", "int(int,int)", "int(int)", "~(Symbol0,@)", "String(String)", "~(Uint8List,String,int)", "Future()", "bool(NodeValidator)", "bool(String)", "ScriptElement()", "Null(Event)", "int(@,@)", "String(int,int)", "bool()", "~(Object[StackTrace?])", "~(String)", "bool(Element,String,String,_Html5NodeValidator)", "~(MessageEvent)", "~(Object?)", "@(@,@)", "@(Object?)", "JsFunction(@)", "JsArray<@>(@)", "JsObject(@)", "~(int,@)", "int(int,@)", "IndentingBuiltValueToStringHelper(String)", "ListBuilder()", "ListMultimapBuilder()", "MapBuilder()", "SetBuilder()", "SetMultimapBuilder()", "~(Node,Node?)", "Null(@,StackTrace)", "~([Object?])", "bool(Object?)", "ListBuilder()", "ListBuilder()", "ListBuilder()", "~(ProgressEvent)", "String(@)", "Logger()", "@(String)", "~(String?)", "bool(Node)", "Uint8List(@,@)", "~(String,int?)", "Null(CloseEvent)", "Future<~>()", "~(String,int)", "Future<~>(String)", "DebugInfoBuilder(DebugInfoBuilder)", "~(bool)", "~(List)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "ConnectRequestBuilder(ConnectRequestBuilder)", "RegisterEntrypointRequestBuilder(RegisterEntrypointRequestBuilder)", "ListBuilder(BatchedDebugEventsBuilder)", "DebugEventBuilder(DebugEventBuilder)", "RegisterEventBuilder(RegisterEventBuilder)", "DevToolsRequestBuilder(DevToolsRequestBuilder)", "String(Object?)", "bool(bool)", "List(String)", "int(String,String)", "~(JsError)", "ScriptElement()()", "Null(~())", "_Future<@>(@)", "@(@,String)", "~(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?)", "Promise<1&>(String)"], interceptorsByTag: null, leafTags: null, arrayRti: Symbol("$ti") }; - A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","_FetchOptions":"LegacyJavaScriptObject","Promise":"LegacyJavaScriptObject","JsError":"LegacyJavaScriptObject","RequireLoader":"LegacyJavaScriptObject","JsMap":"LegacyJavaScriptObject","KeyframeEffect":"JavaScriptObject","KeyframeEffectReadOnly":"JavaScriptObject","AnimationEffectReadOnly":"JavaScriptObject","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","CssMatrixComponent":"CssTransformComponent","CssStyleSheet":"StyleSheet","CssurlImageValue":"CssStyleValue","CssImageValue":"CssStyleValue","CssResourceValue":"CssStyleValue","JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"JavaScriptObject":{"JSObject":[]},"LegacyJavaScriptObject":{"JSObject":[],"Promise":["1&"],"JsError":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"Iterable.E":"1"},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"Iterable.E":"1"},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[],"TrustedGetRuntimeType":[]},"_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":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"CastMap":{"MapBase":["3","4"],"Map":["3","4"],"MapBase.K":"3","MapBase.V":"4"},"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":{"ListBase":["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"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Function":[]},"Closure2Args":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"_CyclicInitializationError":{"Error":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.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":{"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JSObject":[],"TypedData":[]},"NativeByteData":{"NativeTypedData":[],"JSObject":[],"TypedData":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"NativeTypedData":[],"JavaScriptIndexingBehavior":["1"],"JSObject":[],"TypedData":[]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"List":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"ListBase":["double"],"List":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double"},"NativeFloat64List":{"ListBase":["double"],"List":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double"},"NativeInt16List":{"ListBase":["int"],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeInt32List":{"ListBase":["int"],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeInt8List":{"ListBase":["int"],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint16List":{"ListBase":["int"],"Uint16List":[],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint32List":{"ListBase":["int"],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint8ClampedList":{"ListBase":["int"],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint8List":{"ListBase":["int"],"Uint8List":[],"List":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"_InconsistentSubtypingError":{"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"]},"_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.1":"_SplayTreeSetNode<1>","_SplayTreeNode.K":"1"},"_HashMap":{"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_HashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1","UnmodifiableListMixin.E":"1"},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"Queue":["1"],"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1","_SplayTreeIterator.1":"2"},"SplayTreeSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"Iterable.E":"1","_SplayTree.1":"_SplayTreeSetNode<1>","_SplayTree.K":"1"},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.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"]},"Base64Decoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"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":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"IntegerDivisionByZeroException":{"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"CloseEvent":{"Event":[],"JSObject":[]},"CssRule":{"JSObject":[]},"Element":{"Node":[],"EventTarget":[],"JSObject":[]},"Event":{"JSObject":[]},"File":{"Blob":[],"JSObject":[]},"Gamepad":{"JSObject":[]},"HttpRequest":{"EventTarget":[],"JSObject":[]},"KeyboardEvent":{"Event":[],"JSObject":[]},"MessageEvent":{"Event":[],"JSObject":[]},"MimeType":{"JSObject":[]},"Node":{"EventTarget":[],"JSObject":[]},"Plugin":{"JSObject":[]},"ProgressEvent":{"Event":[],"JSObject":[]},"ScriptElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"SourceBuffer":{"EventTarget":[],"JSObject":[]},"SpeechGrammar":{"JSObject":[]},"SpeechRecognitionResult":{"JSObject":[]},"StyleSheet":{"JSObject":[]},"TextTrack":{"EventTarget":[],"JSObject":[]},"TextTrackCue":{"EventTarget":[],"JSObject":[]},"Touch":{"JSObject":[]},"_Html5NodeValidator":{"NodeValidator":[]},"HtmlElement":{"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"AccessibleNodeList":{"JSObject":[]},"AnchorElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"AreaElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"BaseElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"Blob":{"JSObject":[]},"BodyElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"CharacterData":{"Node":[],"EventTarget":[],"JSObject":[]},"CssPerspective":{"JSObject":[]},"CssStyleDeclaration":{"JSObject":[]},"CssStyleValue":{"JSObject":[]},"CssTransformComponent":{"JSObject":[]},"CssTransformValue":{"JSObject":[]},"CssUnparsedValue":{"JSObject":[]},"CustomEvent":{"Event":[],"JSObject":[]},"DataTransferItemList":{"JSObject":[]},"Document":{"Node":[],"EventTarget":[],"JSObject":[]},"DomException":{"JSObject":[]},"DomImplementation":{"JSObject":[]},"DomRectList":{"ListBase":["Rectangle"],"ImmutableListMixin":["Rectangle"],"List":["Rectangle"],"JavaScriptIndexingBehavior":["Rectangle"],"EfficientLengthIterable":["Rectangle"],"JSObject":[],"Iterable":["Rectangle"],"ImmutableListMixin.E":"Rectangle","ListBase.E":"Rectangle","Iterable.E":"Rectangle"},"DomRectReadOnly":{"Rectangle":["num"],"JSObject":[]},"DomStringList":{"ListBase":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListBase.E":"String","Iterable.E":"String"},"DomTokenList":{"JSObject":[]},"_FrozenElementList":{"ListBase":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1"},"EventSource":{"EventTarget":[],"JSObject":[]},"EventTarget":{"JSObject":[]},"FileList":{"ListBase":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"JSObject":[],"Iterable":["File"],"ImmutableListMixin.E":"File","ListBase.E":"File","Iterable.E":"File"},"FileWriter":{"EventTarget":[],"JSObject":[]},"FormElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"History":{"JSObject":[]},"HtmlCollection":{"ListBase":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListBase.E":"Node","Iterable.E":"Node"},"HtmlDocument":{"Document":[],"Node":[],"EventTarget":[],"JSObject":[]},"HttpRequestEventTarget":{"EventTarget":[],"JSObject":[]},"ImageData":{"JSObject":[]},"Location":{"JSObject":[]},"MediaList":{"JSObject":[]},"MessagePort":{"EventTarget":[],"JSObject":[]},"MidiInputMap":{"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"MidiOutputMap":{"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"MimeTypeArray":{"ListBase":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"JSObject":[],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListBase.E":"MimeType","Iterable.E":"MimeType"},"_ChildNodeListLazy":{"ListBase":["Node"],"List":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ListBase.E":"Node","Iterable.E":"Node"},"NodeList":{"ListBase":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListBase.E":"Node","Iterable.E":"Node"},"PluginArray":{"ListBase":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"JSObject":[],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListBase.E":"Plugin","Iterable.E":"Plugin"},"RtcStatsReport":{"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"SelectElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"SharedArrayBuffer":{"JSObject":[]},"SourceBufferList":{"ListBase":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"List":["SourceBuffer"],"EventTarget":[],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"JSObject":[],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListBase.E":"SourceBuffer","Iterable.E":"SourceBuffer"},"SpeechGrammarList":{"ListBase":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"JSObject":[],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListBase.E":"SpeechGrammar","Iterable.E":"SpeechGrammar"},"Storage":{"MapBase":["String","String"],"JSObject":[],"Map":["String","String"],"MapBase.K":"String","MapBase.V":"String"},"TableElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TableRowElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TableSectionElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TemplateElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TextTrackCueList":{"ListBase":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"JSObject":[],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListBase.E":"TextTrackCue","Iterable.E":"TextTrackCue"},"TextTrackList":{"ListBase":["TextTrack"],"ImmutableListMixin":["TextTrack"],"List":["TextTrack"],"EventTarget":[],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"JSObject":[],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListBase.E":"TextTrack","Iterable.E":"TextTrack"},"TimeRanges":{"JSObject":[]},"TouchList":{"ListBase":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"JSObject":[],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListBase.E":"Touch","Iterable.E":"Touch"},"TrackDefaultList":{"JSObject":[]},"UIEvent":{"Event":[],"JSObject":[]},"Url":{"JSObject":[]},"VideoTrackList":{"EventTarget":[],"JSObject":[]},"WebSocket":{"EventTarget":[],"JSObject":[]},"Window":{"WindowBase":[],"EventTarget":[],"JSObject":[]},"WorkerGlobalScope":{"EventTarget":[],"JSObject":[]},"_Attr":{"Node":[],"EventTarget":[],"JSObject":[]},"_CssRuleList":{"ListBase":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"JSObject":[],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListBase.E":"CssRule","Iterable.E":"CssRule"},"_DomRect":{"Rectangle":["num"],"JSObject":[]},"_GamepadList":{"ListBase":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"JSObject":[],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListBase.E":"Gamepad?","Iterable.E":"Gamepad?"},"_NamedNodeMap":{"ListBase":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListBase.E":"Node","Iterable.E":"Node"},"_SpeechRecognitionResultList":{"ListBase":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"JSObject":[],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListBase.E":"SpeechRecognitionResult","Iterable.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListBase":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"JSObject":[],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListBase.E":"StyleSheet","Iterable.E":"StyleSheet"},"_AttributeMap":{"MapBase":["String","String"],"Map":["String","String"]},"_ElementAttributeMap":{"MapBase":["String","String"],"Map":["String","String"],"MapBase.K":"String","MapBase.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":[],"JSObject":[]},"_SameOriginUriPolicy":{"UriPolicy":[]},"_ValidatingTreeSanitizer":{"NodeTreeSanitizer":[]},"KeyRange":{"JSObject":[]},"JsFunction":{"JsObject":[]},"JsArray":{"ListBase":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JsObject":[],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1"},"Length":{"JSObject":[]},"Number":{"JSObject":[]},"Transform":{"JSObject":[]},"LengthList":{"ListBase":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"JSObject":[],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListBase.E":"Length","Iterable.E":"Length"},"NumberList":{"ListBase":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"JSObject":[],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListBase.E":"Number","Iterable.E":"Number"},"PointList":{"JSObject":[]},"ScriptElement0":{"SvgElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"StringList":{"ListBase":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListBase.E":"String","Iterable.E":"String"},"SvgElement":{"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TransformList":{"ListBase":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"JSObject":[],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListBase.E":"Transform","Iterable.E":"Transform"},"AudioBuffer":{"JSObject":[]},"AudioParamMap":{"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"AudioTrackList":{"EventTarget":[],"JSObject":[]},"BaseAudioContext":{"EventTarget":[],"JSObject":[]},"OfflineAudioContext":{"EventTarget":[],"JSObject":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"],"Iterable.E":"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"]},"Uint8ListSerializer":{"PrimitiveSerializer":["Uint8List"],"Serializer":["Uint8List"]},"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":{"ListBase":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","QueueList.E":"1","Iterable.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListBase":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","QueueList.E":"2","Iterable.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_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","Promise":"LegacyJavaScriptObject","JsError":"LegacyJavaScriptObject","RequireLoader":"LegacyJavaScriptObject","JsMap":"LegacyJavaScriptObject","KeyframeEffect":"JavaScriptObject","KeyframeEffectReadOnly":"JavaScriptObject","AnimationEffectReadOnly":"JavaScriptObject","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","DedicatedWorkerGlobalScope":"WorkerGlobalScope","CDataSection":"CharacterData","Text":"CharacterData","MathMLElement":"Element","HttpRequestUpload":"HttpRequestEventTarget","HtmlFormControlsCollection":"HtmlCollection","CssCharsetRule":"CssRule","CssMatrixComponent":"CssTransformComponent","CssStyleSheet":"StyleSheet","CssurlImageValue":"CssStyleValue","CssImageValue":"CssStyleValue","CssResourceValue":"CssStyleValue","JavaScriptObject":{"JSObject":[]},"JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"LegacyJavaScriptObject":{"JavaScriptObject":[],"JSObject":[],"Promise":["1&"],"JsError":[]},"JSArray":{"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"Iterable.E":"1"},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"],"Iterable.E":"1"},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[],"TrustedGetRuntimeType":[]},"_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":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"CastMap":{"MapBase":["3","4"],"Map":["3","4"],"MapBase.K":"3","MapBase.V":"4"},"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"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"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":{"ListBase":["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"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Function":[]},"Closure2Args":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"_CyclicInitializationError":{"Error":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.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":{"JavaScriptObject":[],"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JavaScriptObject":[],"JSObject":[],"TypedData":[]},"NativeByteData":{"JavaScriptObject":[],"JSObject":[],"TypedData":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JavaScriptObject":[],"JSObject":[],"TypedData":[]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"ListBase":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double"},"NativeFloat64List":{"ListBase":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double","Iterable.E":"double"},"NativeInt16List":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeInt32List":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeInt8List":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint16List":{"ListBase":["int"],"Uint16List":[],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint32List":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint8ClampedList":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.E":"int"},"NativeUint8List":{"ListBase":["int"],"Uint8List":[],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int","Iterable.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"]},"_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.1":"_SplayTreeSetNode<1>","_SplayTreeNode.K":"1"},"_HashMap":{"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_HashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1","UnmodifiableListMixin.E":"1"},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"Queue":["1"],"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1","_SplayTreeIterator.1":"2"},"SplayTreeSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"Iterable.E":"1","_SplayTree.1":"_SplayTreeSetNode<1>","_SplayTree.K":"1"},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.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"]},"Base64Decoder":{"Converter":["String","List"],"StreamTransformer":["String","List"]},"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":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"IntegerDivisionByZeroException":{"Error":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"CloseEvent":{"Event":[],"JavaScriptObject":[],"JSObject":[]},"CssRule":{"JavaScriptObject":[],"JSObject":[]},"Element":{"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"Event":{"JavaScriptObject":[],"JSObject":[]},"File":{"Blob":[],"JavaScriptObject":[],"JSObject":[]},"Gamepad":{"JavaScriptObject":[],"JSObject":[]},"HttpRequest":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"MessageEvent":{"Event":[],"JavaScriptObject":[],"JSObject":[]},"MimeType":{"JavaScriptObject":[],"JSObject":[]},"Node":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"Plugin":{"JavaScriptObject":[],"JSObject":[]},"ProgressEvent":{"Event":[],"JavaScriptObject":[],"JSObject":[]},"ScriptElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"SourceBuffer":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"SpeechGrammar":{"JavaScriptObject":[],"JSObject":[]},"SpeechRecognitionResult":{"JavaScriptObject":[],"JSObject":[]},"StyleSheet":{"JavaScriptObject":[],"JSObject":[]},"TextTrack":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"TextTrackCue":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"Touch":{"JavaScriptObject":[],"JSObject":[]},"_Html5NodeValidator":{"NodeValidator":[]},"HtmlElement":{"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"AccessibleNodeList":{"JavaScriptObject":[],"JSObject":[]},"AnchorElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"AreaElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"BaseElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"Blob":{"JavaScriptObject":[],"JSObject":[]},"BodyElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"CharacterData":{"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"CssPerspective":{"JavaScriptObject":[],"JSObject":[]},"CssStyleDeclaration":{"JavaScriptObject":[],"JSObject":[]},"CssStyleValue":{"JavaScriptObject":[],"JSObject":[]},"CssTransformComponent":{"JavaScriptObject":[],"JSObject":[]},"CssTransformValue":{"JavaScriptObject":[],"JSObject":[]},"CssUnparsedValue":{"JavaScriptObject":[],"JSObject":[]},"DataTransferItemList":{"JavaScriptObject":[],"JSObject":[]},"Document":{"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"DomException":{"JavaScriptObject":[],"JSObject":[]},"DomImplementation":{"JavaScriptObject":[],"JSObject":[]},"DomRectList":{"ListBase":["Rectangle"],"ImmutableListMixin":["Rectangle"],"List":["Rectangle"],"JavaScriptIndexingBehavior":["Rectangle"],"JavaScriptObject":[],"EfficientLengthIterable":["Rectangle"],"JSObject":[],"Iterable":["Rectangle"],"ImmutableListMixin.E":"Rectangle","ListBase.E":"Rectangle","Iterable.E":"Rectangle"},"DomRectReadOnly":{"JavaScriptObject":[],"Rectangle":["num"],"JSObject":[]},"DomStringList":{"ListBase":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"JavaScriptObject":[],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListBase.E":"String","Iterable.E":"String"},"DomTokenList":{"JavaScriptObject":[],"JSObject":[]},"_FrozenElementList":{"ListBase":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1"},"EventTarget":{"JavaScriptObject":[],"JSObject":[]},"FileList":{"ListBase":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"JavaScriptObject":[],"EfficientLengthIterable":["File"],"JSObject":[],"Iterable":["File"],"ImmutableListMixin.E":"File","ListBase.E":"File","Iterable.E":"File"},"FileWriter":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"FormElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"History":{"JavaScriptObject":[],"JSObject":[]},"HtmlCollection":{"ListBase":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"JavaScriptObject":[],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListBase.E":"Node","Iterable.E":"Node"},"HtmlDocument":{"Document":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"HttpRequestEventTarget":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"ImageData":{"JavaScriptObject":[],"JSObject":[]},"Location":{"JavaScriptObject":[],"JSObject":[]},"MediaList":{"JavaScriptObject":[],"JSObject":[]},"MidiInputMap":{"JavaScriptObject":[],"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"MidiOutputMap":{"JavaScriptObject":[],"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"MimeTypeArray":{"ListBase":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"JavaScriptObject":[],"EfficientLengthIterable":["MimeType"],"JSObject":[],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListBase.E":"MimeType","Iterable.E":"MimeType"},"_ChildNodeListLazy":{"ListBase":["Node"],"List":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ListBase.E":"Node","Iterable.E":"Node"},"NodeList":{"ListBase":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"JavaScriptObject":[],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListBase.E":"Node","Iterable.E":"Node"},"PluginArray":{"ListBase":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"JavaScriptObject":[],"EfficientLengthIterable":["Plugin"],"JSObject":[],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListBase.E":"Plugin","Iterable.E":"Plugin"},"RtcStatsReport":{"JavaScriptObject":[],"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"SelectElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"SourceBufferList":{"ListBase":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"List":["SourceBuffer"],"EventTarget":[],"JavaScriptIndexingBehavior":["SourceBuffer"],"JavaScriptObject":[],"EfficientLengthIterable":["SourceBuffer"],"JSObject":[],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListBase.E":"SourceBuffer","Iterable.E":"SourceBuffer"},"SpeechGrammarList":{"ListBase":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"JavaScriptObject":[],"EfficientLengthIterable":["SpeechGrammar"],"JSObject":[],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListBase.E":"SpeechGrammar","Iterable.E":"SpeechGrammar"},"Storage":{"JavaScriptObject":[],"MapBase":["String","String"],"JSObject":[],"Map":["String","String"],"MapBase.K":"String","MapBase.V":"String"},"TableElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"TableRowElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"TableSectionElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"TemplateElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"TextTrackCueList":{"ListBase":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"JavaScriptObject":[],"EfficientLengthIterable":["TextTrackCue"],"JSObject":[],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListBase.E":"TextTrackCue","Iterable.E":"TextTrackCue"},"TextTrackList":{"ListBase":["TextTrack"],"ImmutableListMixin":["TextTrack"],"List":["TextTrack"],"EventTarget":[],"JavaScriptIndexingBehavior":["TextTrack"],"JavaScriptObject":[],"EfficientLengthIterable":["TextTrack"],"JSObject":[],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListBase.E":"TextTrack","Iterable.E":"TextTrack"},"TimeRanges":{"JavaScriptObject":[],"JSObject":[]},"TouchList":{"ListBase":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"JavaScriptObject":[],"EfficientLengthIterable":["Touch"],"JSObject":[],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListBase.E":"Touch","Iterable.E":"Touch"},"TrackDefaultList":{"JavaScriptObject":[],"JSObject":[]},"Url":{"JavaScriptObject":[],"JSObject":[]},"VideoTrackList":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"WebSocket":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"Window":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"WorkerGlobalScope":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"_Attr":{"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"_CssRuleList":{"ListBase":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"JavaScriptObject":[],"EfficientLengthIterable":["CssRule"],"JSObject":[],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListBase.E":"CssRule","Iterable.E":"CssRule"},"_DomRect":{"JavaScriptObject":[],"Rectangle":["num"],"JSObject":[]},"_GamepadList":{"ListBase":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"JavaScriptObject":[],"EfficientLengthIterable":["Gamepad?"],"JSObject":[],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListBase.E":"Gamepad?","Iterable.E":"Gamepad?"},"_NamedNodeMap":{"ListBase":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"JavaScriptObject":[],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListBase.E":"Node","Iterable.E":"Node"},"_SpeechRecognitionResultList":{"ListBase":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"JavaScriptObject":[],"EfficientLengthIterable":["SpeechRecognitionResult"],"JSObject":[],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListBase.E":"SpeechRecognitionResult","Iterable.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListBase":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"JavaScriptObject":[],"EfficientLengthIterable":["StyleSheet"],"JSObject":[],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListBase.E":"StyleSheet","Iterable.E":"StyleSheet"},"_AttributeMap":{"MapBase":["String","String"],"Map":["String","String"]},"_ElementAttributeMap":{"MapBase":["String","String"],"Map":["String","String"],"MapBase.K":"String","MapBase.V":"String"},"_EventStream0":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription0":{"StreamSubscription":["1"]},"NodeValidatorBuilder":{"NodeValidator":[]},"_SimpleNodeValidator":{"NodeValidator":[]},"_TemplatingNodeValidator":{"NodeValidator":[]},"_SvgNodeValidator":{"NodeValidator":[]},"FixedSizeListIterator":{"Iterator":["1"]},"_SameOriginUriPolicy":{"UriPolicy":[]},"_ValidatingTreeSanitizer":{"NodeTreeSanitizer":[]},"KeyRange":{"JavaScriptObject":[],"JSObject":[]},"JsFunction":{"JsObject":[]},"JsArray":{"ListBase":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JsObject":[],"Iterable":["1"],"ListBase.E":"1","Iterable.E":"1"},"Length":{"JavaScriptObject":[],"JSObject":[]},"Number":{"JavaScriptObject":[],"JSObject":[]},"Transform":{"JavaScriptObject":[],"JSObject":[]},"LengthList":{"ListBase":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"JavaScriptObject":[],"EfficientLengthIterable":["Length"],"JSObject":[],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListBase.E":"Length","Iterable.E":"Length"},"NumberList":{"ListBase":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"JavaScriptObject":[],"EfficientLengthIterable":["Number"],"JSObject":[],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListBase.E":"Number","Iterable.E":"Number"},"PointList":{"JavaScriptObject":[],"JSObject":[]},"ScriptElement0":{"SvgElement":[],"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"StringList":{"ListBase":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptObject":[],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListBase.E":"String","Iterable.E":"String"},"SvgElement":{"Element":[],"Node":[],"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"TransformList":{"ListBase":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"JavaScriptObject":[],"EfficientLengthIterable":["Transform"],"JSObject":[],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListBase.E":"Transform","Iterable.E":"Transform"},"AudioBuffer":{"JavaScriptObject":[],"JSObject":[]},"AudioParamMap":{"JavaScriptObject":[],"MapBase":["String","@"],"JSObject":[],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"AudioTrackList":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"BaseAudioContext":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"OfflineAudioContext":{"EventTarget":[],"JavaScriptObject":[],"JSObject":[]},"DelegatingStreamSink":{"StreamSink":["1"]},"ErrorResult":{"Result":["0&"]},"ValueResult":{"Result":["1"]},"_NextRequest":{"_EventRequest":["1"]},"_HasNextRequest":{"_EventRequest":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"],"Iterable.E":"1"},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"],"Iterable.E":"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"]},"Int32Serializer":{"PrimitiveSerializer":["Int32"],"Serializer":["Int32"]},"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"]},"Uint8ListSerializer":{"PrimitiveSerializer":["Uint8List"],"Serializer":["Uint8List"]},"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":{"ListBase":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListBase.E":"1","QueueList.E":"1","Iterable.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListBase":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","QueueList.E":"2","Iterable.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":[]},"_$RegisterEntrypointRequestSerializer":{"StructuredSerializer":["RegisterEntrypointRequest"],"Serializer":["RegisterEntrypointRequest"]},"_$RegisterEntrypointRequest":{"RegisterEntrypointRequest":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int32":{"Comparable":["Object"]},"Int64":{"Comparable":["Object"]},"Level":{"Comparable":["Level"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["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,"_DelayedEvent":1,"_SplayTreeSet__SplayTree_Iterable":1,"_SplayTreeSet__SplayTree_Iterable_SetMixin":1,"MapEntry":2,"_JsArray_JsObject_ListMixin":1,"_QueueList_Object_ListMixin":1,"StreamChannelMixin":1}')); var string$ = { ABCDEF: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", @@ -26690,6 +26978,7 @@ BuiltListMultimap_dynamic_dynamic: findType("BuiltListMultimap<@,@>"), BuiltList_DebugEvent: findType("BuiltList"), BuiltList_ExtensionEvent: findType("BuiltList"), + BuiltList_String: findType("BuiltList"), BuiltList_dynamic: findType("BuiltList<@>"), BuiltList_nullable_Object: findType("BuiltList"), BuiltMap_dynamic_dynamic: findType("BuiltMap<@,@>"), @@ -26702,7 +26991,6 @@ ConnectRequest: findType("ConnectRequest"), ConstantMapView_Symbol_dynamic: findType("ConstantMapView"), CssRule: findType("CssRule"), - CustomEvent: findType("CustomEvent"), DateTime: findType("DateTime"), DebugEvent: findType("DebugEvent"), DebugInfo: findType("DebugInfo"), @@ -26719,13 +27007,13 @@ ExtensionRequest: findType("ExtensionRequest"), ExtensionResponse: findType("ExtensionResponse"), File: findType("File"), - FileList: findType("FileList"), FullType: findType("FullType"), Function: findType("Function"), Future_dynamic: findType("Future<@>"), Future_void: findType("Future<~>"), HtmlElement: findType("HtmlElement"), ImageData: findType("ImageData"), + Int32: findType("Int32"), Int64: findType("Int64"), Invocation: findType("Invocation"), IsolateExit: findType("IsolateExit"), @@ -26745,6 +27033,7 @@ JSObject: findType("JSObject"), JavaScriptFunction: findType("JavaScriptFunction"), JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"), + JavaScriptObject: findType("JavaScriptObject"), JsArray_dynamic: findType("JsArray<@>"), JsError: findType("JsError"), JsLinkedHashMap_String_dynamic: findType("JsLinkedHashMap"), @@ -26752,11 +27041,11 @@ JsObject: findType("JsObject"), JsonObject: findType("JsonObject"), KeyRange: findType("KeyRange"), - KeyboardEvent: findType("KeyboardEvent"), Length: findType("Length"), Level: findType("Level"), ListBuilder_DebugEvent: findType("ListBuilder"), ListBuilder_ExtensionEvent: findType("ListBuilder"), + ListBuilder_String: findType("ListBuilder"), ListBuilder_dynamic: findType("ListBuilder<@>"), ListEquality_dynamic: findType("ListEquality<@>"), ListMultimapBuilder_dynamic_dynamic: findType("ListMultimapBuilder<@,@>"), @@ -26775,16 +27064,14 @@ Map_of_String_and_nullable_Object: findType("Map"), MappedListIterable_String_String: findType("MappedListIterable"), MessageEvent: findType("MessageEvent"), - MessagePort: findType("MessagePort"), MimeType: findType("MimeType"), - NativeByteBuffer: findType("NativeByteBuffer"), - NativeTypedData: findType("NativeTypedData"), NativeUint8List: findType("NativeUint8List"), Node: findType("Node"), NodeValidator: findType("NodeValidator"), Null: findType("Null"), Number: findType("Number"), Object: findType("Object"), + Object_Function_String: findType("Object(String)"), Plugin: findType("Plugin"), PoolResource: findType("PoolResource"), PrimitiveSerializer_dynamic: findType("PrimitiveSerializer<@>"), @@ -26796,6 +27083,7 @@ Rectangle_num: findType("Rectangle"), RegExp: findType("RegExp"), RegExpMatch: findType("RegExpMatch"), + RegisterEntrypointRequest: findType("RegisterEntrypointRequest"), RegisterEvent: findType("RegisterEvent"), RequireRestarter: findType("RequireRestarter"), ReversedListIterable_String: findType("ReversedListIterable"), @@ -26807,7 +27095,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"), @@ -26837,10 +27124,10 @@ UnmodifiableMapView_of_String_and_nullable_Object: findType("UnmodifiableMapView"), Uri: findType("Uri"), Window: findType("Window"), - WindowBase: findType("WindowBase"), WorkerGlobalScope: findType("WorkerGlobalScope"), Zone: findType("Zone"), _AsyncCompleter_HttpRequest: findType("_AsyncCompleter"), + _AsyncCompleter_JavaScriptObject: findType("_AsyncCompleter"), _AsyncCompleter_PoolResource: findType("_AsyncCompleter"), _AsyncCompleter_bool: findType("_AsyncCompleter"), _AsyncCompleter_dynamic: findType("_AsyncCompleter<@>"), @@ -26850,10 +27137,12 @@ _BuiltMap_dynamic_dynamic: findType("_BuiltMap<@,@>"), _ChildNodeListLazy: findType("_ChildNodeListLazy"), _EventRequest_dynamic: findType("_EventRequest<@>"), - _EventStream_CloseEvent: findType("_EventStream"), - _EventStream_Event: findType("_EventStream"), + _EventStream_CloseEvent: findType("_EventStream0"), + _EventStream_Event: findType("_EventStream0"), + _EventStream_JavaScriptObject: findType("_EventStream"), _FrozenElementList_Element: findType("_FrozenElementList"), _Future_HttpRequest: findType("_Future"), + _Future_JavaScriptObject: findType("_Future"), _Future_PoolResource: findType("_Future"), _Future_bool: findType("_Future"), _Future_dynamic: findType("_Future<@>"), @@ -26861,6 +27150,7 @@ _Future_void: findType("_Future<~>"), _Html5NodeValidator: findType("_Html5NodeValidator"), _IdentityHashMap_dynamic_dynamic: findType("_IdentityHashMap<@,@>"), + _IdentityHashMap_of_nullable_Object_and_nullable_Object: findType("_IdentityHashMap"), _MapEntry: findType("_MapEntry"), _StreamControllerAddStreamState_nullable_Object: findType("_StreamControllerAddStreamState"), _SyncCompleter_PoolResource: findType("_SyncCompleter"), @@ -26870,7 +27160,6 @@ double: findType("double"), dynamic: findType("@"), dynamic_Function: findType("@()"), - dynamic_Function_Event: findType("@(Event)"), dynamic_Function_Object: findType("@(Object)"), dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"), dynamic_Function_dynamic: findType("@(@)"), @@ -26880,8 +27169,10 @@ legacy_Object: findType("Object*"), nullable_Future_Null: findType("Future?"), nullable_Gamepad: findType("Gamepad?"), + nullable_JavaScriptObject: findType("JavaScriptObject?"), nullable_ListBuilder_DebugEvent: findType("ListBuilder?"), nullable_ListBuilder_ExtensionEvent: findType("ListBuilder?"), + nullable_ListBuilder_String: findType("ListBuilder?"), nullable_List_dynamic: findType("List<@>?"), nullable_Map_of_nullable_Object_and_nullable_Object: findType("Map?"), nullable_Object: findType("Object?"), @@ -26901,10 +27192,10 @@ 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_KeyboardEvent: findType("~(KeyboardEvent)?"), + nullable_void_Function_JavaScriptObject: findType("~(JavaScriptObject)?"), nullable_void_Function_MessageEvent: findType("~(MessageEvent)?"), nullable_void_Function_ProgressEvent: findType("~(ProgressEvent)?"), + nullable_void_Function_RegisterEntrypointRequestBuilder: findType("~(RegisterEntrypointRequestBuilder)?"), nullable_void_Function_RegisterEventBuilder: findType("~(RegisterEventBuilder)?"), num: findType("num"), void: findType("~"), @@ -26925,7 +27216,6 @@ B.AnchorElement_methods = A.AnchorElement.prototype; B.BodyElement_methods = A.BodyElement.prototype; B.DomImplementation_methods = A.DomImplementation.prototype; - B.EventSource_methods = A.EventSource.prototype; B.HtmlDocument_methods = A.HtmlDocument.prototype; B.HttpRequest_methods = A.HttpRequest.prototype; B.Interceptor_methods = J.Interceptor.prototype; @@ -26936,14 +27226,12 @@ 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; B.TableElement_methods = A.TableElement.prototype; B.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; B.WebSocket_methods = A.WebSocket.prototype; - B.Window_methods = A.Window.prototype; B.BuildStatus_failed = new A.BuildStatus("failed"); B.BuildStatus_started = new A.BuildStatus("started"); B.BuildStatus_succeeded = new A.BuildStatus("succeeded"); @@ -27120,6 +27408,8 @@ B.FullType_gsm = new A.FullType(B.Type_BuiltSetMultimap_9Fi, B.List_4AN, false); B.Type_String_k8F = A.typeLiteral("String"); B.FullType_h8g = new A.FullType(B.Type_String_k8F, B.List_empty1, false); + B.List_EY4 = A._setArrayType(makeConstList([B.FullType_h8g]), type$.JSArray_FullType); + B.FullType_hkZ = new A.FullType(B.Type_BuiltList_iTR, B.List_EY4, false); B.Type_int_tHn = A.typeLiteral("int"); B.FullType_kjq = new A.FullType(B.Type_int_tHn, B.List_empty1, false); B.FullType_null_List_empty_false = new A.FullType(null, B.List_empty1, false); @@ -27146,6 +27436,9 @@ B.Type__$RegisterEvent_SY6 = A.typeLiteral("_$RegisterEvent"); B.List_ASY = A._setArrayType(makeConstList([B.Type_RegisterEvent_0zQ, B.Type__$RegisterEvent_SY6]), type$.JSArray_Type); B.List_AuK = A._setArrayType(makeConstList(["bind", "if", "ref", "repeat", "syntax"]), type$.JSArray_String); + B.Type_RegisterEntrypointRequest_3l1 = A.typeLiteral("RegisterEntrypointRequest"); + B.Type__$RegisterEntrypointRequest_RSw = A.typeLiteral("_$RegisterEntrypointRequest"); + B.List_ExN = A._setArrayType(makeConstList([B.Type_RegisterEntrypointRequest_3l1, B.Type__$RegisterEntrypointRequest_RSw]), type$.JSArray_Type); B.Type_DebugInfo_gg4 = A.typeLiteral("DebugInfo"); B.Type__$DebugInfo_Eoc = A.typeLiteral("_$DebugInfo"); B.List_IMr = A._setArrayType(makeConstList([B.Type_DebugInfo_gg4, B.Type__$DebugInfo_Eoc]), type$.JSArray_Type); @@ -27192,8 +27485,8 @@ B.Type__$DevToolsRequest_cDy = A.typeLiteral("_$DevToolsRequest"); B.List_yT3 = A._setArrayType(makeConstList([B.Type_DevToolsRequest_A0n, B.Type__$DevToolsRequest_cDy]), type$.JSArray_Type); B.Object_empty = {}; - B.Map_empty = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap")); - B.Map_empty0 = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap<@,@>")); + B.Map_empty0 = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap")); + B.Map_empty = new A.ConstantStringMap(B.Object_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"); @@ -27205,6 +27498,7 @@ B.Type_Float64List_LB7 = A.typeLiteral("Float64List"); B.Type_Int16List_uXf = A.typeLiteral("Int16List"); B.Type_Int32List_O50 = A.typeLiteral("Int32List"); + B.Type_Int32_Mhf = A.typeLiteral("Int32"); B.Type_Int64_ww8 = A.typeLiteral("Int64"); B.Type_Int8List_ekJ = A.typeLiteral("Int8List"); B.Type_JSObject_8k0 = A.typeLiteral("JSObject"); @@ -27250,7 +27544,6 @@ $.dispatchRecordsForInstanceTags = null; $.interceptorsForUncacheableTags = null; $.initNativeDispatchFlag = null; - $._reportingExtraNullSafetyError = false; $._nextCallback = null; $._lastCallback = null; $._lastPriorityCallback = null; @@ -27364,6 +27657,7 @@ _lazy($, "_$batchedEventsSerializer", "$get$_$batchedEventsSerializer", () => new A._$BatchedEventsSerializer()); _lazy($, "_$isolateExitSerializer", "$get$_$isolateExitSerializer", () => new A._$IsolateExitSerializer()); _lazy($, "_$isolateStartSerializer", "$get$_$isolateStartSerializer", () => new A._$IsolateStartSerializer()); + _lazy($, "_$registerEntrypointRequestSerializer", "$get$_$registerEntrypointRequestSerializer", () => new A._$RegisterEntrypointRequestSerializer()); _lazy($, "_$registerEventSerializer", "$get$_$registerEventSerializer", () => new A._$RegisterEventSerializer()); _lazy($, "_$runRequestSerializer", "$get$_$runRequestSerializer", () => new A._$RunRequestSerializer()); _lazyFinal($, "serializers", "$get$serializers", () => $.$get$_$serializers()); @@ -27385,10 +27679,12 @@ t1.add$1(0, $.$get$_$extensionResponseSerializer()); t1.add$1(0, $.$get$_$isolateExitSerializer()); t1.add$1(0, $.$get$_$isolateStartSerializer()); + t1.add$1(0, $.$get$_$registerEntrypointRequestSerializer()); t1.add$1(0, $.$get$_$registerEventSerializer()); t1.add$1(0, $.$get$_$runRequestSerializer()); t1.addBuilderFactory$2(B.FullType_EGl, new A._$serializers_closure()); t1.addBuilderFactory$2(B.FullType_NIe, new A._$serializers_closure0()); + t1.addBuilderFactory$2(B.FullType_hkZ, new A._$serializers_closure1()); return t1.build$0(); }); _lazyFinal($, "_logger", "$get$_logger", () => A.Logger_Logger("Utilities")); @@ -27437,8 +27733,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, webkitSpeechRecognition: 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, webkitSpeechRecognition: 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, 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, CompositionEvent: A.Event, CustomEvent: A.Event, DeviceMotionEvent: A.Event, DeviceOrientationEvent: A.Event, ErrorEvent: A.Event, ExtendableEvent: A.Event, ExtendableMessageEvent: A.Event, FetchEvent: A.Event, FocusEvent: A.Event, FontFaceSetLoadEvent: A.Event, ForeignFetchEvent: A.Event, GamepadEvent: A.Event, HashChangeEvent: A.Event, InstallEvent: A.Event, KeyboardEvent: A.Event, MediaEncryptedEvent: A.Event, MediaKeyMessageEvent: A.Event, MediaQueryListEvent: A.Event, MediaStreamEvent: A.Event, MediaStreamTrackEvent: A.Event, MIDIConnectionEvent: A.Event, MIDIMessageEvent: A.Event, MouseEvent: A.Event, DragEvent: A.Event, MutationEvent: A.Event, NotificationEvent: A.Event, PageTransitionEvent: A.Event, PaymentRequestEvent: A.Event, PaymentRequestUpdateEvent: A.Event, PointerEvent: 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, TextEvent: A.Event, TouchEvent: A.Event, TrackEvent: A.Event, TransitionEvent: A.Event, WebKitTransitionEvent: A.Event, UIEvent: A.Event, VRDeviceEvent: A.Event, VRDisplayEvent: A.Event, VRSessionEvent: A.Event, WheelEvent: 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, 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, EventSource: 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, MessagePort: 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, webkitSpeechRecognition: 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, Location: A.Location, MediaList: A.MediaList, MessageEvent: A.MessageEvent, 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, 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, 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, CompositionEvent: true, CustomEvent: true, DeviceMotionEvent: true, DeviceOrientationEvent: true, ErrorEvent: true, ExtendableEvent: true, ExtendableMessageEvent: true, FetchEvent: true, FocusEvent: true, FontFaceSetLoadEvent: true, ForeignFetchEvent: true, GamepadEvent: true, HashChangeEvent: true, InstallEvent: true, KeyboardEvent: true, MediaEncryptedEvent: true, MediaKeyMessageEvent: true, MediaQueryListEvent: true, MediaStreamEvent: true, MediaStreamTrackEvent: true, MIDIConnectionEvent: true, MIDIMessageEvent: true, MouseEvent: true, DragEvent: true, MutationEvent: true, NotificationEvent: true, PageTransitionEvent: true, PaymentRequestEvent: true, PaymentRequestUpdateEvent: true, PointerEvent: 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, TextEvent: true, TouchEvent: true, TrackEvent: true, TransitionEvent: true, WebKitTransitionEvent: true, UIEvent: true, VRDeviceEvent: true, VRDisplayEvent: true, VRSessionEvent: true, WheelEvent: true, MojoInterfaceRequestEvent: true, USBConnectionEvent: true, IDBVersionChangeEvent: true, AudioProcessingEvent: true, OfflineAudioCompletionEvent: true, WebGLContextEvent: true, Event: false, InputEvent: false, SubmitEvent: false, AbsoluteOrientationSensor: true, Accelerometer: true, AccessibleNode: true, AmbientLightSensor: true, Animation: true, ApplicationCache: true, DOMApplicationCache: true, OfflineResourceList: true, BackgroundFetchRegistration: true, BatteryManager: true, BroadcastChannel: true, CanvasCaptureMediaStreamTrack: true, EventSource: 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, MessagePort: 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, webkitSpeechRecognition: 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, Location: true, MediaList: true, MessageEvent: 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, 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"; @@ -27524,18 +27820,21 @@ } var scripts = document.scripts; function onLoad(event) { - for (var i = 0; i < scripts.length; ++i) + for (var i = 0; i < scripts.length; ++i) { scripts[i].removeEventListener("load", onLoad, false); + } callback(event.target); } - for (var i = 0; i < scripts.length; ++i) + for (var i = 0; i < scripts.length; ++i) { scripts[i].addEventListener("load", onLoad, false); + } })(function(currentScript) { init.currentScript = currentScript; var callMain = A.main; - if (typeof dartMainRunner === "function") + if (typeof dartMainRunner === "function") { dartMainRunner(callMain, []); - else + } else { callMain([]); + } }); })(); diff --git a/dwds/lib/src/loaders/build_runner_require.dart b/dwds/lib/src/loaders/build_runner_require.dart index 3155821c3..03cd84ed1 100644 --- a/dwds/lib/src/loaders/build_runner_require.dart +++ b/dwds/lib/src/loaders/build_runner_require.dart @@ -50,7 +50,9 @@ class BuildRunnerRequireStrategyProvider { ) async { final modules = await metadataProvider.modulePathToModule; - final digestsPath = metadataProvider.entrypoint + // TODO: make sure this works... we don't support lazy ddr modules + // in require mode so maybe it does? + final digestsPath = (await metadataProvider.mainEntrypoint) .replaceAll('.dart.bootstrap.js', '.digests'); final response = await _assetHandler( Request('GET', Uri.parse('http://foo:0000/$digestsPath')), diff --git a/dwds/lib/src/loaders/legacy.dart b/dwds/lib/src/loaders/legacy.dart index bfaa50315..65d0e03c0 100644 --- a/dwds/lib/src/loaders/legacy.dart +++ b/dwds/lib/src/loaders/legacy.dart @@ -169,10 +169,10 @@ class LegacyStrategy extends LoadStrategy { @override String loadClientSnippet(String clientScript) => - 'window.\$dartLoader.forceLoadModule("$clientScript");\n'; + 'window.\$dartLoader.forceLoadModule("$clientScript")'; Future _legacyLoaderSetup(String entrypoint) async { - final metadataProvider = metadataProviderFor(entrypoint); + final metadataProvider = metadataProviderFor(null); final modulePaths = await _moduleProvider(metadataProvider); final scripts = >[]; modulePaths.forEach((name, path) { @@ -186,20 +186,20 @@ window.\$dartLoader.loadScripts(scripts); } @override - Future moduleForServerPath(String entrypoint, String serverPath) => - _moduleForServerPath(metadataProviderFor(entrypoint), serverPath); + Future moduleForServerPath(String appName, String serverPath) => + _moduleForServerPath(metadataProviderFor(appName), serverPath); @override - Future> moduleInfoForEntrypoint(String entrypoint) => - _moduleInfoForProvider(metadataProviderFor(entrypoint)); + Future> moduleInfoFor(String appName) => + _moduleInfoForProvider(metadataProviderFor(appName)); @override - Future serverPathForModule(String entrypoint, String module) => - _serverPathForModule(metadataProviderFor(entrypoint), module); + Future serverPathForModule(String appName, String module) => + _serverPathForModule(metadataProviderFor(appName), module); @override - Future sourceMapPathForModule(String entrypoint, String module) => - _sourceMapPathForModule(metadataProviderFor(entrypoint), module); + Future sourceMapPathForModule(String appName, String module) => + _sourceMapPathForModule(metadataProviderFor(appName), module); @override String? serverPathForAppUri(String appUri) => _serverPathForAppUri(appUri); diff --git a/dwds/lib/src/loaders/require.dart b/dwds/lib/src/loaders/require.dart index 9d1743b1a..700162ca2 100644 --- a/dwds/lib/src/loaders/require.dart +++ b/dwds/lib/src/loaders/require.dart @@ -144,8 +144,7 @@ class RequireStrategy extends LoadStrategy { if (request.url.path.endsWith(_requireDigestsPath)) { final entrypoint = request.url.queryParameters['entrypoint']; if (entrypoint == null) return Response.notFound('${request.url}'); - final metadataProvider = - metadataProviderFor(request.url.queryParameters['entrypoint']!); + final metadataProvider = metadataProviderFor(null); final digests = await _digestsProvider(metadataProvider); return Response.ok(json.encode(digests)); } @@ -217,14 +216,15 @@ requirejs.onResourceLoad = function (context, map, depArray) { @override String loadClientSnippet(String clientScript) => - 'window.\$requireLoader.forceLoadModule("$clientScript");\n'; + 'window.\$requireLoader.forceLoadModule("$clientScript")'; Future _requireLoaderSetup(String entrypoint) async { - final metadataProvider = metadataProviderFor(entrypoint); + final metadataProvider = metadataProviderFor(null); final modulePaths = await _moduleProvider(metadataProvider); final moduleNames = modulePaths.map((key, value) => MapEntry(value, key)); return ''' +let appName = "TestApp"; // TODO: this needs to be set by the build's bootstrap. $_baseUrlScript let modulePaths = ${const JsonEncoder.withIndent(" ").convert(modulePaths)}; let moduleNames = ${const JsonEncoder.withIndent(" ").convert(moduleNames)}; @@ -260,20 +260,20 @@ if(!window.\$requireLoader) { } @override - Future moduleForServerPath(String entrypoint, String serverPath) { - final metadataProvider = metadataProviderFor(entrypoint); + Future moduleForServerPath(String appName, String serverPath) { + final metadataProvider = metadataProviderFor(appName); return _moduleForServerPath(metadataProvider, serverPath); } @override - Future serverPathForModule(String entrypoint, String module) { - final metadataProvider = metadataProviderFor(entrypoint); + Future serverPathForModule(String appName, String module) { + final metadataProvider = metadataProviderFor(appName); return _serverPathForModule(metadataProvider, module); } @override - Future sourceMapPathForModule(String entrypoint, String module) { - final metadataProvider = metadataProviderFor(entrypoint); + Future sourceMapPathForModule(String appName, String module) { + final metadataProvider = metadataProviderFor(appName); return _sourceMapPathForModule(metadataProvider, module); } @@ -281,8 +281,8 @@ if(!window.\$requireLoader) { String? serverPathForAppUri(String appUri) => _serverPathForAppUri(appUri); @override - Future> moduleInfoForEntrypoint(String entrypoint) => - _moduleInfoForProvider(metadataProviderFor(entrypoint)); + Future> moduleInfoFor(String appName) => + _moduleInfoForProvider(metadataProviderFor(appName)); @override String? g3RelativePath(String absolutePath) => null; diff --git a/dwds/lib/src/loaders/strategy.dart b/dwds/lib/src/loaders/strategy.dart index 77f43acd8..dc3cb05ae 100644 --- a/dwds/lib/src/loaders/strategy.dart +++ b/dwds/lib/src/loaders/strategy.dart @@ -12,7 +12,8 @@ import 'package:shelf/shelf.dart'; abstract class LoadStrategy { final AssetReader _assetReader; final String? _packageConfigPath; - final _providers = {}; + late MetadataProvider _provider; + String? _appName; LoadStrategy( this._assetReader, { @@ -66,7 +67,7 @@ abstract class LoadStrategy { /// /// /packages/path/path.ddc.js -> packages/path/path /// - Future moduleForServerPath(String entrypoint, String serverPath); + Future moduleForServerPath(String appName, String serverPath); /// Returns the server path for the provided module. /// @@ -74,7 +75,7 @@ abstract class LoadStrategy { /// /// web/main -> main.ddc.js /// - Future serverPathForModule(String entrypoint, String module); + Future serverPathForModule(String appName, String module); /// Returns the source map path for the provided module. /// @@ -82,7 +83,7 @@ abstract class LoadStrategy { /// /// web/main -> main.ddc.js.map /// - Future sourceMapPathForModule(String entrypoint, String module); + Future sourceMapPathForModule(String appName, String module); /// Returns a map from module id to module info for the provided entrypoint. /// @@ -90,7 +91,7 @@ abstract class LoadStrategy { /// /// web/main -> {main.ddc.full.dill, main.ddc.dill} /// - Future> moduleInfoForEntrypoint(String entrypoint); + Future> moduleInfoFor(String appName); /// Returns the server path for the app uri. /// @@ -119,24 +120,43 @@ abstract class LoadStrategy { 'package_config.json', ); - /// Returns the [MetadataProvider] for the application located at the provided - /// [entrypoint]. - MetadataProvider metadataProviderFor(String entrypoint) { - if (_providers.containsKey(entrypoint)) { - return _providers[entrypoint]!; - } else { - throw StateError('No metadata provider for $entrypoint'); - } - } + /// Returns the [MetadataProvider] for the application [appName]. + /// + /// Note: We only support one app debugging at a time, so the + /// [appName] is currently ignored. + /// + /// TODO(annagrin): Support multi-app debugging. + /// Issue: https://github.com/dart-lang/webdev/issues/1769 + MetadataProvider metadataProviderFor(String? appName) => _provider; /// Initializes a [MetadataProvider] for the application located at the - /// provided [entrypoint]. - Future trackEntrypoint(String entrypoint) { - final metadataProvider = MetadataProvider(entrypoint, _assetReader); - _providers[metadataProvider.entrypoint] = metadataProvider; - // Returns a Future so that the asynchronous g3-implementation can override - // this method: - return Future.value(); + /// provided main [entrypoint]. + /// + /// Currently we don't have a way to detect an app name at this stage + /// so we only support one app debugging at a time, with lazy-compilation + /// sub-apps allowed. + /// + /// TODO(annagrin): Support multi-app debugging. + /// Issue: https://github.com/dart-lang/webdev/issues/1769 + Future trackAppEntrypoint(String entrypoint) async { + _provider = MetadataProvider(_assetReader)..update(entrypoint); + + // Some implementers need to do more work. + // Make sure we always await on the result. + return Future.value(); + } + + /// Initializes a [MetadataProvider] for the sub-application of [appName] + /// located at the provided [entrypoint]. + /// + /// TODO(annagrin): Support multi-app debugging. + /// Issue: https://github.com/dart-lang/webdev/issues/1769 + void trackEntrypoint(String appName, String entrypoint) { + _appName ??= appName; + if (_appName != appName) { + throw StateError('Multi-app debugging is not supported yet'); + } + _provider.update(entrypoint); } } diff --git a/dwds/lib/src/services/batched_expression_evaluator.dart b/dwds/lib/src/services/batched_expression_evaluator.dart index b5e56c2af..e3ab09545 100644 --- a/dwds/lib/src/services/batched_expression_evaluator.dart +++ b/dwds/lib/src/services/batched_expression_evaluator.dart @@ -34,13 +34,13 @@ class BatchedExpressionEvaluator extends ExpressionEvaluator { bool _closed = false; BatchedExpressionEvaluator( - String entrypoint, + String appName, this._inspector, Debugger debugger, Locations locations, Modules modules, ExpressionCompiler compiler, - ) : super(entrypoint, _inspector, debugger, locations, modules, compiler) { + ) : super(appName, _inspector, debugger, locations, modules, compiler) { _requestController.stream.listen(_processRequest); } diff --git a/dwds/lib/src/services/chrome_proxy_service.dart b/dwds/lib/src/services/chrome_proxy_service.dart index 913db0f5b..441493c5d 100644 --- a/dwds/lib/src/services/chrome_proxy_service.dart +++ b/dwds/lib/src/services/chrome_proxy_service.dart @@ -7,6 +7,7 @@ import 'dart:convert'; import 'dart:io'; import 'package:dwds/data/debug_event.dart'; +import 'package:dwds/data/register_entrypoint_request.dart'; import 'package:dwds/data/register_event.dart'; import 'package:dwds/src/config/tool_configuration.dart'; import 'package:dwds/src/connections/app_connection.dart'; @@ -163,27 +164,38 @@ class ChromeProxyService implements VmServiceInterface { return service; } + Future _initializeApp(String appName, List entrypoints) async { + _locations.initialize(appName); + _modules.initialize(appName); + _skipLists.initialize(); + + // We do not need to wait for compiler dependencies to be updated as the + // [ExpressionEvaluator] is robust to evaluation requests during updates. + await _updateCompilerDependencies(appName); + } + /// Initializes metadata in [Locations], [Modules], and [ExpressionCompiler]. - void _initializeEntrypoint(String entrypoint) { - _locations.initialize(entrypoint); - _modules.initialize(entrypoint); + Future _initializeEntrypoint(String appName, String entrypoint) async { + // TODO: incremental update? + _locations.initialize(appName); + _modules.initialize(appName); _skipLists.initialize(); // We do not need to wait for compiler dependencies to be updated as the // [ExpressionEvaluator] is robust to evaluation requests during updates. - safeUnawaited(_updateCompilerDependencies(entrypoint)); + await _updateCompilerDependencies(appName); } - Future _updateCompilerDependencies(String entrypoint) async { + Future _updateCompilerDependencies(String appName) async { final loadStrategy = globalToolConfiguration.loadStrategy; final moduleFormat = loadStrategy.moduleFormat; final canaryFeatures = loadStrategy.buildSettings.canaryFeatures; final experiments = loadStrategy.buildSettings.experiments; // TODO(annagrin): Read null safety setting from the build settings. - final metadataProvider = loadStrategy.metadataProviderFor(entrypoint); + final metadataProvider = loadStrategy.metadataProviderFor(appName); final soundNullSafety = await metadataProvider.soundNullSafety; - _logger.info('Initializing expression compiler for $entrypoint ' + _logger.info('Initializing expression compiler for $appName ' 'with sound null safety: $soundNullSafety'); final compilerOptions = CompilerOptions( @@ -196,8 +208,7 @@ class ChromeProxyService implements VmServiceInterface { final compiler = _compiler; if (compiler != null) { await compiler.initialize(compilerOptions); - final dependencies = - await loadStrategy.moduleInfoForEntrypoint(entrypoint); + final dependencies = await loadStrategy.moduleInfoFor(appName); await captureElapsedTime( () async { final result = await compiler.updateDependencies(dependencies); @@ -205,7 +216,7 @@ class ChromeProxyService implements VmServiceInterface { if (!_compilerCompleter.isCompleted) _compilerCompleter.complete(); return result; }, - (result) => DwdsEvent.compilerUpdateDependencies(entrypoint), + (result) => DwdsEvent.compilerUpdateDependencies(appName), ); } } @@ -253,14 +264,15 @@ class ChromeProxyService implements VmServiceInterface { } // Waiting for the debugger to be ready before initializing the entrypoint. // - // Note: moving `await debugger` after the `_initializeEntryPoint` call + // Note: moving `await debugger` after the `_initializeApp` call // causes `getcwd` system calls to fail. Since that system call is used // in first `Uri.base` call in the expression compiler service isolate, // the expression compiler service will fail to start. // Issue: https://github.com/dart-lang/webdev/issues/1282 final debugger = await debuggerFuture; - final entrypoint = appConnection.request.entrypointPath; - _initializeEntrypoint(entrypoint); + final appName = appConnection.request.appName; + final entrypoints = appConnection.request.entrypoints.asList(); + safeUnawaited(_initializeApp(appName, entrypoints)); debugger.notifyPausedAtStart(); _inspector = await AppInspector.create( @@ -277,7 +289,7 @@ class ChromeProxyService implements VmServiceInterface { _expressionEvaluator = compiler == null ? null : BatchedExpressionEvaluator( - entrypoint, + appName, inspector, debugger, _locations, @@ -1350,6 +1362,40 @@ ${globalToolConfiguration.loadStrategy.loadModuleSnippet}("dart_sdk").developer. ); } + /// Parses the [RegisterEntrypointRequest] and emits a corresponding Dart VM Service + /// protocol [Event]. + Future parseRegisterEntrypointRequest( + RegisterEntrypointRequest request, + ) async { + _logger.severe('received RegisterEntrypointRequest: $request'); + if (terminatingIsolates) return; + if (!_isIsolateRunning) return; + + final isolateRef = inspector.isolateRef; + final appName = request.appName; + final entrypoint = request.entrypointPath; + + // update expression compiler + // TODO: Incremental update? + safeUnawaited(_initializeEntrypoint(appName, entrypoint)); + + // update inspector's data structures + await inspector.registerEntrypoint( + appName, + entrypoint, + await debuggerFuture, + ); + + _streamNotify( + EventStreams.kIsolate, + Event( + kind: EventKind.kIsolateReload, + timestamp: DateTime.now().millisecondsSinceEpoch, + isolate: isolateRef, + ), + ); + } + /// Listens for chrome console events and handles the ones we care about. void _setUpChromeConsoleListeners(IsolateRef isolateRef) { _consoleSubscription = diff --git a/dwds/lib/src/services/expression_evaluator.dart b/dwds/lib/src/services/expression_evaluator.dart index 1aca08c68..1d06e1d48 100644 --- a/dwds/lib/src/services/expression_evaluator.dart +++ b/dwds/lib/src/services/expression_evaluator.dart @@ -32,7 +32,7 @@ class EvaluationErrorKind { /// collect context for evaluation (scope, types, modules), and using /// ExpressionCompilerInterface to compile dart expressions to JavaScript. class ExpressionEvaluator { - final String _entrypoint; + final String _appName; final AppInspectorInterface _inspector; final Debugger _debugger; final Locations _locations; @@ -53,7 +53,7 @@ class ExpressionEvaluator { RegExp(r".*Failed to load '.*\.com/(.*\.js).*"); ExpressionEvaluator( - this._entrypoint, + this._appName, this._inspector, this._debugger, this._locations, @@ -448,7 +448,7 @@ class ExpressionEvaluator { var modulePath = _loadModuleErrorRegex.firstMatch(error)?.group(1); final module = modulePath != null ? await globalToolConfiguration.loadStrategy.moduleForServerPath( - _entrypoint, + _appName, modulePath, ) : 'unknown'; diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml index 094bb8138..a86f89a64 100644 --- a/dwds/pubspec.yaml +++ b/dwds/pubspec.yaml @@ -36,6 +36,7 @@ dependencies: vm_service: ^13.0.0 vm_service_interface: 1.0.0 web_socket_channel: ^2.2.0 + web: ^0.4.0 webkit_inspection_protocol: ^1.0.1 dev_dependencies: diff --git a/dwds/test/debugger_test.dart b/dwds/test/debugger_test.dart index 863697bac..fbed0deb1 100644 --- a/dwds/test/debugger_test.dart +++ b/dwds/test/debugger_test.dart @@ -32,11 +32,11 @@ class TestStrategy extends FakeStrategy { TestStrategy(super.assetReader); @override - Future moduleForServerPath(String entrypoint, String appUri) async => + Future moduleForServerPath(String appName, String appUri) async => 'foo.ddc.js'; @override - Future serverPathForModule(String entrypoint, String module) async => + Future serverPathForModule(String appName, String module) async => 'foo/ddc'; } diff --git a/dwds/test/evaluate_common.dart b/dwds/test/evaluate_common.dart index 61025b5be..756e10227 100644 --- a/dwds/test/evaluate_common.dart +++ b/dwds/test/evaluate_common.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:dwds/src/services/expression_evaluator.dart'; +import 'package:logging/logging.dart'; import 'package:test/test.dart'; import 'package:test_common/logging.dart'; import 'package:test_common/test_sdk_configuration.dart'; @@ -68,6 +69,7 @@ void testAll({ () { setUpAll(() async { setCurrentLogWriter(debug: debug); + print('SETUP1'); await context.setUp( testSettings: TestSettings( compilationMode: compilationMode, @@ -76,6 +78,7 @@ void testAll({ verboseCompiler: debug, ), ); + print('SETUP2'); }); tearDownAll(() async { @@ -109,6 +112,9 @@ void testAll({ } }, ); + print('SETUP3'); + context.service.onEvent('Stdout').listen(Logger.root.info); + context.service.onEvent('Stderr').listen(Logger.root.warning); vm = await context.service.getVM(); isolate = await context.service.getIsolate(vm.isolates!.first.id!); diff --git a/dwds/test/fixtures/context.dart b/dwds/test/fixtures/context.dart index 3842aa03c..5151cc946 100644 --- a/dwds/test/fixtures/context.dart +++ b/dwds/test/fixtures/context.dart @@ -382,6 +382,7 @@ class TestContext { } final connection = ChromeConnection('localhost', debugPort); + _logger.info('Starting server...'); _testServer = await TestServer.start( debugSettings: debugSettings.copyWith(expressionCompiler: expressionCompiler), @@ -395,6 +396,7 @@ class TestContext { chromeConnection: () async => connection, autoRun: testSettings.autoRun, ); + _logger.info('Started server.'); _appUrl = basePath.isEmpty ? 'http://localhost:$port/$filePathToServe' @@ -402,11 +404,13 @@ class TestContext { if (testSettings.launchChrome) { await _webDriver?.get(appUrl); + _logger.info('Connecting to the app...'); final tab = await connection.getTab((t) => t.url == appUrl); if (tab != null) { _tabConnection = await tab.connect(); await tabConnection.runtime.enable(); await tabConnection.debugger.enable(); + _logger.info('Connected.'); } else { throw StateError('Unable to connect to tab.'); } @@ -417,8 +421,11 @@ class TestContext { await extensionConnection.runtime.enable(); } + _logger.info('Waiting for app connection...'); appConnection = await testServer.dwds.connectedApps.first; + _logger.info('Connected.'); if (debugSettings.enableDebugging && !testSettings.waitToDebug) { + _logger.info('Debugging...'); await startDebugging(); } } diff --git a/dwds/test/fixtures/fakes.dart b/dwds/test/fixtures/fakes.dart index a24381d7a..93ce9b3ae 100644 --- a/dwds/test/fixtures/fakes.dart +++ b/dwds/test/fixtures/fakes.dart @@ -372,8 +372,7 @@ class FakeStrategy extends LoadStrategy { ''; @override - Future serverPathForModule(String entrypoint, String module) async => - ''; + Future serverPathForModule(String appName, String module) async => ''; @override Future sourceMapPathForModule( @@ -386,11 +385,11 @@ class FakeStrategy extends LoadStrategy { String? serverPathForAppUri(String appUri) => ''; @override - MetadataProvider metadataProviderFor(String entrypoint) => - MetadataProvider(entrypoint, FakeAssetReader()); + MetadataProvider metadataProviderFor(String? appName) => + MetadataProvider(FakeAssetReader()); @override - Future> moduleInfoForEntrypoint(String entrypoint) => + Future> moduleInfoFor(String appName) => throw UnimplementedError(); } diff --git a/dwds/test/frontend_server_evaluate_sound_test.dart b/dwds/test/frontend_server_evaluate_sound_test.dart index 753438833..6bf103094 100644 --- a/dwds/test/frontend_server_evaluate_sound_test.dart +++ b/dwds/test/frontend_server_evaluate_sound_test.dart @@ -17,7 +17,7 @@ import 'fixtures/project.dart'; void main() async { // Enable verbose logging for debugging. - final debug = false; + final debug = true; final provider = TestSdkConfigurationProvider(verbose: debug); tearDownAll(provider.dispose); diff --git a/dwds/test/metadata_test.dart b/dwds/test/metadata_test.dart index d31c0d5b0..ff3607200 100644 --- a/dwds/test/metadata_test.dart +++ b/dwds/test/metadata_test.dart @@ -49,7 +49,6 @@ void main() { ); test('can parse metadata with empty sources', () async { final provider = MetadataProvider( - 'foo.bootstrap.js', FakeAssetReader(metadata: _emptySourceMetadata), ); expect( @@ -61,7 +60,6 @@ void main() { test('can parse metadata with no null safety information', () async { final provider = MetadataProvider( - 'foo.bootstrap.js', FakeAssetReader(metadata: _noNullSafetyMetadata), ); expect( @@ -73,7 +71,6 @@ void main() { test('throws on metadata with absolute import uris', () async { final provider = MetadataProvider( - 'foo.bootstrap.js', FakeAssetReader(metadata: _fileUriMetadata), ); await expectLater( diff --git a/dwds/web/client.dart b/dwds/web/client.dart index f3852bc93..4ebf3a7b8 100644 --- a/dwds/web/client.dart +++ b/dwds/web/client.dart @@ -2,13 +2,14 @@ // 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. +// @dart = 3.3 + @JS() library hot_reload_client; import 'dart:async'; import 'dart:convert'; -import 'dart:html'; -import 'dart:js'; +import 'dart:js_interop'; import 'package:built_collection/built_collection.dart'; import 'package:dwds/data/build_result.dart'; @@ -18,6 +19,7 @@ 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/extension_request.dart'; +import 'package:dwds/data/register_entrypoint_request.dart'; import 'package:dwds/data/register_event.dart'; import 'package:dwds/data/run_request.dart'; import 'package:dwds/data/serializers.dart'; @@ -26,13 +28,13 @@ import 'package:dwds/src/sockets.dart'; import 'package:js/js.dart'; import 'package:sse/client/sse_client.dart'; import 'package:uuid/uuid.dart'; +import 'package:web/helpers.dart'; import 'package:web_socket_channel/web_socket_channel.dart'; import 'promise.dart'; import 'reloader/legacy_restarter.dart'; import 'reloader/manager.dart'; import 'reloader/require_restarter.dart'; -import 'reloader/restarter.dart'; import 'run_main.dart'; const _batchDelayMilliseconds = 1000; @@ -41,287 +43,399 @@ const _batchDelayMilliseconds = 1000; // pub run build_runner build web Future? main() { return runZonedGuarded(() async { - // Set the unique id for this instance of the app. - // Test apps may already have this set. - dartAppInstanceId ??= const Uuid().v1(); + await runClient(); + }, (error, stackTrace) { + print(''' +Unhandled error detected in the injected client.js script. - final fixedPath = _fixProtocol(dwdsDevHandlerPath); - final fixedUri = Uri.parse(fixedPath); - final client = fixedUri.isScheme('ws') || fixedUri.isScheme('wss') - ? WebSocketClient(WebSocketChannel.connect(fixedUri)) - : SseSocketClient(SseClient(fixedPath, debugKey: 'InjectedClient')); +You can disable this script in webdev by passing --no-injected-client if it +is preventing your app from loading, but note that this will also prevent +all debugging and hot reload/restart functionality from working. + +The original error is below, please file an issue at +https://github.com/dart-lang/webdev/issues/new and attach this output: + +$error +$stackTrace +'''); + }); +} - Restarter restarter; - if (dartModuleStrategy == 'require-js') { - restarter = await RequireRestarter.create(); - } else if (dartModuleStrategy == 'legacy') { - restarter = LegacyRestarter(); - } else { - throw StateError('Unknown module strategy: $dartModuleStrategy'); +Future runClient() async { + final appInfo = dartAppInfo..appInstanceId = const Uuid().v1(); + + // used by tests and tools + dartAppInstanceId = appInfo.appInstanceId; + dartAppId = appInfo.appId; + + // used by require restarter + loadModuleConfig = appInfo.loadModuleConfig as Object Function(String); + + // print( + // 'Injected Client $dartAppInstanceId: ' + // 'Dart app info: ${appInfo.appName} ${appInfo.appId} ' + // '${appInfo.appInstanceId} ${appInfo.devHandlerPath} ${appInfo.moduleStrategy}', + // ); + + final dwdsConnection = DevHandlerConnection(appInfo.devHandlerPath); + + registerEntrypoint = allowInterop((String appName, String entrypointPath) { + if (appInfo.dartEntrypoints.contains(entrypointPath)) return; + appInfo.dartEntrypoints.add(entrypointPath); + + if (_isChromium) { + // print( + // 'Injected Client $dartAppInstanceId: ' + // 'sending registerEntrypoint request for' + // ' $appName ($entrypointPath)', + // ); + dwdsConnection.sendRegisterEntrypointRequest(appName, entrypointPath); + } + }); + + print('Injected Client $dartAppInstanceId: set registerEntrypoint'); + + // Setup hot restart + final restarter = switch (appInfo.moduleStrategy) { + 'require-js' => await RequireRestarter.create(), + 'legacy' => LegacyRestarter(), + _ => throw StateError('Unknown module strategy: ${appInfo.moduleStrategy}'), + }; + final manager = ReloadingManager(dwdsConnection.client, restarter); + hotRestartJs = allowInterop((String runId) { + return toPromise(manager.hotRestart(runId: runId)); + }); + + // Setup debug events + emitDebugEvent = allowInterop((String kind, String eventData) { + if (appInfo.emitDebugEvents) { + dwdsConnection.sendDebugEvent(kind, eventData); } + }); - final manager = ReloadingManager(client, restarter); + // Setup registerExtension events + emitRegisterEvent = allowInterop(dwdsConnection.sendRegisterEvent); - hotRestartJs = allowInterop((String runId) { - return toPromise(manager.hotRestart(runId: runId)); - }); + // setup launching devtools + launchDevToolsJs = allowInterop(() { + if (!_isChromium) { + window.alert( + 'Dart DevTools is only supported on Chromium based browsers.', + ); + return; + } + dwdsConnection.sendDevToolsRequest(appInfo.appId, appInfo.appInstanceId); + }); - final debugEventController = - BatchedStreamController(delay: _batchDelayMilliseconds); - debugEventController.stream.listen((events) { - if (dartEmitDebugEvents) { - _trySendEvent( - client.sink, - jsonEncode( - serializers.serialize( - BatchedDebugEvents( - (b) => b.events = ListBuilder(events), - ), - ), - ), + // Listen to commands from dwds dev handler + dwdsConnection.client.stream.listen( + (serialized) async { + final event = serializers.deserialize(jsonDecode(serialized)); + if (event is BuildResult) { + if (appInfo.reloadConfiguration == 'ReloadConfiguration.liveReload') { + manager.reloadPage(); + } else if (appInfo.reloadConfiguration == + 'ReloadConfiguration.hotRestart') { + await manager.hotRestart(); + } else if (appInfo.reloadConfiguration == + 'ReloadConfiguration.hotReload') { + print('Hot reload is currently unsupported. Ignoring change.'); + } + } else if (event is DevToolsResponse) { + if (!event.success) { + final alert = 'DevTools failed to open with:\n${event.error}'; + if (event.promptExtension && window.confirm(alert)) { + window.open('https://goo.gle/dart-debug-extension', '_blank'); + } else { + window.alert(alert); + } + } + } else if (event is RunRequest) { + runMain(); + } else if (event is ErrorResponse) { + window.reportError( + 'Error from backend:\n\n' + 'Error: ${event.error}\n\n' + 'Stack Trace:\n${event.stackTrace}' + .toJS, ); } - }); + }, + onError: (error) { + // An error is propagated on a full page reload as Chrome presumably + // forces the SSE connection to close in a bad state. This does not cause + // any adverse effects so simply swallow this error as to not print the + // misleading unhandled error message. + }, + ); - emitDebugEvent = allowInterop((String kind, String eventData) { - if (dartEmitDebugEvents) { - _trySendEvent( - debugEventController.sink, - DebugEvent( - (b) => b - ..timestamp = (DateTime.now().millisecondsSinceEpoch) - ..kind = kind - ..eventData = eventData, - ), - ); + // Launch devtools on key press + if (appInfo.enableDevToolsLaunch) { + window.onKeyDown.listen((Event e) { + if (e is KeyboardEvent && + const [ + 'd', + 'D', + '∂', // alt-d output on Mac + 'Î', // shift-alt-D output on Mac + ].contains(e.key) && + e.altKey && + !e.ctrlKey && + !e.metaKey) { + e.preventDefault(); + launchDevToolsJs(); } }); + } - emitRegisterEvent = allowInterop((String eventData) { - _trySendEvent( - client.sink, - jsonEncode( - serializers.serialize( - RegisterEvent( - (b) => b - ..timestamp = (DateTime.now().millisecondsSinceEpoch) - ..eventData = eventData, - ), - ), - ), - ); - }); + // Connect to the server + if (_isChromium) { + // print( + // 'Injected Client $dartAppInstanceId: ' + // 'sending connect request with ${appInfo.appName}' + // ' (${appInfo.entrypoints})', + // ); + dwdsConnection.sendConnectRequest( + appInfo.appName, + appInfo.appId, + appInfo.appInstanceId, + appInfo.dartEntrypoints, + ); + } else { + // If not Chromium we just invoke main, devtools aren't supported. + runMain(); + } - launchDevToolsJs = allowInterop(() { - if (!_isChromium) { - window.alert( - 'Dart DevTools is only supported on Chromium based browsers.', - ); - return; - } - _trySendEvent( - client.sink, - jsonEncode( - serializers.serialize( - DevToolsRequest( - (b) => b - ..appId = dartAppId - ..instanceId = dartAppInstanceId, - ), - ), - ), - ); - }); + final debugConnection = DebugExtensionConnection(appInfo); + debugConnection.launchCommunication(); +} - client.stream.listen( - (serialized) async { - final event = serializers.deserialize(jsonDecode(serialized)); - if (event is BuildResult) { - if (reloadConfiguration == 'ReloadConfiguration.liveReload') { - manager.reloadPage(); - } else if (reloadConfiguration == 'ReloadConfiguration.hotRestart') { - await manager.hotRestart(); - } else if (reloadConfiguration == 'ReloadConfiguration.hotReload') { - print('Hot reload is currently unsupported. Ignoring change.'); - } - } else if (event is DevToolsResponse) { - if (!event.success) { - final alert = 'DevTools failed to open with:\n${event.error}'; - if (event.promptExtension && window.confirm(alert)) { - window.open('https://goo.gle/dart-debug-extension', '_blank'); - } else { - window.alert(alert); - } - } - } else if (event is RunRequest) { - runMain(); - } else if (event is ErrorResponse) { - window.console - .error('Error from backend:\n\nError: ${event.error}\n\n' - 'Stack Trace:\n${event.stackTrace}'); - } - }, - onError: (error) { - // An error is propagated on a full page reload as Chrome presumably - // forces the SSE connection to close in a bad state. This does not cause - // any adverse effects so simply swallow this error as to not print the - // misleading unhandled error message. - }, +class DebugExtensionConnection { + final AppInfo appInfo; + + DebugExtensionConnection(this.appInfo); + + void launchCommunication() { + // Listen for an event from the Dart Debug Extension to authenticate the + // user (sent once the extension receives the dart-app-read event): + _listenForAuthRequest(); + + // Send the dart-app-ready event along with debug info to the Dart Debug + // Extension so that it can debug the Dart app: + final debugInfoJson = jsonEncode( + serializers.serialize( + DebugInfo( + (b) => b + ..appEntrypointPath = appInfo.appName + ..appId = appInfo.appId + ..appInstanceId = appInfo.appInstanceId + ..appOrigin = window.location.origin + ..appUrl = window.location.href + ..authUrl = _getAuthUrl(appInfo.extensionUrl) + ..extensionUrl = appInfo.extensionUrl + ..isInternalBuild = appInfo.isInternalBuild + ..isFlutterApp = appInfo.isFlutterApp + ..workspaceName = appInfo.workspaceName, + ), + ), ); - if (dwdsEnableDevToolsLaunch) { - window.onKeyDown.listen((Event e) { - if (e is KeyboardEvent && - const [ - 'd', - 'D', - '∂', // alt-d output on Mac - 'Î', // shift-alt-D output on Mac - ].contains(e.key) && - e.altKey && - !e.ctrlKey && - !e.metaKey) { - e.preventDefault(); - launchDevToolsJs(); - } - }); + _dispatchEvent('dart-app-ready', debugInfoJson); + } + + String? _getAuthUrl(String? extensionUrl) { + if (extensionUrl == null) return null; + final authUrl = Uri.parse(extensionUrl).replace(path: authenticationPath); + switch (authUrl.scheme) { + case 'ws': + return authUrl.replace(scheme: 'http').toString(); + case 'wss': + return authUrl.replace(scheme: 'https').toString(); + default: + return authUrl.toString(); } + } - if (_isChromium) { - _trySendEvent( - client.sink, - jsonEncode( - serializers.serialize( - ConnectRequest( - (b) => b - ..appId = dartAppId - ..instanceId = dartAppInstanceId - ..entrypointPath = dartEntrypointPath, - ), - ), - ), + void _listenForAuthRequest() { + window.addEventListener( + 'message', + _handleAuthRequest.toJS, + ); + } + + void _dispatchEvent(String message, String detail) { + window.dispatchEvent( + CustomEvent( + 'dart-auth-response', + CustomEventInit(detail: detail.toJS), + ), + ); + } + + void _handleAuthRequest(Event event) { + final messageEvent = event as MessageEvent; + if (messageEvent.data is! String) return; + if (messageEvent.data as String != 'dart-auth-request') return; + + // Notify the Dart Debug Extension of authentication status: + final authUrl = _getAuthUrl(appInfo.extensionUrl); + if (authUrl != null) { + _authenticateUser(authUrl).then( + (isAuthenticated) => + _dispatchEvent('dart-auth-response', '$isAuthenticated'), ); - } else { - // If not Chromium we just invoke main, devtools aren't supported. - runMain(); } - _launchCommunicationWithDebugExtension(); - }, (error, stackTrace) { - print(''' -Unhandled error detected in the injected client.js script. + } -You can disable this script in webdev by passing --no-injected-client if it -is preventing your app from loading, but note that this will also prevent -all debugging and hot reload/restart functionality from working. + static Future _authenticateUser(String authUrl) async { + final response = await HttpRequest.request( + authUrl, + method: 'GET', + withCredentials: true, + ); + final responseText = response.responseText; + return responseText.contains('Dart Debug Authentication Success!'); + } +} -The original error is below, please file an issue at -https://github.com/dart-lang/webdev/issues/new and attach this output: +class DevHandlerConnection { + late final SocketClient client; -$error -$stackTrace -'''); - }); -} + final debugEventController = + BatchedStreamController(delay: _batchDelayMilliseconds); + + DevHandlerConnection(String devHandlerPath) { + final fixedPath = _fixProtocol(devHandlerPath); + final fixedUri = Uri.parse(fixedPath); + client = fixedUri.isScheme('ws') || fixedUri.isScheme('wss') + ? WebSocketClient(WebSocketChannel.connect(fixedUri)) + : SseSocketClient(SseClient(fixedPath, debugKey: 'InjectedClient')); -void _trySendEvent(StreamSink sink, T serialized) { - try { - sink.add(serialized); - } on StateError catch (_) { - // An error is propagated on a full page reload as Chrome presumably - // forces the SSE connection to close in a bad state. - print('Cannot send event $serialized. ' - 'Injected client connection is closed.'); + debugEventController.stream.listen(_sendBatchedDebugEvents); } -} -/// Returns [url] modified if necessary so that, if the current page is served -/// over `https`, then the URL is converted to `https`. -String _fixProtocol(String url) { - var uri = Uri.parse(url); - if (window.location.protocol == 'https:' && - uri.scheme == 'http' && - // Chrome allows mixed content on localhost. It is not safe to assume the - // server is also listening on https. - uri.host != 'localhost') { - uri = uri.replace(scheme: 'https'); - } else if (window.location.protocol == 'wss:' && - uri.scheme == 'ws' && - uri.host != 'localhost') { - uri = uri.replace(scheme: 'wss'); + void sendConnectRequest( + String appName, + String appId, + String? appInstanceId, + List entrypoints, + ) { + _serializeAndTrySendEvent( + ConnectRequest( + (b) => b + ..appName = appName + ..appId = appId + ..instanceId = appInstanceId + ..entrypoints = ListBuilder(entrypoints), + ), + ); + } + + void sendRegisterEntrypointRequest( + String appName, + String entrypointPath, + ) { + _serializeAndTrySendEvent( + RegisterEntrypointRequest( + (b) => b + ..appName = appName + ..entrypointPath = entrypointPath, + ), + ); } - return uri.toString(); -} -void _launchCommunicationWithDebugExtension() { - // Listen for an event from the Dart Debug Extension to authenticate the - // user (sent once the extension receives the dart-app-read event): - _listenForDebugExtensionAuthRequest(); + void _sendBatchedDebugEvents( + List events, + ) { + _serializeAndTrySendEvent( + BatchedDebugEvents( + (b) => b.events = ListBuilder(events), + ), + ); + } - // Send the dart-app-ready event along with debug info to the Dart Debug - // Extension so that it can debug the Dart app: - final debugInfoJson = jsonEncode( - serializers.serialize( - DebugInfo( + void sendDebugEvent(String kind, String eventData) { + _trySendEvent( + debugEventController.sink, + DebugEvent( (b) => b - ..appEntrypointPath = dartEntrypointPath - ..appId = _appId - ..appInstanceId = dartAppInstanceId - ..appOrigin = window.location.origin - ..appUrl = window.location.href - ..authUrl = _authUrl - ..extensionUrl = _extensionUrl - ..isInternalBuild = _isInternalBuild - ..isFlutterApp = _isFlutterApp - ..workspaceName = dartWorkspaceName, + ..timestamp = (DateTime.now().millisecondsSinceEpoch) + ..kind = kind + ..eventData = eventData, ), - ), - ); - dispatchEvent(CustomEvent('dart-app-ready', detail: debugInfoJson)); -} + ); + } -void _listenForDebugExtensionAuthRequest() { - window.addEventListener( - 'message', - allowInterop((event) async { - final messageEvent = event as MessageEvent; - if (messageEvent.data is! String) return; - if (messageEvent.data as String != 'dart-auth-request') return; - - // Notify the Dart Debug Extension of authentication status: - if (_authUrl != null) { - final isAuthenticated = await _authenticateUser(_authUrl!); - dispatchEvent( - CustomEvent('dart-auth-response', detail: '$isAuthenticated'), - ); - } - }), - ); -} + void sendRegisterEvent(String eventData) { + _serializeAndTrySendEvent( + RegisterEvent( + (b) => b + ..timestamp = (DateTime.now().millisecondsSinceEpoch) + ..eventData = eventData, + ), + ); + } -Future _authenticateUser(String authUrl) async { - final response = await HttpRequest.request( - authUrl, - method: 'GET', - withCredentials: true, - ); - final responseText = response.responseText ?? ''; - return responseText.contains('Dart Debug Authentication Success!'); + void sendDevToolsRequest(String appId, String appInstanceId) { + _serializeAndTrySendEvent( + DevToolsRequest( + (b) => b + ..appId = appId + ..instanceId = appInstanceId, + ), + ); + } + + void _trySendEvent(StreamSink sink, T event) { + try { + sink.add(event); + } on StateError catch (_) { + // An error is propagated on a full page reload as Chrome presumably + // forces the SSE connection to close in a bad state. + print('Cannot send event $event. ' + 'Injected client connection is closed.'); + } + } + + void _serializeAndTrySendEvent(T object) { + _trySendEvent(client.sink, jsonEncode(serializers.serialize(object))); + } + + /// Returns [url] modified if necessary so that, if the current page is served + /// over `https`, then the URL is converted to `https`. + String _fixProtocol(String url) { + var uri = Uri.parse(url); + if (window.location.protocol == 'https:' && + uri.scheme == 'http' && + // Chrome allows mixed content on localhost. It is not safe to assume the + // server is also listening on https. + uri.host != 'localhost') { + uri = uri.replace(scheme: 'https'); + } else if (window.location.protocol == 'wss:' && + uri.scheme == 'ws' && + uri.host != 'localhost') { + uri = uri.replace(scheme: 'wss'); + } + return uri.toString(); + } } +// Runtime API. TODO: pull into a separate file. + @JS(r'$dartAppId') -external String get dartAppId; +external String? get dartAppId; // used in extension and tests -@JS(r'$dartAppInstanceId') -external String? get dartAppInstanceId; +@JS(r'$dartAppId') +external set dartAppId(String? id); // used in extension and tests -@JS(r'$dwdsDevHandlerPath') -external String get dwdsDevHandlerPath; +@JS(r'$dartAppInstanceId') +external String? get dartAppInstanceId; // used in extension and tests @JS(r'$dartAppInstanceId') -external set dartAppInstanceId(String? id); +external set dartAppInstanceId(String? id); // used in extension and tests -@JS(r'$dartModuleStrategy') -external String get dartModuleStrategy; +@JS(r'$loadModuleConfig') // used by require restarter +external set loadModuleConfig(Object Function(String module) load); @JS(r'$dartHotRestartDwds') external set hotRestartJs(Promise Function(String runId) cb); @@ -332,58 +446,47 @@ external void Function() get launchDevToolsJs; @JS(r'$launchDevTools') external set launchDevToolsJs(void Function() cb); -@JS(r'$dartReloadConfiguration') -external String get reloadConfiguration; - -@JS(r'$dartEntrypointPath') -external String get dartEntrypointPath; - -@JS(r'$dwdsEnableDevToolsLaunch') -external bool get dwdsEnableDevToolsLaunch; - -@JS('window.top.document.dispatchEvent') -external void dispatchEvent(CustomEvent event); - -@JS(r'$dartEmitDebugEvents') -external bool get dartEmitDebugEvents; - @JS(r'$emitDebugEvent') external set emitDebugEvent(void Function(String, String) func); @JS(r'$emitRegisterEvent') external set emitRegisterEvent(void Function(String) func); -@JS(r'$isInternalBuild') -external bool get isInternalBuild; - -@JS(r'$isFlutterApp') -external bool get isFlutterApp; +@JS(r'$dartAppInfo') +external AppInfo get dartAppInfo; -@JS(r'$dartWorkspaceName') -external String? get dartWorkspaceName; +@JS(r'$dartRegisterEntrypoint') +external set registerEntrypoint( + void Function( + String appName, + String entrypointPath, + ) func, +); bool get _isChromium => window.navigator.vendor.contains('Google'); -JsObject get _windowContext => JsObject.fromBrowserObject(window); - -bool? get _isInternalBuild => _windowContext['\$isInternalBuild']; - -bool? get _isFlutterApp => _windowContext['\$isFlutterApp']; - -String? get _appId => _windowContext['\$dartAppId']; - -String? get _extensionUrl => _windowContext['\$dartExtensionUri']; +extension type AppInfo(JSObject object) { + external String get moduleStrategy; + external String get reloadConfiguration; + external JSFunction get loadModuleConfig; + external String get dwdsVersion; + external bool get enableDevToolsLaunch; + external bool get emitDebugEvents; + external bool get isInternalBuild; + external String get appName; + external String get appId; + external set appInstanceId(String id); + external String get appInstanceId; + external bool get isFlutterApp; + external String? get extensionUrl; + external String get devHandlerPath; + external StringList get entrypoints; + external String? get workspaceName; + + List get dartEntrypoints => entrypoints.toDart; +} -String? get _authUrl { - final extensionUrl = _extensionUrl; - if (extensionUrl == null) return null; - final authUrl = Uri.parse(extensionUrl).replace(path: authenticationPath); - switch (authUrl.scheme) { - case 'ws': - return authUrl.replace(scheme: 'http').toString(); - case 'wss': - return authUrl.replace(scheme: 'https').toString(); - default: - return authUrl.toString(); - } +extension type StringList(JSArray array) { + List get toDart => + List.from(array.toDart.map((e) => (e as JSString).toDart)); } diff --git a/fixtures/_webdevSoundSmoke/pubspec.yaml b/fixtures/_webdevSoundSmoke/pubspec.yaml index b286a9962..460c3ee1d 100644 --- a/fixtures/_webdevSoundSmoke/pubspec.yaml +++ b/fixtures/_webdevSoundSmoke/pubspec.yaml @@ -9,3 +9,4 @@ environment: dev_dependencies: build_runner: ^2.4.0 build_web_compilers: ^4.0.4 + build_daemon: ^4.0.0 diff --git a/fixtures/_webdevSoundSmoke/web/main.dart b/fixtures/_webdevSoundSmoke/web/main.dart index 907bfdbba..14f31c959 100644 --- a/fixtures/_webdevSoundSmoke/web/main.dart +++ b/fixtures/_webdevSoundSmoke/web/main.dart @@ -7,8 +7,11 @@ import 'dart:convert'; import 'dart:developer'; import 'dart:html'; +int global = 3; + void main() { print('Initial Print'); + global = 4; registerExtension('ext.print', (_, __) async { print('Hello World'); diff --git a/frontend_server_common/lib/src/bootstrap.dart b/frontend_server_common/lib/src/bootstrap.dart index a5d1ba0c4..bbaa4bd6b 100644 --- a/frontend_server_common/lib/src/bootstrap.dart +++ b/frontend_server_common/lib/src/bootstrap.dart @@ -21,6 +21,8 @@ String generateBootstrapScript({ return ''' "use strict"; +var appName = 'FrontendServerApp'; + // Attach source mapping. var mapperEl = document.createElement("script"); mapperEl.defer = true;