Remove eval error message on async frames (#2073)
diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md
index 6fd70e5..99dc0f3 100644
--- a/dwds/CHANGELOG.md
+++ b/dwds/CHANGELOG.md
@@ -1,5 +1,7 @@
## 19.0.1-dev
+- Do not show async frame errors on evaluation. - [#2073](https://github.com/dart-lang/webdev/pull/2073)
+
## 19.0.0
- Allow clients to specify the connected app's entrypoint file. - [#2047](https://github.com/dart-lang/webdev/pull/2047)
diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js
index ed93220..69346fb 100644
--- a/dwds/lib/src/injected/client.js
+++ b/dwds/lib/src/injected/client.js
@@ -1,4 +1,4 @@
-// Generated by dart2js (NullSafetyMode.sound, csp, deferred-serialization, intern-composite-values), the Dart to JavaScript compiler version: 3.0.0-290.3.beta.
+// Generated by dart2js (NullSafetyMode.sound, csp, deferred-serialization, intern-composite-values), the Dart to JavaScript compiler version: 3.0.0-375.0.dev.
// The code supports the following hooks:
// dartPrint(message):
// if this function is defined it is called instead of the Dart [print]
@@ -46,7 +46,7 @@
};
cls.prototype = {p: {}};
var object = new cls();
- if (!(object.__proto__ && object.__proto__.p === cls.prototype.p))
+ if (!(Object.getPrototypeOf(object) && Object.getPrototypeOf(object).p === cls.prototype.p))
return false;
try {
if (typeof navigator != "undefined" && typeof navigator.userAgent == "string" && navigator.userAgent.indexOf("Chrome/") >= 0)
@@ -65,7 +65,7 @@
cls.prototype["$is" + cls.name] = cls;
if (sup != null) {
if (supportsDirectProtoAccess) {
- cls.prototype.__proto__ = sup.prototype;
+ Object.setPrototypeOf(cls.prototype, sup.prototype);
return;
}
var clsPrototype = Object.create(sup.prototype);
@@ -785,6 +785,15 @@
}
return A._rtiToString(A.instanceType(object), null);
},
+ Primitives_safeToString(object) {
+ if (typeof object == "number" || A._isBool(object))
+ return J.toString$0$(object);
+ if (typeof object == "string")
+ return JSON.stringify(object);
+ if (object instanceof A.Closure)
+ return object.toString$0(0);
+ return "Instance of '" + A.Primitives_objectTypeName(object) + "'";
+ },
Primitives__fromCharCodeApply(array) {
var result, i, i0, chunkEnd,
end = array.length;
@@ -2131,6 +2140,10 @@
var rti = object instanceof A.Closure ? A.closureFunctionType(object) : null;
return A.createRuntimeType(rti == null ? A.instanceType(object) : rti);
},
+ _structuralTypeOf(object) {
+ var t1 = object instanceof A.Closure ? A.closureFunctionType(object) : null;
+ return t1 == null ? A.instanceType(object) : t1;
+ },
createRuntimeType(rti) {
var t1 = rti._cachedRuntimeType;
return t1 == null ? rti._cachedRuntimeType = A._createRuntimeType(rti) : t1;
@@ -2291,7 +2304,7 @@
A._failedAsCheck(object, testRti);
},
_failedAsCheck(object, testRti) {
- throw A.wrapException(A._TypeError$fromMessage(A._Error_compose(object, A.instanceOrFunctionType(object, testRti), A._rtiToString(testRti, null))));
+ throw A.wrapException(A._TypeError$fromMessage(A._Error_compose(object, A._rtiToString(testRti, null))));
},
checkTypeBound(type, bound, variable, methodName) {
var _null = null;
@@ -2299,15 +2312,14 @@
return type;
throw A.wrapException(A._TypeError$fromMessage("The type argument '" + A._rtiToString(type, _null) + "' is not a subtype of the type variable bound '" + A._rtiToString(bound, _null) + "' of type variable '" + variable + "' in '" + methodName + "'."));
},
- _Error_compose(object, objectRti, checkedTypeDescription) {
- var objectDescription = A.Error_safeToString(object);
- return objectDescription + ": type '" + A._rtiToString(objectRti == null ? A.instanceType(object) : objectRti, null) + "' is not a subtype of type '" + checkedTypeDescription + "'";
+ _Error_compose(object, checkedTypeDescription) {
+ return A.Error_safeToString(object) + ": type '" + A._rtiToString(A._structuralTypeOf(object), null) + "' is not a subtype of type '" + checkedTypeDescription + "'";
},
_TypeError$fromMessage(message) {
return new A._TypeError("TypeError: " + message);
},
_TypeError__TypeError$forType(object, type) {
- return new A._TypeError("TypeError: " + A._Error_compose(object, null, type));
+ return new A._TypeError("TypeError: " + A._Error_compose(object, type));
},
_isObject(object) {
return object != null;
@@ -2927,7 +2939,7 @@
return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize};
},
_Parser_parse(parser) {
- var t2, i, ch, t3, array, head, base, end, item,
+ var t2, i, ch, t3, array, end, item,
source = parser.r,
t1 = parser.s;
for (t2 = source.length, i = 0; i < t2;) {
@@ -2969,24 +2981,7 @@
parser.p = t1.length;
break;
case 62:
- t3 = parser.u;
- array = t1.splice(parser.p);
- A._Parser_toTypes(parser.u, parser.e, array);
- parser.p = t1.pop();
- head = t1.pop();
- if (typeof head == "string")
- t1.push(A._Universe__lookupInterfaceRti(t3, head, array));
- else {
- base = A._Parser_toType(t3, parser.e, head);
- switch (base._kind) {
- case 12:
- t1.push(A._Universe__lookupGenericFunctionRti(t3, base, array, parser.n));
- break;
- default:
- t1.push(A._Universe__lookupBindingRti(t3, base, array));
- break;
- }
- }
+ A._Parser_handleTypeArguments(parser, t1);
break;
case 38:
A._Parser_handleExtendedOperations(parser, t1);
@@ -3093,6 +3088,25 @@
stack.push(string);
return i;
},
+ _Parser_handleTypeArguments(parser, stack) {
+ var base,
+ t1 = parser.u,
+ $arguments = A._Parser_collectArray(parser, stack),
+ head = stack.pop();
+ if (typeof head == "string")
+ stack.push(A._Universe__lookupInterfaceRti(t1, head, $arguments));
+ else {
+ base = A._Parser_toType(t1, parser.e, head);
+ switch (base._kind) {
+ case 12:
+ stack.push(A._Universe__lookupGenericFunctionRti(t1, base, $arguments, parser.n));
+ break;
+ default:
+ stack.push(A._Universe__lookupBindingRti(t1, base, $arguments));
+ break;
+ }
+ }
+ },
_Parser_handleArguments(parser, stack) {
var optionalPositional, named, requiredPositional, returnType, parameters, _null = null,
t1 = parser.u,
@@ -3607,11 +3621,11 @@
if ($T._eval$1("Future<0>")._is(result))
return result;
else {
- t1 = $T._as(result);
- t2 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
- t2._state = 8;
- t2._resultOrListeners = t1;
- return t2;
+ t1 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
+ t2 = $T._as(result);
+ t1._state = 8;
+ t1._resultOrListeners = t2;
+ return t1;
}
} catch (exception) {
error = A.unwrapException(exception);
@@ -3627,13 +3641,8 @@
}
},
Future_Future$value(value, $T) {
- var t1, t2;
- if (value == null) {
- $T._as(value);
- t1 = value;
- } else
- t1 = value;
- t2 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
+ var t1 = value == null ? $T._as(value) : value,
+ t2 = new A._Future($.Zone__current, $T._eval$1("_Future<0>"));
t2._asyncComplete$1(t1);
return t2;
},
@@ -4206,8 +4215,6 @@
this.subscription = t1;
this.future = t2;
},
- StreamSubscription: function StreamSubscription() {
- },
StreamTransformerBase: function StreamTransformerBase() {
},
_StreamController: function _StreamController() {
@@ -5369,11 +5376,6 @@
return value;
throw A.wrapException(A.FormatException$(source, null, null));
},
- Error__objectToString(object) {
- if (object instanceof A.Closure)
- return object.toString$0(0);
- return "Instance of '" + A.Primitives_objectTypeName(object) + "'";
- },
Error__throw(error, stackTrace) {
error = A.wrapException(error);
if (error == null)
@@ -5552,7 +5554,7 @@
return J.toString$0$(object);
if (typeof object == "string")
return JSON.stringify(object);
- return A.Error__objectToString(object);
+ return A.Primitives_safeToString(object);
},
AssertionError$(message) {
return new A.AssertionError(message);
@@ -6520,7 +6522,7 @@
return new A.UriData(text, indices, sourceUri);
},
_createTables() {
- var _i, t2, t3, t4, b,
+ var _i, t2, t3, t4, t5,
_s77_ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",
_s1_ = ".", _s1_0 = ":", _s1_1 = "/", _s1_2 = "\\", _s1_3 = "?", _s1_4 = "#", _s2_ = "/\\",
t1 = type$.Uint8List,
@@ -6530,138 +6532,138 @@
t2 = new A._createTables_build(tables);
t3 = new A._createTables_setChars();
t4 = new A._createTables_setRange();
- t1 = t1._as(t2.call$2(0, 225));
- t3.call$3(t1, _s77_, 1);
- t3.call$3(t1, _s1_, 14);
- t3.call$3(t1, _s1_0, 34);
- t3.call$3(t1, _s1_1, 3);
- t3.call$3(t1, _s1_2, 227);
- t3.call$3(t1, _s1_3, 172);
- t3.call$3(t1, _s1_4, 205);
- b = t2.call$2(14, 225);
- t3.call$3(b, _s77_, 1);
- t3.call$3(b, _s1_, 15);
- t3.call$3(b, _s1_0, 34);
- t3.call$3(b, _s2_, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(15, 225);
- t3.call$3(b, _s77_, 1);
- t3.call$3(b, "%", 225);
- t3.call$3(b, _s1_0, 34);
- t3.call$3(b, _s1_1, 9);
- t3.call$3(b, _s1_2, 233);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(1, 225);
- t3.call$3(b, _s77_, 1);
- t3.call$3(b, _s1_0, 34);
- t3.call$3(b, _s1_1, 10);
- t3.call$3(b, _s1_2, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(2, 235);
- t3.call$3(b, _s77_, 139);
- t3.call$3(b, _s1_1, 131);
- t3.call$3(b, _s1_2, 131);
- t3.call$3(b, _s1_, 146);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(3, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_1, 68);
- t3.call$3(b, _s1_2, 68);
- t3.call$3(b, _s1_, 18);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(4, 229);
- t3.call$3(b, _s77_, 5);
- t4.call$3(b, "AZ", 229);
- t3.call$3(b, _s1_0, 102);
- t3.call$3(b, "@", 68);
- t3.call$3(b, "[", 232);
- t3.call$3(b, _s1_1, 138);
- t3.call$3(b, _s1_2, 138);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(5, 229);
- t3.call$3(b, _s77_, 5);
- t4.call$3(b, "AZ", 229);
- t3.call$3(b, _s1_0, 102);
- t3.call$3(b, "@", 68);
- t3.call$3(b, _s1_1, 138);
- t3.call$3(b, _s1_2, 138);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(6, 231);
- t4.call$3(b, "19", 7);
- t3.call$3(b, "@", 68);
- t3.call$3(b, _s1_1, 138);
- t3.call$3(b, _s1_2, 138);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(7, 231);
- t4.call$3(b, "09", 7);
- t3.call$3(b, "@", 68);
- t3.call$3(b, _s1_1, 138);
- t3.call$3(b, _s1_2, 138);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- t3.call$3(t2.call$2(8, 8), "]", 5);
- b = t2.call$2(9, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_, 16);
- t3.call$3(b, _s2_, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(16, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_, 17);
- t3.call$3(b, _s2_, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(17, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_1, 9);
- t3.call$3(b, _s1_2, 233);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(10, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_, 18);
- t3.call$3(b, _s1_1, 10);
- t3.call$3(b, _s1_2, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(18, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_, 19);
- t3.call$3(b, _s2_, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(19, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s2_, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(11, 235);
- t3.call$3(b, _s77_, 11);
- t3.call$3(b, _s1_1, 10);
- t3.call$3(b, _s1_2, 234);
- t3.call$3(b, _s1_3, 172);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(12, 236);
- t3.call$3(b, _s77_, 12);
- t3.call$3(b, _s1_3, 12);
- t3.call$3(b, _s1_4, 205);
- b = t2.call$2(13, 237);
- t3.call$3(b, _s77_, 13);
- t3.call$3(b, _s1_3, 13);
- t4.call$3(t2.call$2(20, 245), "az", 21);
- b = t2.call$2(21, 245);
- t4.call$3(b, "az", 21);
- t4.call$3(b, "09", 21);
- t3.call$3(b, "+-.", 21);
+ t5 = t1._as(t2.call$2(0, 225));
+ t3.call$3(t5, _s77_, 1);
+ t3.call$3(t5, _s1_, 14);
+ t3.call$3(t5, _s1_0, 34);
+ t3.call$3(t5, _s1_1, 3);
+ t3.call$3(t5, _s1_2, 227);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(14, 225));
+ t3.call$3(t5, _s77_, 1);
+ t3.call$3(t5, _s1_, 15);
+ t3.call$3(t5, _s1_0, 34);
+ t3.call$3(t5, _s2_, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(15, 225));
+ t3.call$3(t5, _s77_, 1);
+ t3.call$3(t5, "%", 225);
+ t3.call$3(t5, _s1_0, 34);
+ t3.call$3(t5, _s1_1, 9);
+ t3.call$3(t5, _s1_2, 233);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(1, 225));
+ t3.call$3(t5, _s77_, 1);
+ t3.call$3(t5, _s1_0, 34);
+ t3.call$3(t5, _s1_1, 10);
+ t3.call$3(t5, _s1_2, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(2, 235));
+ t3.call$3(t5, _s77_, 139);
+ t3.call$3(t5, _s1_1, 131);
+ t3.call$3(t5, _s1_2, 131);
+ t3.call$3(t5, _s1_, 146);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(3, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_1, 68);
+ t3.call$3(t5, _s1_2, 68);
+ t3.call$3(t5, _s1_, 18);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(4, 229));
+ t3.call$3(t5, _s77_, 5);
+ t4.call$3(t5, "AZ", 229);
+ t3.call$3(t5, _s1_0, 102);
+ t3.call$3(t5, "@", 68);
+ t3.call$3(t5, "[", 232);
+ t3.call$3(t5, _s1_1, 138);
+ t3.call$3(t5, _s1_2, 138);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(5, 229));
+ t3.call$3(t5, _s77_, 5);
+ t4.call$3(t5, "AZ", 229);
+ t3.call$3(t5, _s1_0, 102);
+ t3.call$3(t5, "@", 68);
+ t3.call$3(t5, _s1_1, 138);
+ t3.call$3(t5, _s1_2, 138);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(6, 231));
+ t4.call$3(t5, "19", 7);
+ t3.call$3(t5, "@", 68);
+ t3.call$3(t5, _s1_1, 138);
+ t3.call$3(t5, _s1_2, 138);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(7, 231));
+ t4.call$3(t5, "09", 7);
+ t3.call$3(t5, "@", 68);
+ t3.call$3(t5, _s1_1, 138);
+ t3.call$3(t5, _s1_2, 138);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t3.call$3(t1._as(t2.call$2(8, 8)), "]", 5);
+ t5 = t1._as(t2.call$2(9, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_, 16);
+ t3.call$3(t5, _s2_, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(16, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_, 17);
+ t3.call$3(t5, _s2_, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(17, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_1, 9);
+ t3.call$3(t5, _s1_2, 233);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(10, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_, 18);
+ t3.call$3(t5, _s1_1, 10);
+ t3.call$3(t5, _s1_2, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(18, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_, 19);
+ t3.call$3(t5, _s2_, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(19, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s2_, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(11, 235));
+ t3.call$3(t5, _s77_, 11);
+ t3.call$3(t5, _s1_1, 10);
+ t3.call$3(t5, _s1_2, 234);
+ t3.call$3(t5, _s1_3, 172);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(12, 236));
+ t3.call$3(t5, _s77_, 12);
+ t3.call$3(t5, _s1_3, 12);
+ t3.call$3(t5, _s1_4, 205);
+ t5 = t1._as(t2.call$2(13, 237));
+ t3.call$3(t5, _s77_, 13);
+ t3.call$3(t5, _s1_3, 13);
+ t4.call$3(t1._as(t2.call$2(20, 245)), "az", 21);
+ t2 = t1._as(t2.call$2(21, 245));
+ t4.call$3(t2, "az", 21);
+ t4.call$3(t2, "09", 21);
+ t3.call$3(t2, "+-.", 21);
return tables;
},
_scan(uri, start, end, state, indices) {
@@ -6900,7 +6902,7 @@
return t1;
},
HttpRequest_request(url, method, responseType, withCredentials) {
- var t2, t3, t4,
+ var t2, t3,
t1 = new A._Future($.Zone__current, type$._Future_HttpRequest),
completer = new A._AsyncCompleter(t1, type$._AsyncCompleter_HttpRequest),
xhr = new XMLHttpRequest();
@@ -6910,11 +6912,9 @@
if (responseType != null)
xhr.responseType = responseType;
t2 = type$.nullable_void_Function_ProgressEvent;
- t3 = t2._as(new A.HttpRequest_request_closure(xhr, completer));
- type$.nullable_void_Function._as(null);
- t4 = type$.ProgressEvent;
- A._EventStreamSubscription$(xhr, "load", t3, false, t4);
- A._EventStreamSubscription$(xhr, "error", t2._as(completer.get$completeError()), false, t4);
+ t3 = type$.ProgressEvent;
+ A._EventStreamSubscription$(xhr, "load", t2._as(new A.HttpRequest_request_closure(xhr, completer)), false, t3);
+ A._EventStreamSubscription$(xhr, "error", t2._as(completer.get$completeError()), false, t3);
xhr.send();
return t1;
},
@@ -7715,6 +7715,13 @@
this._stream_queue$_completer = t0;
this.$ti = t1;
},
+ CopyOnWriteList: function CopyOnWriteList(t0, t1, t2) {
+ var _ = this;
+ _._copyBeforeWrite = true;
+ _._growable = t0;
+ _._copy_on_write_list$_list = t1;
+ _.$ti = t2;
+ },
hashObjects(objects) {
return A._finish(B.JSArray_methods.fold$1$2(objects, 0, new A.hashObjects_closure(), type$.int));
},
@@ -8858,10 +8865,10 @@
},
LegacyRestarter: function LegacyRestarter() {
},
- LegacyRestarter_restart_closure: function LegacyRestarter_restart_closure(t0) {
+ LegacyRestarter_restart_closure0: function LegacyRestarter_restart_closure0(t0) {
this.reloadCompleter = t0;
},
- LegacyRestarter_restart_closure0: function LegacyRestarter_restart_closure0(t0) {
+ LegacyRestarter_restart_closure: function LegacyRestarter_restart_closure(t0) {
this.sub = t0;
},
ReloadingManager: function ReloadingManager(t0, t1) {
@@ -9325,6 +9332,9 @@
sort$1$ax(receiver, a0) {
return J.getInterceptor$ax(receiver).sort$1(receiver, a0);
},
+ sublist$2$ax(receiver, a0, a1) {
+ return J.getInterceptor$ax(receiver).sublist$2(receiver, a0, a1);
+ },
then$1$1$x(receiver, a0, $T1) {
return J.getInterceptor$x(receiver).then$1$1(receiver, a0, $T1);
},
@@ -9334,6 +9344,9 @@
toList$0$ax(receiver) {
return J.getInterceptor$ax(receiver).toList$0(receiver);
},
+ toList$1$growable$ax(receiver, a0) {
+ return J.getInterceptor$ax(receiver).toList$1$growable(receiver, a0);
+ },
toLowerCase$0$s(receiver) {
return J.getInterceptor$s(receiver).toLowerCase$0(receiver);
},
@@ -10369,16 +10382,19 @@
end = endOrLength;
$length = end - start;
if ($length <= 0) {
- t1 = J.JSArray_JSArray$fixed(0, _this.$ti._precomputed1);
- return t1;
+ t1 = _this.$ti._precomputed1;
+ return growable ? J.JSArray_JSArray$growable(0, t1) : J.JSArray_JSArray$fixed(0, t1);
}
- result = A.List_List$filled($length, t2.elementAt$1(t1, start), false, _this.$ti._precomputed1);
+ result = A.List_List$filled($length, t2.elementAt$1(t1, start), growable, _this.$ti._precomputed1);
for (i = 1; i < $length; ++i) {
B.JSArray_methods.$indexSet(result, i, t2.elementAt$1(t1, start + i));
if (t2.get$length(t1) < end)
throw A.wrapException(A.ConcurrentModificationError$(_this));
}
return result;
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
}
};
A.ListIterator.prototype = {
@@ -10544,6 +10560,13 @@
skip$1(_, count) {
A.RangeError_checkNotNegative(count, "count");
return this;
+ },
+ toList$1$growable(_, growable) {
+ var t1 = J.JSArray_JSArray$growable(0, this.$ti._precomputed1);
+ return t1;
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
}
};
A.EmptyIterator.prototype = {
@@ -11638,7 +11661,7 @@
t1 = _this.$ti;
t1._eval$1("1/?")._as(value);
if (value == null)
- t1._precomputed1._as(value);
+ value = t1._precomputed1._as(value);
if (!_this.isSync)
_this._future._asyncComplete$1(value);
else {
@@ -11646,7 +11669,7 @@
if (t1._eval$1("Future<1>")._is(value))
t2._chainFuture$1(value);
else
- t2._completeWithValue$1(t1._precomputed1._as(value));
+ t2._completeWithValue$1(value);
}
},
completeError$2(e, st) {
@@ -11947,7 +11970,7 @@
this._chainFuture$1(value);
return;
}
- this._asyncCompleteWithValue$1(t1._precomputed1._as(value));
+ this._asyncCompleteWithValue$1(value);
},
_asyncCompleteWithValue$1(value) {
var _this = this;
@@ -12234,7 +12257,6 @@
return A._instanceType(this.$this)._eval$1("~(Stream.T)");
}
};
- A.StreamSubscription.prototype = {};
A.StreamTransformerBase.prototype = {$isStreamTransformer: 1};
A._StreamController.prototype = {
get$_pendingEvents() {
@@ -12526,7 +12548,6 @@
},
asFuture$1$1(futureValue, $E) {
var result, t1 = {};
- $E._eval$1("0?")._as(futureValue);
t1.resultValue = null;
if (!$E._is(null))
throw A.wrapException(A.ArgumentError$notNull("futureValue"));
@@ -14102,6 +14123,12 @@
return true;
return false;
},
+ toList$1$growable(_, growable) {
+ return A.List_List$from(this, true, this.$ti._precomputed1);
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
get$length(_) {
var count,
t1 = this.$ti,
@@ -14200,6 +14227,21 @@
skip$1(receiver, count) {
return A.SubListIterable$(receiver, count, null, A.instanceType(receiver)._eval$1("ListMixin.E"));
},
+ toList$1$growable(receiver, growable) {
+ var t1, first, result, i, _this = this;
+ if (_this.get$isEmpty(receiver)) {
+ t1 = J.JSArray_JSArray$growable(0, A.instanceType(receiver)._eval$1("ListMixin.E"));
+ return t1;
+ }
+ first = _this.$index(receiver, 0);
+ result = A.List_List$filled(_this.get$length(receiver), first, true, A.instanceType(receiver)._eval$1("ListMixin.E"));
+ for (i = 1; i < _this.get$length(receiver); ++i)
+ B.JSArray_methods.$indexSet(result, i, _this.$index(receiver, i));
+ return result;
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
cast$1$0(receiver, $R) {
return new A.CastList(receiver, A.instanceType(receiver)._eval$1("@<ListMixin.E>")._bind$1($R)._eval$1("CastList<1,2>"));
},
@@ -14385,6 +14427,29 @@
t3 = t1[t3];
return t3 == null ? _this.$ti._precomputed1._as(t3) : t3;
},
+ toList$1$growable(_, growable) {
+ var t1, list, i, t2, t3, _this = this,
+ mask = _this._table.length - 1,
+ $length = (_this._tail - _this._head & mask) >>> 0;
+ if ($length === 0) {
+ t1 = J.JSArray_JSArray$growable(0, _this.$ti._precomputed1);
+ return t1;
+ }
+ t1 = _this.$ti._precomputed1;
+ list = A.List_List$filled($length, _this.get$first(_this), true, t1);
+ for (i = 0; i < $length; ++i) {
+ t2 = _this._table;
+ t3 = (_this._head + i & mask) >>> 0;
+ if (!(t3 < t2.length))
+ return A.ioore(t2, t3);
+ t3 = t2[t3];
+ B.JSArray_methods.$indexSet(list, i, t3 == null ? t1._as(t3) : t3);
+ }
+ return list;
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
toString$0(_) {
return A.IterableBase_iterableToFullString(this, "{", "}");
},
@@ -14482,6 +14547,12 @@
}
return true;
},
+ toList$1$growable(_, growable) {
+ return A.List_List$of(this, true, A._instanceType(this)._precomputed1);
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
map$1$1(_, f, $T) {
var t1 = A._instanceType(this);
return new A.EfficientLengthMappedIterable(this, t1._bind$1($T)._eval$1("1(2)")._as(f), t1._eval$1("@<1>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>"));
@@ -15067,15 +15138,11 @@
};
A.JsonCodec.prototype = {
decode$2$reviver(_, source, reviver) {
- var t1;
- type$.nullable_nullable_Object_Function_2_nullable_Object_and_nullable_Object._as(reviver);
- t1 = A._parseJson(source, this.get$decoder()._reviver);
+ var t1 = A._parseJson(source, this.get$decoder()._reviver);
return t1;
},
encode$2$toEncodable(value, toEncodable) {
- var t1;
- type$.nullable_nullable_Object_Function_dynamic._as(toEncodable);
- t1 = A._JsonStringStringifier_stringify(value, this.get$encoder()._toEncodable, null);
+ var t1 = A._JsonStringStringifier_stringify(value, this.get$encoder()._toEncodable, null);
return t1;
},
get$encoder() {
@@ -18029,7 +18096,8 @@
},
set$_onData(_onData) {
this._onData = type$.nullable_dynamic_Function_Event._as(_onData);
- }
+ },
+ $isStreamSubscription: 1
};
A._EventStreamSubscription_closure.prototype = {
call$1(e) {
@@ -18264,6 +18332,7 @@
} catch (exception) {
}
try {
+ type$.Element._as(element);
elementTagName = A.Element__safeTagName(element);
this._sanitizeElement$7(element, $parent, corrupted, elementText, elementTagName, type$.Map_dynamic_dynamic._as(attrs), A._asStringQ(isAttr));
} catch (exception) {
@@ -18326,15 +18395,10 @@
_this.sanitizeTree$1(t1);
}
},
- $isNodeTreeSanitizer: 1
- };
- A._ValidatingTreeSanitizer_sanitizeTree_walk.prototype = {
- call$2(node, $parent) {
- var child, nextChild, t2, t3, t4, exception,
- t1 = this.$this;
+ sanitizeNode$2(node, $parent) {
switch (node.nodeType) {
case 1:
- t1._sanitizeUntrustedElement$2(node, $parent);
+ this._sanitizeUntrustedElement$2(node, $parent);
break;
case 8:
case 11:
@@ -18342,8 +18406,16 @@
case 4:
break;
default:
- t1._removeNode$2(node, $parent);
+ this._removeNode$2(node, $parent);
}
+ },
+ $isNodeTreeSanitizer: 1
+ };
+ A._ValidatingTreeSanitizer_sanitizeTree_walk.prototype = {
+ call$2(node, $parent) {
+ var child, nextChild, t2, t3, t4, exception,
+ t1 = this.$this;
+ t1.sanitizeNode$2(node, $parent);
child = node.lastChild;
for (t2 = type$.Node; child != null;) {
nextChild = null;
@@ -19217,6 +19289,87 @@
},
$is_EventRequest: 1
};
+ A.CopyOnWriteList.prototype = {
+ get$length(_) {
+ return J.get$length$asx(this._copy_on_write_list$_list);
+ },
+ $index(_, index) {
+ return J.$index$asx(this._copy_on_write_list$_list, index);
+ },
+ cast$1$0(_, $T) {
+ return new A.CopyOnWriteList(true, J.cast$1$0$ax(this._copy_on_write_list$_list, $T), $T._eval$1("CopyOnWriteList<0>"));
+ },
+ contains$1(_, element) {
+ return J.contains$1$asx(this._copy_on_write_list$_list, element);
+ },
+ elementAt$1(_, index) {
+ return J.elementAt$1$ax(this._copy_on_write_list$_list, index);
+ },
+ get$first(_) {
+ return J.get$first$ax(this._copy_on_write_list$_list);
+ },
+ forEach$1(_, f) {
+ this.$ti._eval$1("~(1)")._as(f);
+ return J.forEach$1$ax(this._copy_on_write_list$_list, f);
+ },
+ get$isEmpty(_) {
+ return J.get$isEmpty$asx(this._copy_on_write_list$_list);
+ },
+ get$isNotEmpty(_) {
+ return J.get$isNotEmpty$asx(this._copy_on_write_list$_list);
+ },
+ get$iterator(_) {
+ return J.get$iterator$ax(this._copy_on_write_list$_list);
+ },
+ map$1$1(_, f, $T) {
+ this.$ti._bind$1($T)._eval$1("1(2)")._as(f);
+ return J.map$1$1$ax(this._copy_on_write_list$_list, f, $T);
+ },
+ map$1($receiver, f) {
+ return this.map$1$1($receiver, f, type$.dynamic);
+ },
+ skip$1(_, count) {
+ return J.skip$1$ax(this._copy_on_write_list$_list, count);
+ },
+ sublist$2(_, start, end) {
+ return J.sublist$2$ax(this._copy_on_write_list$_list, start, end);
+ },
+ sublist$1($receiver, start) {
+ return this.sublist$2($receiver, start, null);
+ },
+ toList$1$growable(_, growable) {
+ return J.toList$1$growable$ax(this._copy_on_write_list$_list, true);
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
+ $indexSet(_, index, element) {
+ this.$ti._precomputed1._as(element);
+ this._maybeCopyBeforeWrite$0();
+ J.$indexSet$ax(this._copy_on_write_list$_list, index, element);
+ },
+ sort$1(_, compare) {
+ this.$ti._eval$1("int(1,1)?")._as(compare);
+ this._maybeCopyBeforeWrite$0();
+ J.sort$1$ax(this._copy_on_write_list$_list, compare);
+ },
+ toString$0(_) {
+ return J.toString$0$(this._copy_on_write_list$_list);
+ },
+ _maybeCopyBeforeWrite$0() {
+ var _this = this;
+ if (!_this._copyBeforeWrite)
+ return;
+ _this._copyBeforeWrite = false;
+ _this.set$_copy_on_write_list$_list(A.List_List$from(_this._copy_on_write_list$_list, true, _this.$ti._precomputed1));
+ },
+ set$_copy_on_write_list$_list(_list) {
+ this._copy_on_write_list$_list = this.$ti._eval$1("List<1>")._as(_list);
+ },
+ $isEfficientLengthIterable: 1,
+ $isIterable: 1,
+ $isList: 1
+ };
A.hashObjects_closure.prototype = {
call$2(h, i) {
return A._combine(A._asInt(h), J.get$hashCode$(i));
@@ -19277,6 +19430,12 @@
contains$1(_, element) {
return B.JSArray_methods.contains$1(this._list, element);
},
+ toList$1$growable(_, growable) {
+ return new A.CopyOnWriteList(true, this._list, this.$ti._eval$1("CopyOnWriteList<1>"));
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
get$isEmpty(_) {
return this._list.length === 0;
},
@@ -19863,6 +20022,13 @@
contains$1(_, element) {
return this._set$_set.contains$1(0, element);
},
+ toList$1$growable(_, growable) {
+ var t1 = this._set$_set;
+ return A.List_List$of(t1, true, A._instanceType(t1)._precomputed1);
+ },
+ toList$0($receiver) {
+ return this.toList$1$growable($receiver, true);
+ },
get$isEmpty(_) {
return this._set$_set._collection$_length === 0;
},
@@ -23978,7 +24144,7 @@
A.PoolResource.prototype = {};
A.SseClient.prototype = {
SseClient$2$debugKey(serverUrl, debugKey) {
- var t2, t3, t4, _this = this,
+ 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));
@@ -23987,13 +24153,10 @@
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 = _this.__SseClient__eventSource_A;
- t2 = type$.nullable_void_Function_Event;
- t3 = t2._as(new A.SseClient_closure0(_this));
- type$.nullable_void_Function._as(null);
- t4 = type$.Event;
- A._EventStreamSubscription$(t1, "open", t3, false, t4);
- A._EventStreamSubscription$(_this.__SseClient__eventSource_A, "error", t2._as(new A.SseClient_closure1(_this)), false, t4);
+ t1 = type$.nullable_void_Function_Event;
+ t2 = type$.Event;
+ 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);
},
close$0(_) {
var _this = this,
@@ -24480,9 +24643,7 @@
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);
- t1 = type$.nullable_void_Function_MessageEvent._as(new A.HtmlWebSocketChannel_closure1(_this));
- type$.nullable_void_Function._as(null);
- A._EventStreamSubscription$(t2, "message", t1, false, type$.MessageEvent);
+ 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);
},
@@ -24627,12 +24788,8 @@
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;
- t2 = type$.nullable_void_Function_KeyboardEvent._as(new A.main__closure6());
- type$.nullable_void_Function._as(null);
- A._EventStreamSubscription$(t1, "keydown", t2, false, type$.KeyboardEvent);
- }
+ if (A.boolConversionCheck(self.$dwdsEnableDevtoolsLaunch))
+ A._EventStreamSubscription$(window, "keydown", type$.nullable_void_Function_KeyboardEvent._as(new A.main__closure6()), false, type$.KeyboardEvent);
if (B.JSString_methods.contains$1(window.navigator.vendor, "Google")) {
t1 = client.get$sink();
t2 = $.$get$serializers();
@@ -24945,7 +25102,7 @@
restart$1$runId(runId) {
var $async$goto = 0,
$async$completer = A._makeAsyncAwaitCompleter(type$.bool),
- $async$returnValue, t1, t2, t3, dartLibrary;
+ $async$returnValue, t1, dartLibrary;
var $async$restart$1$runId = A._wrapJsFunctionForAsync(function($async$errorCode, $async$result) {
if ($async$errorCode === 1)
return A._asyncRethrow($async$result, $async$completer);
@@ -24962,10 +25119,7 @@
dartLibrary.callMethod$2("reload", [A._wrapToDart(A.JsObject__convertDataTree(t1))]);
}
t1 = new A._Future($.Zone__current, type$._Future_bool);
- t2 = window;
- t3 = type$.nullable_void_Function_MessageEvent._as(new A.LegacyRestarter_restart_closure(new A._AsyncCompleter(t1, type$._AsyncCompleter_bool)));
- type$.nullable_void_Function._as(null);
- $async$returnValue = t1.then$1$1(0, new A.LegacyRestarter_restart_closure0(A._EventStreamSubscription$(t2, "message", t3, false, type$.MessageEvent)), type$.bool);
+ $async$returnValue = t1.then$1$1(0, new A.LegacyRestarter_restart_closure(A._EventStreamSubscription$(window, "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;
@@ -24978,7 +25132,7 @@
},
$isRestarter: 1
};
- A.LegacyRestarter_restart_closure.prototype = {
+ A.LegacyRestarter_restart_closure0.prototype = {
call$1($event) {
var t1,
message = new A._AcceptStructuredCloneDart2Js([], []).convertNativeToDart_AcceptStructuredClone$2$mustCopy(type$.MessageEvent._as($event).data, true);
@@ -24992,7 +25146,7 @@
},
$signature: 33
};
- A.LegacyRestarter_restart_closure0.prototype = {
+ A.LegacyRestarter_restart_closure.prototype = {
call$1(value) {
A._asBool(value);
this.sub.cancel$0(0);
@@ -25014,7 +25168,6 @@
// Function start
t1 = $async$self._client.get$sink();
t2 = $.$get$serializers();
- type$.nullable_void_Function_IsolateExitBuilder._as(null);
t1.add$1(0, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(new A.IsolateExitBuilder()._isolate_events$_build$0()), null));
$async$goto = 3;
return A._asyncAwait($async$self._restarter.restart$1$runId(runId), $async$hotRestart$1$runId);
@@ -25042,7 +25195,6 @@
return;
t1 = this._client.get$sink();
t2 = $.$get$serializers();
- type$.nullable_void_Function_IsolateStartBuilder._as(null);
t1.add$1(0, B.C_JsonCodec.encode$2$toEncodable(t2.serialize$1(new A.IsolateStartBuilder()._isolate_events$_build$0()), null));
}
};
@@ -25559,7 +25711,7 @@
_inherit = hunkHelpers.inherit,
_inheritMany = hunkHelpers.inheritMany;
_inherit(A.Object, null);
- _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapMixin, A.Error, A.SentinelValue, A.ListIterator, A.Iterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._ListBase_Object_ListMixin, A.Symbol, A.MapView, A.ConstantMap, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A.StreamSubscription, A.StreamTransformerBase, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.__SetBase_Object_SetMixin, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A.IterableMixin, A.ListMixin, A._UnmodifiableMapMixin, A._ListQueueIterator, A.SetMixin, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A._JsonStringifier, A._Utf8Encoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.Expando, A.CssStyleDeclarationBase, A.EventStreamProvider, A._Html5NodeValidator, A.ImmutableListMixin, A.NodeValidatorBuilder, A._SimpleNodeValidator, A._SvgNodeValidator, A.FixedSizeListIterator, A._DOMWindowCrossFrame, A._SameOriginUriPolicy, A._ValidatingTreeSanitizer, A._StructuredClone, A._AcceptStructuredClone, A.JsObject, A.NullRejectionException, A._JSRandom, A._Random, A.AsyncMemoizer, A.DelegatingStreamSink, A.ErrorResult, A.ValueResult, A.StreamQueue, A._NextRequest, A._HasNextRequest, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.UriSerializer, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.BatchedStreamController, A.SocketClient, A.Int64, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.WebSocketChannelException, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]);
+ _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Iterable, A.CastIterator, A.Closure, A.MapMixin, A.Error, A.SentinelValue, A.ListIterator, A.Iterator, A.EmptyIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A._ListBase_Object_ListMixin, A.Symbol, A.MapView, A.ConstantMap, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A.ExceptionAndStackTrace, A._StackTrace, A._Required, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A._AsyncAwaitCompleter, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A.Stream, A.StreamTransformerBase, A._StreamController, A._SyncStreamControllerDispatch, A._AsyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._StreamIterator, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.__SetBase_Object_SetMixin, A._HashSetIterator, A._LinkedHashSetCell, A._LinkedHashSetIterator, A.IterableMixin, A.ListMixin, A._UnmodifiableMapMixin, A._ListQueueIterator, A.SetMixin, A._SplayTreeNode, A._SplayTree, A._SplayTreeIterator, A.Codec, A._JsonStringifier, A._Utf8Encoder, A._BigIntImpl, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.IntegerDivisionByZeroException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.Expando, A.CssStyleDeclarationBase, A.EventStreamProvider, A._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.CopyOnWriteList, A.BuiltList, A.ListBuilder, A.BuiltListMultimap, A.ListMultimapBuilder, A.BuiltMap, A.MapBuilder, A.BuiltSet, A.SetBuilder, A.BuiltSetMultimap, A.SetMultimapBuilder, A.EnumClass, A.IndentingBuiltValueToStringHelper, A.JsonObject, A.FullType, A.BigIntSerializer, A.BoolSerializer, A.BuiltJsonSerializers, A.BuiltJsonSerializersBuilder, A.BuiltListMultimapSerializer, A.BuiltListSerializer, A.BuiltMapSerializer, A.BuiltSetMultimapSerializer, A.BuiltSetSerializer, A.DateTimeSerializer, A.DoubleSerializer, A.DurationSerializer, A.Int64Serializer, A.IntSerializer, A.JsonObjectSerializer, A.NullSerializer, A.NumSerializer, A.RegExpSerializer, A.StringSerializer, A.UriSerializer, A.DefaultEquality, A.IterableEquality, A.ListEquality, A._UnorderedEquality, A._MapEntry, A.MapEquality, A.DeepCollectionEquality, A._QueueList_Object_ListMixin, A.BuildResult, A._$BuildStatusSerializer, A._$BuildResultSerializer, A.BuildResultBuilder, A.ConnectRequest, A._$ConnectRequestSerializer, A.ConnectRequestBuilder, A.DebugEvent, A.BatchedDebugEvents, A._$DebugEventSerializer, A._$BatchedDebugEventsSerializer, A.DebugEventBuilder, A.BatchedDebugEventsBuilder, A.DebugInfo, A._$DebugInfoSerializer, A.DebugInfoBuilder, A.DevToolsRequest, A.DevToolsResponse, A._$DevToolsRequestSerializer, A._$DevToolsResponseSerializer, A.DevToolsRequestBuilder, A.DevToolsResponseBuilder, A.ErrorResponse, A._$ErrorResponseSerializer, A.ErrorResponseBuilder, A.ExtensionRequest, A.ExtensionResponse, A.ExtensionEvent, A.BatchedEvents, A._$ExtensionRequestSerializer, A._$ExtensionResponseSerializer, A._$ExtensionEventSerializer, A._$BatchedEventsSerializer, A.ExtensionRequestBuilder, A.ExtensionResponseBuilder, A.ExtensionEventBuilder, A.BatchedEventsBuilder, A.IsolateExit, A.IsolateStart, A._$IsolateExitSerializer, A._$IsolateStartSerializer, A.IsolateExitBuilder, A.IsolateStartBuilder, A.RegisterEvent, A._$RegisterEventSerializer, A.RegisterEventBuilder, A.RunRequest, A._$RunRequestSerializer, A.BatchedStreamController, A.SocketClient, A.Int64, A.Level, A.LogRecord, A.Logger, A.Pool, A.PoolResource, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Uuid, A.WebSocketChannelException, A.LegacyRestarter, A.ReloadingManager, A.HotReloadFailedException, A.RequireRestarter]);
_inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.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]);
@@ -25569,7 +25721,7 @@
_inheritMany(A._CastIterableBase, [A.CastIterable, A.__CastListBase__CastIterableBase_ListMixin, A.CastSet, A.CastQueue]);
_inherit(A._EfficientLengthCastIterable, A.CastIterable);
_inherit(A._CastListBase, A.__CastListBase__CastIterableBase_ListMixin);
- _inheritMany(A.Closure, [A.Closure2Args, A.Closure0Args, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._awaitOnObject_closure, A._Future__chainForeignFuture_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A._Future_timeout_closure0, A.Stream_length_closure, A.Stream_first_closure0, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._CustomHashMap_closure, A._LinkedCustomHashMap_closure, A.SplayTreeSet_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A._createTables_setChars, A._createTables_setRange, A.Element_Element$html_closure, A.HttpRequest_request_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.NodeValidatorBuilder_allowsElement_closure, A.NodeValidatorBuilder_allowsAttribute_closure, A._SimpleNodeValidator_closure, A._SimpleNodeValidator_closure0, A._TemplatingNodeValidator_closure, A._convertDartToNative_Value_closure, A.JsObject__convertDataTree__convert, A._convertToJS_closure, A._convertToJS_closure0, A._wrapToDart_closure, A._wrapToDart_closure0, A._wrapToDart_closure1, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.WebSocketClient_stream_closure, A.stronglyConnectedComponents_strongConnect, A.Pool__runOnRelease_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4__generateBits, A._GuaranteeSink__addError_closure, A.HtmlWebSocketChannel_closure, A.HtmlWebSocketChannel_closure0, A.HtmlWebSocketChannel_closure1, A.HtmlWebSocketChannel_closure2, A.main__closure, A.main__closure0, A.main___closure2, A.main___closure1, A.main__closure2, A.main___closure0, A.main___closure, A.main__closure4, A.main__closure5, A.main__closure6, A.main__closure7, A._launchCommunicationWithDebugExtension_closure, A._listenForDebugExtensionAuthRequest_closure, A.LegacyRestarter_restart_closure, A.LegacyRestarter_restart_closure0, A.toFuture_closure, A.RequireRestarter__reloadModule_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._LinkedCustomHashMap_closure, A.SplayTreeSet_closure, A._BigIntImpl_hashCode_finish, A._Uri__makePath_closure, A._createTables_setChars, A._createTables_setRange, A.Element_Element$html_closure, A.HttpRequest_request_closure, A._EventStreamSubscription_closure, A._EventStreamSubscription_onData_closure, A.NodeValidatorBuilder_allowsElement_closure, A.NodeValidatorBuilder_allowsAttribute_closure, A._SimpleNodeValidator_closure, A._SimpleNodeValidator_closure0, A._TemplatingNodeValidator_closure, A._convertDartToNative_Value_closure, A.JsObject__convertDataTree__convert, A._convertToJS_closure, A._convertToJS_closure0, A._wrapToDart_closure, A._wrapToDart_closure0, A._wrapToDart_closure1, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.StreamQueue__ensureListening_closure, A.BuiltListMultimap_BuiltListMultimap_closure, A.BuiltListMultimap_hashCode_closure, A.ListMultimapBuilder_replace_closure, A.BuiltMap_BuiltMap_closure, A.BuiltMap_hashCode_closure, A.BuiltSet_hashCode_closure, A.BuiltSetMultimap_hashCode_closure, A.SetMultimapBuilder_replace_closure, A.newBuiltValueToStringHelper_closure, A.BuiltListMultimapSerializer_serialize_closure, A.BuiltListMultimapSerializer_deserialize_closure, A.BuiltListSerializer_serialize_closure, A.BuiltListSerializer_deserialize_closure, A.BuiltSetMultimapSerializer_serialize_closure, A.BuiltSetMultimapSerializer_deserialize_closure, A.BuiltSetSerializer_serialize_closure, A.BuiltSetSerializer_deserialize_closure, A.WebSocketClient_stream_closure, A.stronglyConnectedComponents_strongConnect, A.Pool__runOnRelease_closure, A.SseClient_closure0, A.SseClient_closure1, A.generateUuidV4__generateBits, A._GuaranteeSink__addError_closure, A.HtmlWebSocketChannel_closure, A.HtmlWebSocketChannel_closure0, A.HtmlWebSocketChannel_closure1, A.HtmlWebSocketChannel_closure2, A.main__closure, A.main__closure0, A.main___closure2, A.main___closure1, A.main__closure2, A.main___closure0, A.main___closure, A.main__closure4, A.main__closure5, A.main__closure6, A.main__closure7, A._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.SplayTreeSet__newSet_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]);
_inherit(A.CastList, A._CastListBase);
_inherit(A.MapBase, A.MapMixin);
@@ -25678,7 +25830,6 @@
_inherit(A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin, A.__StyleSheetList_JavaScriptObject_ListMixin);
_inherit(A._StyleSheetList, A.__StyleSheetList_JavaScriptObject_ListMixin_ImmutableListMixin);
_inherit(A._ElementAttributeMap, A._AttributeMap);
- _inherit(A._EventStreamSubscription, A.StreamSubscription);
_inherit(A._TemplatingNodeValidator, A._SimpleNodeValidator);
_inherit(A._StructuredCloneDart2Js, A._StructuredClone);
_inherit(A._AcceptStructuredCloneDart2Js, A._AcceptStructuredClone);
@@ -25797,7 +25948,7 @@
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":[]},"JSNull":{"Null":[]},"JavaScriptObject":{"JSObject":[]},"LegacyJavaScriptObject":{"JSObject":[],"Promise":["1&"],"JsError":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","Iterable.E":"2"},"CastSet":{"Set":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"CastMap":{"MapMixin":["3","4"],"Map":["3","4"],"MapMixin.K":"3","MapMixin.V":"4"},"CastQueue":{"Queue":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"LateError":{"Error":[]},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_ConstantMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Function":[]},"Closure2Args":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"_CyclicInitializationError":{"Error":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JSObject":[],"ByteBuffer":[]},"NativeTypedData":{"JSObject":[],"TypedData":[]},"NativeByteData":{"NativeTypedData":[],"JSObject":[],"TypedData":[]},"NativeTypedArray":{"NativeTypedData":[],"JavaScriptIndexingBehavior":["1"],"JSObject":[],"TypedData":[]},"NativeTypedArrayOfDouble":{"ListMixin":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"ListMixin":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeFloat64List":{"ListMixin":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeInt16List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt32List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt8List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint16List":{"ListMixin":["int"],"Uint16List":[],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint32List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8ClampedList":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8List":{"ListMixin":["int"],"Uint8List":[],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"StreamTransformerBase":{"StreamTransformer":["1","2"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","UnmodifiableListMixin.E":"1"},"IterableBase":{"Iterable":["1"]},"ListBase":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"],"Map":["1","2"]},"MapMixin":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"ListIterable":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"_SetBase":{"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.1":"2","_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1"},"SplayTreeSet":{"SetMixin":["1"],"Set":["1"],"IterableMixin":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"_SplayTree.K":"1","_SplayTree.1":"_SplayTreeSetNode<1>"},"_JsonMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"Base64Codec":{"Codec":["List<int>","String"],"Codec.S":"List<int>"},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List<int>"]},"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<int>"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"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":{"ListMixin":["Rectangle<num>"],"ImmutableListMixin":["Rectangle<num>"],"List":["Rectangle<num>"],"JavaScriptIndexingBehavior":["Rectangle<num>"],"EfficientLengthIterable":["Rectangle<num>"],"JSObject":[],"Iterable":["Rectangle<num>"],"ImmutableListMixin.E":"Rectangle<num>","ListMixin.E":"Rectangle<num>"},"DomRectReadOnly":{"Rectangle":["num"],"JSObject":[]},"DomStringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"DomTokenList":{"JSObject":[]},"_FrozenElementList":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1"},"EventSource":{"EventTarget":[],"JSObject":[]},"EventTarget":{"JSObject":[]},"FileList":{"ListMixin":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"JSObject":[],"Iterable":["File"],"ImmutableListMixin.E":"File","ListMixin.E":"File"},"FileWriter":{"EventTarget":[],"JSObject":[]},"FormElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"History":{"JSObject":[]},"HtmlCollection":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"HtmlDocument":{"Document":[],"Node":[],"EventTarget":[],"JSObject":[]},"HttpRequestEventTarget":{"EventTarget":[],"JSObject":[]},"ImageData":{"JSObject":[]},"Location":{"JSObject":[]},"MediaList":{"JSObject":[]},"MessagePort":{"EventTarget":[],"JSObject":[]},"MidiInputMap":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MidiOutputMap":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MimeTypeArray":{"ListMixin":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"JSObject":[],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListMixin.E":"MimeType"},"_ChildNodeListLazy":{"ListMixin":["Node"],"List":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ListMixin.E":"Node"},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"PluginArray":{"ListMixin":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"JSObject":[],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListMixin.E":"Plugin"},"RtcStatsReport":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"SelectElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"SharedArrayBuffer":{"JSObject":[]},"SourceBufferList":{"ListMixin":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"EventTarget":[],"List":["SourceBuffer"],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"JSObject":[],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListMixin.E":"SourceBuffer"},"SpeechGrammarList":{"ListMixin":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"JSObject":[],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListMixin.E":"SpeechGrammar"},"Storage":{"MapMixin":["String","String"],"JSObject":[],"Map":["String","String"],"MapMixin.K":"String","MapMixin.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":{"ListMixin":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"JSObject":[],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListMixin.E":"TextTrackCue"},"TextTrackList":{"ListMixin":["TextTrack"],"ImmutableListMixin":["TextTrack"],"EventTarget":[],"List":["TextTrack"],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"JSObject":[],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListMixin.E":"TextTrack"},"TimeRanges":{"JSObject":[]},"TouchList":{"ListMixin":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"JSObject":[],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListMixin.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":{"ListMixin":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"JSObject":[],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListMixin.E":"CssRule"},"_DomRect":{"Rectangle":["num"],"JSObject":[]},"_GamepadList":{"ListMixin":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"JSObject":[],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListMixin.E":"Gamepad?"},"_NamedNodeMap":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"_SpeechRecognitionResultList":{"ListMixin":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"JSObject":[],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListMixin.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListMixin":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"JSObject":[],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListMixin.E":"StyleSheet"},"_AttributeMap":{"MapMixin":["String","String"],"Map":["String","String"]},"_ElementAttributeMap":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"NodeValidatorBuilder":{"NodeValidator":[]},"_SimpleNodeValidator":{"NodeValidator":[]},"_TemplatingNodeValidator":{"NodeValidator":[]},"_SvgNodeValidator":{"NodeValidator":[]},"FixedSizeListIterator":{"Iterator":["1"]},"_DOMWindowCrossFrame":{"WindowBase":[],"EventTarget":[],"JSObject":[]},"_SameOriginUriPolicy":{"UriPolicy":[]},"_ValidatingTreeSanitizer":{"NodeTreeSanitizer":[]},"KeyRange":{"JSObject":[]},"JsFunction":{"JsObject":[]},"JsArray":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JsObject":[],"Iterable":["1"],"ListMixin.E":"1"},"Length":{"JSObject":[]},"Number":{"JSObject":[]},"Transform":{"JSObject":[]},"LengthList":{"ListMixin":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"JSObject":[],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListMixin.E":"Length"},"NumberList":{"ListMixin":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"JSObject":[],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListMixin.E":"Number"},"PointList":{"JSObject":[]},"ScriptElement0":{"SvgElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"StringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"SvgElement":{"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TransformList":{"ListMixin":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"JSObject":[],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListMixin.E":"Transform"},"AudioBuffer":{"JSObject":[]},"AudioParamMap":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.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"]},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"]},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListMixin":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","QueueList.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListMixin":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","QueueList.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DebugInfoSerializer":{"StructuredSerializer":["DebugInfo"],"Serializer":["DebugInfo"]},"_$DebugInfo":{"DebugInfo":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int64":{"Comparable":["Object"]},"Level":{"Comparable":["Level"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"HtmlWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_HtmlWebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannel":{"StreamChannel":["@"]},"LegacyRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"ByteData":{"TypedData":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]}}'));
+ A._Universe_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":[]},"JSNull":{"Null":[]},"JavaScriptObject":{"JSObject":[]},"LegacyJavaScriptObject":{"JSObject":[],"Promise":["1&"],"JsError":[]},"JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[],"Comparable":["num"]},"JSInt":{"double":[],"int":[],"num":[],"Comparable":["num"]},"JSNumNotInt":{"double":[],"num":[],"Comparable":["num"]},"JSString":{"String":[],"Comparable":["String"],"Pattern":[]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListMixin":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","Iterable.E":"2"},"CastSet":{"Set":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"CastMap":{"MapMixin":["3","4"],"Map":["3","4"],"MapMixin.K":"3","MapMixin.V":"4"},"CastQueue":{"Queue":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"LateError":{"Error":[]},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"SubListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"MappedListIterable":{"ListIterable":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListIterable.E":"2","Iterable.E":"2"},"WhereIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_ConstantMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Function":[]},"Closure2Args":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"_CyclicInitializationError":{"Error":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JSObject":[],"ByteBuffer":[]},"NativeTypedData":{"JSObject":[],"TypedData":[]},"NativeByteData":{"NativeTypedData":[],"JSObject":[],"TypedData":[]},"NativeTypedArray":{"NativeTypedData":[],"JavaScriptIndexingBehavior":["1"],"JSObject":[],"TypedData":[]},"NativeTypedArrayOfDouble":{"ListMixin":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"ListMixin":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeFloat64List":{"ListMixin":["double"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["double"],"List":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"TypedData":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"ListMixin.E":"double"},"NativeInt16List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt32List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeInt8List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint16List":{"ListMixin":["int"],"Uint16List":[],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint32List":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8ClampedList":{"ListMixin":["int"],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"NativeUint8List":{"ListMixin":["int"],"Uint8List":[],"NativeTypedData":[],"JavaScriptIndexingBehavior":["int"],"List":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"TypedData":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"ListMixin.E":"int"},"_Type":{"Type":[]},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_TimerImpl":{"Timer":[]},"_AsyncAwaitCompleter":{"Completer":["1"]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"StreamTransformerBase":{"StreamTransformer":["1","2"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_AsyncStreamController":{"_AsyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"_StreamControllerLifecycle":["1"],"_EventSink":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventSink":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_ForwardingStream":{"Stream":["2"]},"_ForwardingStreamSubscription":{"_BufferingStreamSubscription":["2"],"StreamSubscription":["2"],"_EventSink":["2"],"_EventDispatch":["2"],"_BufferingStreamSubscription.T":"2"},"_MapStream":{"_ForwardingStream":["1","2"],"Stream":["2"],"Stream.T":"2"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_SplayTreeSetNode":{"_SplayTreeNode":["1","_SplayTreeSetNode<1>"],"_SplayTreeNode.K":"1","_SplayTreeNode.1":"_SplayTreeSetNode<1>"},"_HashMap":{"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_CustomHashMap":{"_HashMap":["1","2"],"MapMixin":["1","2"],"HashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedCustomHashMap":{"JsLinkedHashMap":["1","2"],"MapMixin":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapMixin.K":"1","MapMixin.V":"2"},"_HashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_HashSetIterator":{"Iterator":["1"]},"_LinkedHashSet":{"_SetBase":["1"],"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"UnmodifiableListView":{"ListMixin":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","UnmodifiableListMixin.E":"1"},"IterableBase":{"Iterable":["1"]},"ListBase":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"],"Map":["1","2"]},"MapMixin":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ListQueue":{"ListIterable":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"_ListQueueIterator":{"Iterator":["1"]},"_SetBase":{"SetMixin":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SplayTreeIterator":{"Iterator":["3"]},"_SplayTreeKeyIterator":{"_SplayTreeIterator":["1","2","1"],"Iterator":["1"],"_SplayTreeIterator.1":"2","_SplayTreeIterator.K":"1","_SplayTreeIterator.T":"1"},"SplayTreeSet":{"SetMixin":["1"],"Set":["1"],"IterableMixin":["1"],"EfficientLengthIterable":["1"],"_SplayTree":["1","_SplayTreeSetNode<1>"],"Iterable":["1"],"_SplayTree.K":"1","_SplayTree.1":"_SplayTreeSetNode<1>"},"_JsonMap":{"MapMixin":["String","@"],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"Base64Codec":{"Codec":["List<int>","String"],"Codec.S":"List<int>"},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List<int>"]},"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<int>"],"Codec.S":"String"},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"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":{"ListMixin":["Rectangle<num>"],"ImmutableListMixin":["Rectangle<num>"],"List":["Rectangle<num>"],"JavaScriptIndexingBehavior":["Rectangle<num>"],"EfficientLengthIterable":["Rectangle<num>"],"JSObject":[],"Iterable":["Rectangle<num>"],"ImmutableListMixin.E":"Rectangle<num>","ListMixin.E":"Rectangle<num>"},"DomRectReadOnly":{"Rectangle":["num"],"JSObject":[]},"DomStringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"JavaScriptIndexingBehavior":["String"],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"DomTokenList":{"JSObject":[]},"_FrozenElementList":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1"},"EventSource":{"EventTarget":[],"JSObject":[]},"EventTarget":{"JSObject":[]},"FileList":{"ListMixin":["File"],"ImmutableListMixin":["File"],"List":["File"],"JavaScriptIndexingBehavior":["File"],"EfficientLengthIterable":["File"],"JSObject":[],"Iterable":["File"],"ImmutableListMixin.E":"File","ListMixin.E":"File"},"FileWriter":{"EventTarget":[],"JSObject":[]},"FormElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"History":{"JSObject":[]},"HtmlCollection":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"HtmlDocument":{"Document":[],"Node":[],"EventTarget":[],"JSObject":[]},"HttpRequestEventTarget":{"EventTarget":[],"JSObject":[]},"ImageData":{"JSObject":[]},"Location":{"JSObject":[]},"MediaList":{"JSObject":[]},"MessagePort":{"EventTarget":[],"JSObject":[]},"MidiInputMap":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MidiOutputMap":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"MimeTypeArray":{"ListMixin":["MimeType"],"ImmutableListMixin":["MimeType"],"List":["MimeType"],"JavaScriptIndexingBehavior":["MimeType"],"EfficientLengthIterable":["MimeType"],"JSObject":[],"Iterable":["MimeType"],"ImmutableListMixin.E":"MimeType","ListMixin.E":"MimeType"},"_ChildNodeListLazy":{"ListMixin":["Node"],"List":["Node"],"EfficientLengthIterable":["Node"],"Iterable":["Node"],"ListMixin.E":"Node"},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"PluginArray":{"ListMixin":["Plugin"],"ImmutableListMixin":["Plugin"],"List":["Plugin"],"JavaScriptIndexingBehavior":["Plugin"],"EfficientLengthIterable":["Plugin"],"JSObject":[],"Iterable":["Plugin"],"ImmutableListMixin.E":"Plugin","ListMixin.E":"Plugin"},"RtcStatsReport":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.V":"@"},"SelectElement":{"HtmlElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"SharedArrayBuffer":{"JSObject":[]},"SourceBufferList":{"ListMixin":["SourceBuffer"],"ImmutableListMixin":["SourceBuffer"],"EventTarget":[],"List":["SourceBuffer"],"JavaScriptIndexingBehavior":["SourceBuffer"],"EfficientLengthIterable":["SourceBuffer"],"JSObject":[],"Iterable":["SourceBuffer"],"ImmutableListMixin.E":"SourceBuffer","ListMixin.E":"SourceBuffer"},"SpeechGrammarList":{"ListMixin":["SpeechGrammar"],"ImmutableListMixin":["SpeechGrammar"],"List":["SpeechGrammar"],"JavaScriptIndexingBehavior":["SpeechGrammar"],"EfficientLengthIterable":["SpeechGrammar"],"JSObject":[],"Iterable":["SpeechGrammar"],"ImmutableListMixin.E":"SpeechGrammar","ListMixin.E":"SpeechGrammar"},"Storage":{"MapMixin":["String","String"],"JSObject":[],"Map":["String","String"],"MapMixin.K":"String","MapMixin.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":{"ListMixin":["TextTrackCue"],"ImmutableListMixin":["TextTrackCue"],"List":["TextTrackCue"],"JavaScriptIndexingBehavior":["TextTrackCue"],"EfficientLengthIterable":["TextTrackCue"],"JSObject":[],"Iterable":["TextTrackCue"],"ImmutableListMixin.E":"TextTrackCue","ListMixin.E":"TextTrackCue"},"TextTrackList":{"ListMixin":["TextTrack"],"ImmutableListMixin":["TextTrack"],"EventTarget":[],"List":["TextTrack"],"JavaScriptIndexingBehavior":["TextTrack"],"EfficientLengthIterable":["TextTrack"],"JSObject":[],"Iterable":["TextTrack"],"ImmutableListMixin.E":"TextTrack","ListMixin.E":"TextTrack"},"TimeRanges":{"JSObject":[]},"TouchList":{"ListMixin":["Touch"],"ImmutableListMixin":["Touch"],"List":["Touch"],"JavaScriptIndexingBehavior":["Touch"],"EfficientLengthIterable":["Touch"],"JSObject":[],"Iterable":["Touch"],"ImmutableListMixin.E":"Touch","ListMixin.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":{"ListMixin":["CssRule"],"ImmutableListMixin":["CssRule"],"List":["CssRule"],"JavaScriptIndexingBehavior":["CssRule"],"EfficientLengthIterable":["CssRule"],"JSObject":[],"Iterable":["CssRule"],"ImmutableListMixin.E":"CssRule","ListMixin.E":"CssRule"},"_DomRect":{"Rectangle":["num"],"JSObject":[]},"_GamepadList":{"ListMixin":["Gamepad?"],"ImmutableListMixin":["Gamepad?"],"List":["Gamepad?"],"JavaScriptIndexingBehavior":["Gamepad?"],"EfficientLengthIterable":["Gamepad?"],"JSObject":[],"Iterable":["Gamepad?"],"ImmutableListMixin.E":"Gamepad?","ListMixin.E":"Gamepad?"},"_NamedNodeMap":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"EfficientLengthIterable":["Node"],"JSObject":[],"Iterable":["Node"],"ImmutableListMixin.E":"Node","ListMixin.E":"Node"},"_SpeechRecognitionResultList":{"ListMixin":["SpeechRecognitionResult"],"ImmutableListMixin":["SpeechRecognitionResult"],"List":["SpeechRecognitionResult"],"JavaScriptIndexingBehavior":["SpeechRecognitionResult"],"EfficientLengthIterable":["SpeechRecognitionResult"],"JSObject":[],"Iterable":["SpeechRecognitionResult"],"ImmutableListMixin.E":"SpeechRecognitionResult","ListMixin.E":"SpeechRecognitionResult"},"_StyleSheetList":{"ListMixin":["StyleSheet"],"ImmutableListMixin":["StyleSheet"],"List":["StyleSheet"],"JavaScriptIndexingBehavior":["StyleSheet"],"EfficientLengthIterable":["StyleSheet"],"JSObject":[],"Iterable":["StyleSheet"],"ImmutableListMixin.E":"StyleSheet","ListMixin.E":"StyleSheet"},"_AttributeMap":{"MapMixin":["String","String"],"Map":["String","String"]},"_ElementAttributeMap":{"MapMixin":["String","String"],"Map":["String","String"],"MapMixin.K":"String","MapMixin.V":"String"},"_EventStream":{"Stream":["1"],"Stream.T":"1"},"_EventStreamSubscription":{"StreamSubscription":["1"]},"NodeValidatorBuilder":{"NodeValidator":[]},"_SimpleNodeValidator":{"NodeValidator":[]},"_TemplatingNodeValidator":{"NodeValidator":[]},"_SvgNodeValidator":{"NodeValidator":[]},"FixedSizeListIterator":{"Iterator":["1"]},"_DOMWindowCrossFrame":{"WindowBase":[],"EventTarget":[],"JSObject":[]},"_SameOriginUriPolicy":{"UriPolicy":[]},"_ValidatingTreeSanitizer":{"NodeTreeSanitizer":[]},"KeyRange":{"JSObject":[]},"JsFunction":{"JsObject":[]},"JsArray":{"ListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JsObject":[],"Iterable":["1"],"ListMixin.E":"1"},"Length":{"JSObject":[]},"Number":{"JSObject":[]},"Transform":{"JSObject":[]},"LengthList":{"ListMixin":["Length"],"ImmutableListMixin":["Length"],"List":["Length"],"EfficientLengthIterable":["Length"],"JSObject":[],"Iterable":["Length"],"ImmutableListMixin.E":"Length","ListMixin.E":"Length"},"NumberList":{"ListMixin":["Number"],"ImmutableListMixin":["Number"],"List":["Number"],"EfficientLengthIterable":["Number"],"JSObject":[],"Iterable":["Number"],"ImmutableListMixin.E":"Number","ListMixin.E":"Number"},"PointList":{"JSObject":[]},"ScriptElement0":{"SvgElement":[],"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"StringList":{"ListMixin":["String"],"ImmutableListMixin":["String"],"List":["String"],"EfficientLengthIterable":["String"],"JSObject":[],"Iterable":["String"],"ImmutableListMixin.E":"String","ListMixin.E":"String"},"SvgElement":{"Element":[],"Node":[],"EventTarget":[],"JSObject":[]},"TransformList":{"ListMixin":["Transform"],"ImmutableListMixin":["Transform"],"List":["Transform"],"EfficientLengthIterable":["Transform"],"JSObject":[],"Iterable":["Transform"],"ImmutableListMixin.E":"Transform","ListMixin.E":"Transform"},"AudioBuffer":{"JSObject":[]},"AudioParamMap":{"MapMixin":["String","@"],"JSObject":[],"Map":["String","@"],"MapMixin.K":"String","MapMixin.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"]},"CopyOnWriteList":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"BuiltList":{"Iterable":["1"]},"_BuiltList":{"BuiltList":["1"],"Iterable":["1"]},"_BuiltListMultimap":{"BuiltListMultimap":["1","2"]},"_BuiltMap":{"BuiltMap":["1","2"]},"BuiltSet":{"Iterable":["1"]},"_BuiltSet":{"BuiltSet":["1"],"Iterable":["1"]},"_BuiltSetMultimap":{"BuiltSetMultimap":["1","2"]},"BuiltValueNullFieldError":{"Error":[]},"BuiltValueNestedFieldError":{"Error":[]},"BoolJsonObject":{"JsonObject":[]},"ListJsonObject":{"JsonObject":[]},"MapJsonObject":{"JsonObject":[]},"NumJsonObject":{"JsonObject":[]},"StringJsonObject":{"JsonObject":[]},"DeserializationError":{"Error":[]},"BigIntSerializer":{"PrimitiveSerializer":["BigInt"],"Serializer":["BigInt"]},"BoolSerializer":{"PrimitiveSerializer":["bool"],"Serializer":["bool"]},"BuiltJsonSerializers":{"Serializers":[]},"BuiltListMultimapSerializer":{"StructuredSerializer":["BuiltListMultimap<@,@>"],"Serializer":["BuiltListMultimap<@,@>"]},"BuiltListSerializer":{"StructuredSerializer":["BuiltList<@>"],"Serializer":["BuiltList<@>"]},"BuiltMapSerializer":{"StructuredSerializer":["BuiltMap<@,@>"],"Serializer":["BuiltMap<@,@>"]},"BuiltSetMultimapSerializer":{"StructuredSerializer":["BuiltSetMultimap<@,@>"],"Serializer":["BuiltSetMultimap<@,@>"]},"BuiltSetSerializer":{"StructuredSerializer":["BuiltSet<@>"],"Serializer":["BuiltSet<@>"]},"DateTimeSerializer":{"PrimitiveSerializer":["DateTime"],"Serializer":["DateTime"]},"DoubleSerializer":{"PrimitiveSerializer":["double"],"Serializer":["double"]},"DurationSerializer":{"PrimitiveSerializer":["Duration"],"Serializer":["Duration"]},"Int64Serializer":{"PrimitiveSerializer":["Int64"],"Serializer":["Int64"]},"IntSerializer":{"PrimitiveSerializer":["int"],"Serializer":["int"]},"JsonObjectSerializer":{"PrimitiveSerializer":["JsonObject"],"Serializer":["JsonObject"]},"NullSerializer":{"PrimitiveSerializer":["Null"],"Serializer":["Null"]},"NumSerializer":{"PrimitiveSerializer":["num"],"Serializer":["num"]},"RegExpSerializer":{"PrimitiveSerializer":["RegExp"],"Serializer":["RegExp"]},"StringSerializer":{"PrimitiveSerializer":["String"],"Serializer":["String"]},"UriSerializer":{"PrimitiveSerializer":["Uri"],"Serializer":["Uri"]},"DefaultEquality":{"Equality":["1"]},"IterableEquality":{"Equality":["Iterable<1>"]},"ListEquality":{"Equality":["List<1>"]},"_UnorderedEquality":{"Equality":["2"]},"SetEquality":{"_UnorderedEquality":["1","Set<1>"],"Equality":["Set<1>"],"_UnorderedEquality.E":"1","_UnorderedEquality.T":"Set<1>"},"MapEquality":{"Equality":["Map<1,2>"]},"DeepCollectionEquality":{"Equality":["@"]},"QueueList":{"ListMixin":["1"],"List":["1"],"Queue":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListMixin.E":"1","QueueList.E":"1"},"_CastQueueList":{"QueueList":["2"],"ListMixin":["2"],"List":["2"],"Queue":["2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListMixin.E":"2","QueueList.E":"2"},"_$BuildStatusSerializer":{"PrimitiveSerializer":["BuildStatus"],"Serializer":["BuildStatus"]},"_$BuildResultSerializer":{"StructuredSerializer":["BuildResult"],"Serializer":["BuildResult"]},"_$BuildResult":{"BuildResult":[]},"_$ConnectRequestSerializer":{"StructuredSerializer":["ConnectRequest"],"Serializer":["ConnectRequest"]},"_$ConnectRequest":{"ConnectRequest":[]},"_$DebugEventSerializer":{"StructuredSerializer":["DebugEvent"],"Serializer":["DebugEvent"]},"_$BatchedDebugEventsSerializer":{"StructuredSerializer":["BatchedDebugEvents"],"Serializer":["BatchedDebugEvents"]},"_$DebugEvent":{"DebugEvent":[]},"_$BatchedDebugEvents":{"BatchedDebugEvents":[]},"_$DebugInfoSerializer":{"StructuredSerializer":["DebugInfo"],"Serializer":["DebugInfo"]},"_$DebugInfo":{"DebugInfo":[]},"_$DevToolsRequestSerializer":{"StructuredSerializer":["DevToolsRequest"],"Serializer":["DevToolsRequest"]},"_$DevToolsResponseSerializer":{"StructuredSerializer":["DevToolsResponse"],"Serializer":["DevToolsResponse"]},"_$DevToolsRequest":{"DevToolsRequest":[]},"_$DevToolsResponse":{"DevToolsResponse":[]},"_$ErrorResponseSerializer":{"StructuredSerializer":["ErrorResponse"],"Serializer":["ErrorResponse"]},"_$ErrorResponse":{"ErrorResponse":[]},"_$ExtensionRequestSerializer":{"StructuredSerializer":["ExtensionRequest"],"Serializer":["ExtensionRequest"]},"_$ExtensionResponseSerializer":{"StructuredSerializer":["ExtensionResponse"],"Serializer":["ExtensionResponse"]},"_$ExtensionEventSerializer":{"StructuredSerializer":["ExtensionEvent"],"Serializer":["ExtensionEvent"]},"_$BatchedEventsSerializer":{"StructuredSerializer":["BatchedEvents"],"Serializer":["BatchedEvents"]},"_$ExtensionRequest":{"ExtensionRequest":[]},"_$ExtensionResponse":{"ExtensionResponse":[]},"_$ExtensionEvent":{"ExtensionEvent":[]},"_$BatchedEvents":{"BatchedEvents":[]},"_$IsolateExitSerializer":{"StructuredSerializer":["IsolateExit"],"Serializer":["IsolateExit"]},"_$IsolateStartSerializer":{"StructuredSerializer":["IsolateStart"],"Serializer":["IsolateStart"]},"_$IsolateExit":{"IsolateExit":[]},"_$IsolateStart":{"IsolateStart":[]},"_$RegisterEventSerializer":{"StructuredSerializer":["RegisterEvent"],"Serializer":["RegisterEvent"]},"_$RegisterEvent":{"RegisterEvent":[]},"_$RunRequestSerializer":{"StructuredSerializer":["RunRequest"],"Serializer":["RunRequest"]},"_$RunRequest":{"RunRequest":[]},"SseSocketClient":{"SocketClient":[]},"WebSocketClient":{"SocketClient":[]},"Int64":{"Comparable":["Object"]},"Level":{"Comparable":["Level"]},"SseClient":{"StreamChannel":["String?"]},"GuaranteeChannel":{"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"HtmlWebSocketChannel":{"WebSocketChannel":[],"StreamChannel":["@"]},"_HtmlWebSocketSink":{"WebSocketSink":[],"DelegatingStreamSink":["@"],"StreamSink":["@"],"DelegatingStreamSink.T":"@"},"WebSocketChannel":{"StreamChannel":["@"]},"LegacyRestarter":{"Restarter":[]},"RequireRestarter":{"Restarter":[]},"ByteData":{"TypedData":[]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"TypedData":[]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"],"TypedData":[]}}'));
A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"UnmodifiableListBase":1,"__CastListBase__CastIterableBase_ListMixin":2,"NativeTypedArray":1,"StreamTransformerBase":2,"_DelayedEvent":1,"IterableBase":1,"ListBase":1,"MapBase":2,"_ListBase_Object_ListMixin":1,"_SplayTreeSet__SplayTree_IterableMixin":1,"_SplayTreeSet__SplayTree_IterableMixin_SetMixin":1,"__SetBase_Object_SetMixin":1,"MapEntry":2,"_JsArray_JsObject_ListMixin":1,"_QueueList_Object_ListMixin":1,"StreamChannelMixin":1}'));
var string$ = {
Error_: "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a value of the returned future's type",
@@ -26024,8 +26175,6 @@
nullable__LinkedHashSetCell: findType("_LinkedHashSetCell?"),
nullable_dynamic_Function_Event: findType("@(Event)?"),
nullable_int_Function_Node_Node: findType("int(Node,Node)?"),
- nullable_nullable_Object_Function_2_nullable_Object_and_nullable_Object: findType("Object?(Object?,Object?)?"),
- nullable_nullable_Object_Function_dynamic: findType("Object?(@)?"),
nullable_void_Function: findType("~()?"),
nullable_void_Function_BatchedDebugEventsBuilder: findType("~(BatchedDebugEventsBuilder)?"),
nullable_void_Function_ConnectRequestBuilder: findType("~(ConnectRequestBuilder)?"),
@@ -26033,8 +26182,6 @@
nullable_void_Function_DebugInfoBuilder: findType("~(DebugInfoBuilder)?"),
nullable_void_Function_DevToolsRequestBuilder: findType("~(DevToolsRequestBuilder)?"),
nullable_void_Function_Event: findType("~(Event)?"),
- nullable_void_Function_IsolateExitBuilder: findType("~(IsolateExitBuilder)?"),
- nullable_void_Function_IsolateStartBuilder: findType("~(IsolateStartBuilder)?"),
nullable_void_Function_KeyboardEvent: findType("~(KeyboardEvent)?"),
nullable_void_Function_MessageEvent: findType("~(MessageEvent)?"),
nullable_void_Function_ProgressEvent: findType("~(ProgressEvent)?"),
diff --git a/dwds/lib/src/services/batched_expression_evaluator.dart b/dwds/lib/src/services/batched_expression_evaluator.dart
index 9c35004..cadd0c7 100644
--- a/dwds/lib/src/services/batched_expression_evaluator.dart
+++ b/dwds/lib/src/services/batched_expression_evaluator.dart
@@ -61,7 +61,7 @@
) async {
if (_closed) {
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.internal,
'Batched expression evaluator closed',
);
}
@@ -141,8 +141,10 @@
final listId = list.objectId;
if (listId == null) {
- final error =
- createError(ErrorKind.internal, 'No batch result object ID.');
+ final error = createError(
+ EvaluationErrorKind.internal,
+ 'No batch result object ID.',
+ );
request.completer.complete(error);
} else {
safeUnawaited(
diff --git a/dwds/lib/src/services/chrome_proxy_service.dart b/dwds/lib/src/services/chrome_proxy_service.dart
index bd4a11f..398dfb8 100644
--- a/dwds/lib/src/services/chrome_proxy_service.dart
+++ b/dwds/lib/src/services/chrome_proxy_service.dart
@@ -489,8 +489,8 @@
// Handle compilation errors, internal errors,
// and reference errors from JavaScript evaluation in chrome.
- if (result.type.contains('Error')) {
- if (!result.type.startsWith('CompilationError')) {
+ if (_hasEvaluationError(result.type)) {
+ if (_hasReportableEvaluationError(result.type)) {
_logger.warning('Failed to evaluate expression \'$expression\': '
'${result.type}: ${result.value}.');
@@ -519,6 +519,20 @@
}
}
+ bool _hasEvaluationError(String type) => type.contains('Error');
+
+ // Decides if the error is serious enough to be shown to the user
+ // to encourage bug reporting.
+ bool _hasReportableEvaluationError(String type) {
+ if (!_hasEvaluationError(type)) return false;
+
+ if (type == EvaluationErrorKind.compilation ||
+ type == EvaluationErrorKind.asyncFrame) {
+ return false;
+ }
+ return true;
+ }
+
@override
Future<Response> evaluate(
String isolateId,
diff --git a/dwds/lib/src/services/expression_evaluator.dart b/dwds/lib/src/services/expression_evaluator.dart
index 8aac6a6..1e1be6f 100644
--- a/dwds/lib/src/services/expression_evaluator.dart
+++ b/dwds/lib/src/services/expression_evaluator.dart
@@ -13,19 +13,16 @@
import 'package:logging/logging.dart';
import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart';
-class ErrorKind {
- const ErrorKind._(this._kind);
+class EvaluationErrorKind {
+ EvaluationErrorKind._();
- final String _kind;
- static const ErrorKind compilation = ErrorKind._('CompilationError');
- static const ErrorKind type = ErrorKind._('TypeError');
- static const ErrorKind reference = ErrorKind._('ReferenceError');
- static const ErrorKind internal = ErrorKind._('InternalError');
- static const ErrorKind invalidInput = ErrorKind._('InvalidInputError');
- static const ErrorKind loadModule = ErrorKind._('LoadModuleError');
-
- @override
- String toString() => _kind;
+ static const compilation = 'CompilationError';
+ static const type = 'TypeError';
+ static const reference = 'ReferenceError';
+ static const internal = 'InternalError';
+ static const asyncFrame = 'AsyncFrameError';
+ static const invalidInput = 'InvalidInputError';
+ static const loadModule = 'LoadModuleError';
}
/// ExpressionEvaluator provides functionality to evaluate dart expressions
@@ -62,9 +59,12 @@
this._compiler,
);
- RemoteObject createError(ErrorKind severity, String message) {
+ /// Create and error with [severity] and [message]
+ ///
+ /// [severity] is one of kinds in [EvaluationErrorKind]
+ RemoteObject createError(String severity, String message) {
return RemoteObject(
- <String, String>{'type': '$severity', 'value': message},
+ <String, String>{'type': severity, 'value': message},
);
}
@@ -90,22 +90,34 @@
Map<String, String>? scope,
) async {
if (_closed) {
- return createError(ErrorKind.internal, 'expression evaluator closed.');
+ return createError(
+ EvaluationErrorKind.internal,
+ 'expression evaluator closed.',
+ );
}
scope ??= {};
if (expression.isEmpty) {
- return createError(ErrorKind.invalidInput, expression);
+ return createError(
+ EvaluationErrorKind.invalidInput,
+ expression,
+ );
}
if (libraryUri == null) {
- return createError(ErrorKind.invalidInput, 'no library uri');
+ return createError(
+ EvaluationErrorKind.invalidInput,
+ 'no library uri',
+ );
}
final module = await _modules.moduleForLibrary(libraryUri);
if (module == null) {
- return createError(ErrorKind.internal, 'no module for $libraryUri');
+ return createError(
+ EvaluationErrorKind.internal,
+ 'no module for $libraryUri',
+ );
}
// Wrap the expression in a lambda so we can call it as a function.
@@ -166,20 +178,20 @@
// TODO(annagrin): Implement scope support.
// Issue: https://github.com/dart-lang/webdev/issues/1344
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.internal,
'Using scope for expression evaluation in frame '
'is not supported.');
}
if (expression.isEmpty) {
- return createError(ErrorKind.invalidInput, expression);
+ return createError(EvaluationErrorKind.invalidInput, expression);
}
// Get JS scope and current JS location.
final jsFrame = _debugger.jsFrameForIndex(frameIndex);
if (jsFrame == null) {
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.asyncFrame,
'Expression evaluation in async frames '
'is not supported. No frame with index $frameIndex.');
}
@@ -194,14 +206,14 @@
final url = _debugger.urlForScriptId(jsScriptId);
if (url == null) {
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.internal,
'Cannot find url for JS script: $jsScriptId',
);
}
final locationMap = await _locations.locationForJs(url, jsLine, jsColumn);
if (locationMap == null) {
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.internal,
'Cannot find Dart location for JS location: '
'url: $url, '
'function: $functionName, '
@@ -214,7 +226,7 @@
final libraryUri = await _modules.libraryForSource(dartSourcePath);
if (libraryUri == null) {
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.internal,
'no libraryUri for $dartSourcePath',
);
}
@@ -222,7 +234,7 @@
final module = await _modules.moduleForLibrary(libraryUri.toString());
if (module == null) {
return createError(
- ErrorKind.internal,
+ EvaluationErrorKind.internal,
'no module for $libraryUri ($dartSourcePath)',
);
}
@@ -283,10 +295,10 @@
}
if (error.contains('InternalError: ')) {
error = error.replaceAll('InternalError: ', '');
- return createError(ErrorKind.internal, error);
+ return createError(EvaluationErrorKind.internal, error);
}
error = error.replaceAll(_syntheticNameFilterRegex, '');
- return createError(ErrorKind.compilation, error);
+ return createError(EvaluationErrorKind.compilation, error);
}
Future<RemoteObject> _formatEvaluationError(RemoteObject result) async {
@@ -294,10 +306,10 @@
var error = '${result.value}';
if (error.startsWith('ReferenceError: ')) {
error = error.replaceFirst('ReferenceError: ', '');
- return createError(ErrorKind.reference, error);
+ return createError(EvaluationErrorKind.reference, error);
} else if (error.startsWith('TypeError: ')) {
error = error.replaceFirst('TypeError: ', '');
- return createError(ErrorKind.type, error);
+ return createError(EvaluationErrorKind.type, error);
} else if (error.startsWith('NetworkError: ')) {
var modulePath = _loadModuleErrorRegex.firstMatch(error)?.group(1);
final module = modulePath != null
@@ -310,7 +322,7 @@
error = 'Module is not loaded : $module (path: $modulePath). '
'Accessing libraries that have not yet been used in the '
'application is not supported during expression evaluation.';
- return createError(ErrorKind.loadModule, error);
+ return createError(EvaluationErrorKind.loadModule, error);
}
}
return result;
diff --git a/dwds/test/evaluate_common.dart b/dwds/test/evaluate_common.dart
index e76ae4c..7f0ee77 100644
--- a/dwds/test/evaluate_common.dart
+++ b/dwds/test/evaluate_common.dart
@@ -6,10 +6,12 @@
@Timeout(Duration(minutes: 2))
import 'dart:async';
+import 'package:dwds/src/services/expression_evaluator.dart';
import 'package:test/test.dart';
import 'package:test_common/logging.dart';
import 'package:test_common/test_sdk_configuration.dart';
import 'package:vm_service/vm_service.dart';
+import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart';
import 'fixtures/context.dart';
import 'fixtures/project.dart';
@@ -85,9 +87,22 @@
late ScriptRef testLibraryScript;
late ScriptRef testLibraryPartScript;
late Stream<Event> stream;
+ late StreamController<String> output;
setUp(() async {
- setCurrentLogWriter(debug: debug);
+ output = StreamController<String>.broadcast();
+ output.stream.listen(debug ? print : printOnFailure);
+
+ configureLogWriter(
+ customLogWriter: (level, message, {error, loggerName, stackTrace}) {
+ final e = error == null ? '' : ': $error';
+ final s = stackTrace == null ? '' : ':\n$stackTrace';
+ if (!output.isClosed) {
+ output.add('[$level] $loggerName: $message$e$s');
+ }
+ },
+ );
+
vm = await context.service.getVM();
isolate = await context.service.getIsolate(vm.isolates!.first.id!);
isolateId = isolate.id!;
@@ -114,7 +129,10 @@
});
tearDown(() async {
- await context.service.resume(isolateId);
+ await output.close();
+ try {
+ await context.service.resume(isolateId);
+ } catch (_) {}
});
test(
@@ -687,12 +705,75 @@
isA<ErrorRef>().having(
(instance) => instance.message,
'message',
- contains('CompilationError:'),
+ contains(EvaluationErrorKind.compilation),
),
);
});
});
+ test('async frame error', () async {
+ final maxAttempts = 100;
+
+ Response? error;
+ String? breakpointId;
+ try {
+ // Pause in client.js directly to force pausing in async code.
+ breakpointId = await _setBreakpointInInjectedClient(
+ context.tabConnection.debugger,
+ );
+
+ var attempt = 0;
+ do {
+ try {
+ await context.service.resume(isolateId);
+ } catch (_) {}
+
+ final event = stream.firstWhere(
+ (event) => event.kind == EventKind.kPauseInterrupted,
+ );
+ final frame = (await event).topFrame;
+ if (frame != null) {
+ error = await context.service.evaluateInFrame(
+ isolateId,
+ frame.index!,
+ 'true',
+ );
+ }
+ expect(
+ attempt,
+ lessThan(maxAttempts),
+ reason:
+ 'Failed to receive and async frame error in $attempt attempts',
+ );
+ await (Future.delayed(const Duration(milliseconds: 10)));
+ attempt++;
+ } while (error is! ErrorRef);
+ } finally {
+ if (breakpointId != null) {
+ await context.tabConnection.debugger
+ .removeBreakpoint(breakpointId);
+ }
+ }
+
+ // Verify we receive an error when evaluating
+ // on async frame.
+ expect(
+ error,
+ isA<ErrorRef>().having(
+ (instance) => instance.message,
+ 'message',
+ contains(EvaluationErrorKind.asyncFrame),
+ ),
+ );
+
+ // Verify we don't emit errors or warnings
+ // on async frame evaluations.
+ output.stream.listen((event) {
+ expect(event, isNot(contains('[WARNING]')));
+ expect(event, isNot(contains('[SEVERE]')));
+ });
+ });
+
test(
'module load error',
() async {
@@ -712,7 +793,7 @@
isA<ErrorRef>().having(
(instance) => instance.message,
'message',
- contains('LoadModuleError:'),
+ contains(EvaluationErrorKind.loadModule),
),
);
});
@@ -946,3 +1027,24 @@
variable.name: variable.value as InstanceRef?,
};
}
+
+Future<String> _setBreakpointInInjectedClient(WipDebugger debugger) async {
+ final client = 'dwds/src/injected/client.js';
+ final clientScript =
+ debugger.scripts.values.firstWhere((e) => e.url.contains(client));
+ final clientSource = await debugger.getScriptSource(clientScript.scriptId);
+
+ final line = clientSource.split('\n').indexWhere(
+ (element) => element.contains('convertDartClosureToJS'),
+ );
+
+ final result = await debugger.sendCommand(
+ 'Debugger.setBreakpointByUrl',
+ params: {
+ 'urlRegex': '.*$client',
+ 'lineNumber': line + 4,
+ 'columnNumber': 0,
+ },
+ );
+ return result.json['result']['breakpointId'];
+}
diff --git a/dwds/test/expression_evaluator_test.dart b/dwds/test/expression_evaluator_test.dart
index 2874207..908a174 100644
--- a/dwds/test/expression_evaluator_test.dart
+++ b/dwds/test/expression_evaluator_test.dart
@@ -14,6 +14,7 @@
import 'package:dwds/src/services/expression_evaluator.dart';
import 'package:test/test.dart';
+import 'package:vm_service/vm_service.dart' hide LogRecord;
import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart';
import 'fixtures/context.dart';
@@ -31,14 +32,17 @@
_batchedEvaluator = null;
}
+ late StreamController<DebuggerPausedEvent> pausedController;
+ late StreamController<Event> debugEventController;
setUp(() async {
globalLoadStrategy = FakeStrategy();
final assetReader = FakeAssetReader(sourceMap: '');
final modules = FakeModules();
- final webkitDebugger = FakeWebkitDebugger(scripts: {});
- final pausedController = StreamController<DebuggerPausedEvent>();
+ final webkitDebugger = FakeWebkitDebugger();
+ pausedController = StreamController<DebuggerPausedEvent>();
+ debugEventController = StreamController<Event>();
webkitDebugger.onPaused = pausedController.stream;
final root = 'fakeRoot';
@@ -49,7 +53,7 @@
final skipLists = SkipLists();
final debugger = await Debugger.create(
webkitDebugger,
- (_, __) {},
+ (_, e) => debugEventController.sink.add(e),
locations,
skipLists,
root,
@@ -108,6 +112,37 @@
);
});
+ test('cannot evaluate expression in async frame ', () async {
+ // Add a DebuggerPausedEvent with no frames provoke an error.
+ pausedController.sink.add(
+ DebuggerPausedEvent({
+ 'method': '',
+ 'params': {
+ 'reason': 'other',
+ 'callFrames': [],
+ }
+ }),
+ );
+
+ await debugEventController.stream
+ .firstWhere((e) => e.kind == EventKind.kPauseInterrupted);
+
+ // Verify that we get the internal error.
+ final result =
+ await evaluator.evaluateExpressionInFrame('20', 0, 'true', null);
+ expect(
+ result,
+ isA<RemoteObject>()
+ .having((o) => o.json['type'], 'type', 'AsyncFrameError')
+ .having(
+ (o) => o.json['value'],
+ 'value',
+ 'Expression evaluation in async frames is not supported. '
+ 'No frame with index 0.',
+ ),
+ );
+ });
+
test('can evaluate expression in frame with empty scope', () async {
// Verify that we don't get the internal error.
// More extensive testing of 'evaluateExpressionInFrame' is done in
diff --git a/fixtures/_testPackage/web/main.dart b/fixtures/_testPackage/web/main.dart
index 0310fed..ee6d21f 100644
--- a/fixtures/_testPackage/web/main.dart
+++ b/fixtures/_testPackage/web/main.dart
@@ -6,7 +6,9 @@
// @dart=2.9
import 'dart:async';
+import 'dart:convert';
import 'dart:core';
+import 'dart:developer';
import 'dart:html';
import 'package:_test/deferred_library.dart' deferred as d;
@@ -30,6 +32,7 @@
});
// for evaluation
+ var extensionId = 0;
Timer.periodic(const Duration(seconds: 1), (_) {
printLocal();
printFieldFromLibraryClass(); // Breakpoint: callPrintFieldFromLibraryClass
@@ -47,11 +50,20 @@
printList();
printMap();
printSet();
+ // For testing evaluation in async JS frames.
+ registerUserExtension(extensionId++);
});
document.body.appendText(concatenate('Program', ' is running!'));
}
+void registerUserExtension(int id) async {
+ registerExtension('ext.extension$id', (_, __) async {
+ print('Hello World from extension$id');
+ return ServiceExtensionResponse.result(json.encode({'success': true}));
+ });
+}
+
void printLocal() {
var local = 42;
print('Local is: $local'); // Breakpoint: printLocal
@@ -68,7 +80,7 @@
}
void printFieldMain() {
- var instance = MainClass(2,1);
+ var instance = MainClass(2, 1);
print('$instance'); // Breakpoint: printFieldMain
}
diff --git a/fixtures/_testPackageSound/web/main.dart b/fixtures/_testPackageSound/web/main.dart
index 6c7e45d..4e8d2a7 100644
--- a/fixtures/_testPackageSound/web/main.dart
+++ b/fixtures/_testPackageSound/web/main.dart
@@ -3,7 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
import 'dart:async';
+import 'dart:convert';
import 'dart:core';
+import 'dart:developer';
import 'dart:html';
import 'package:_test_package_sound/test_library.dart';
@@ -27,6 +29,7 @@
});
// for evaluation
+ var extensionId = 0;
Timer.periodic(const Duration(seconds: 1), (_) async {
await asyncMethod();
printLocal();
@@ -46,11 +49,20 @@
printList();
printMap();
printSet();
+ // For testing evaluation in async JS frames.
+ registerUserExtension(extensionId++);
});
document.body?.appendText(concatenate('Program', ' is running!'));
}
+void registerUserExtension(int id) async {
+ registerExtension('ext.extension$id', (_, __) async {
+ print('Hello World from extension$id');
+ return ServiceExtensionResponse.result(json.encode({'success': true}));
+ });
+}
+
Future<int> asyncMethod() async {
printLocal();
return 0;