Recompile host.dart with 3.12.1 SDK (#2645)
diff --git a/pkgs/test/lib/src/runner/browser/static/host.dart.js b/pkgs/test/lib/src/runner/browser/static/host.dart.js
index a28bdfc..daff7dc 100644
--- a/pkgs/test/lib/src/runner/browser/static/host.dart.js
+++ b/pkgs/test/lib/src/runner/browser/static/host.dart.js
@@ -1,4 +1,4 @@
-// Generated by dart2js (NullSafetyMode.sound, csp, intern-composite-values), the Dart to JavaScript compiler version: 3.6.1.
+// Generated by dart2js (, csp, intern-composite-values), the Dart to JavaScript compiler version: 3.12.1.
 // The code supports the following hooks:
 // dartPrint(message):
 //    if this function is defined it is called instead of the Dart [print]
@@ -125,7 +125,9 @@
       return finalValue;
     };
   }
-  function makeConstList(list) {
+  function makeConstList(list, rti) {
+    if (rti != null)
+      A._setArrayType(list, rti);
     list.$flags = 7;
     return list;
   }
@@ -477,24 +479,15 @@
     allMatches$2$s(receiver, a0, a1) {
       return J.getInterceptor$s(receiver).allMatches$2(receiver, a0, a1);
     },
-    cast$1$0$ax(receiver, $T1) {
-      return J.getInterceptor$ax(receiver).cast$1$0(receiver, $T1);
-    },
     elementAt$1$ax(receiver, a0) {
       return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0);
     },
-    endsWith$1$s(receiver, a0) {
-      return J.getInterceptor$s(receiver).endsWith$1(receiver, a0);
-    },
     map$1$1$ax(receiver, a0, $T1) {
       return J.getInterceptor$ax(receiver).map$1$1(receiver, a0, $T1);
     },
     matchAsPrefix$2$s(receiver, a0, a1) {
       return J.getInterceptor$s(receiver).matchAsPrefix$2(receiver, a0, a1);
     },
-    noSuchMethod$1$(receiver, a0) {
-      return J.getInterceptor$(receiver).noSuchMethod$1(receiver, a0);
-    },
     skip$1$ax(receiver, a0) {
       return J.getInterceptor$ax(receiver).skip$1(receiver, a0);
     },
@@ -533,6 +526,8 @@
     JSArray: function JSArray(t0) {
       this.$ti = t0;
     },
+    JSArraySafeToStringHook: function JSArraySafeToStringHook() {
+    },
     JSUnmodifiableArray: function JSUnmodifiableArray(t0) {
       this.$ti = t0;
     },
@@ -556,10 +551,19 @@
   A = {JS_CONST: function JS_CONST() {
     },
     CastIterable_CastIterable(source, $S, $T) {
-      if ($S._eval$1("EfficientLengthIterable<0>")._is(source))
+      if (type$.EfficientLengthIterable_dynamic._is(source))
         return new A._EfficientLengthCastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("_EfficientLengthCastIterable<1,2>"));
       return new A.CastIterable(source, $S._eval$1("@<0>")._bind$1($T)._eval$1("CastIterable<1,2>"));
     },
+    LateError$fieldADI(fieldName) {
+      return new A.LateError("Field '" + fieldName + "' has been assigned during initialization.");
+    },
+    LateError$fieldNI(fieldName) {
+      return new A.LateError("Field '" + fieldName + "' has not been initialized.");
+    },
+    LateError$fieldAI(fieldName) {
+      return new A.LateError("Field '" + fieldName + "' has already been initialized.");
+    },
     hexDigitValue(char) {
       var letter,
         digit = char ^ 48;
@@ -585,8 +589,8 @@
     },
     isToStringVisiting(object) {
       var t1, i;
-      for (t1 = $.toStringVisiting.length, i = 0; i < t1; ++i)
-        if (object === $.toStringVisiting[i])
+      for (t1 = $._toStringVisiting.length, i = 0; i < t1; ++i)
+        if (object === $._toStringVisiting[i])
           return true;
       return false;
     },
@@ -800,9 +804,6 @@
       this._source = t0;
       this.$ti = t1;
     },
-    Symbol: function Symbol(t0) {
-      this._name = t0;
-    },
     __CastListBase__CastIterableBase_ListMixin: function __CastListBase__CastIterableBase_ListMixin() {
     },
     ConstantMap__throwUnmodifiable() {
@@ -852,37 +853,20 @@
       return hash;
     },
     Primitives_parseInt(source, radix) {
-      var decimalMatch, maxCharCode, digitsPart, t1, i, _null = null,
+      var decimalMatch,
         match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source);
       if (match == null)
-        return _null;
+        return null;
       if (3 >= match.length)
         return A.ioore(match, 3);
       decimalMatch = match[3];
-      if (radix == null) {
-        if (decimalMatch != null)
-          return parseInt(source, 10);
-        if (match[2] != null)
-          return parseInt(source, 16);
-        return _null;
-      }
-      if (radix < 2 || radix > 36)
-        throw A.wrapException(A.RangeError$range(radix, 2, 36, "radix", _null));
-      if (radix === 10 && decimalMatch != null)
+      if (decimalMatch != null)
         return parseInt(source, 10);
-      if (radix < 10 || decimalMatch == null) {
-        maxCharCode = radix <= 10 ? 47 + radix : 86 + radix;
-        digitsPart = match[1];
-        for (t1 = digitsPart.length, i = 0; i < t1; ++i)
-          if ((digitsPart.charCodeAt(i) | 32) > maxCharCode)
-            return _null;
-      }
-      return parseInt(source, radix);
+      if (match[2] != null)
+        return parseInt(source, 16);
+      return null;
     },
     Primitives_objectTypeName(object) {
-      return A.Primitives__objectTypeNameNewRti(object);
-    },
-    Primitives__objectTypeNameNewRti(object) {
       var interceptor, dispatchName, $constructor, constructorName;
       if (object instanceof A.Object)
         return A._rtiToString(A.instanceType(object), null);
@@ -901,12 +885,19 @@
       return A._rtiToString(A.instanceType(object), null);
     },
     Primitives_safeToString(object) {
+      var hooks, i, hookResult;
       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);
+      hooks = $.$get$_safeToStringHooks();
+      for (i = 0; i < 1; ++i) {
+        hookResult = hooks[i].tryFormat$1(object);
+        if (hookResult != null)
+          return hookResult;
+      }
       return "Instance of '" + A.Primitives_objectTypeName(object) + "'";
     },
     Primitives_currentUri() {
@@ -1012,116 +1003,6 @@
       var t1 = A.Primitives_lazyAsJsDate(receiver).getUTCMilliseconds() + 0;
       return t1;
     },
-    Primitives_functionNoSuchMethod($function, positionalArguments, namedArguments) {
-      var $arguments, namedArgumentList, t1 = {};
-      t1.argumentCount = 0;
-      $arguments = [];
-      namedArgumentList = [];
-      t1.argumentCount = positionalArguments.length;
-      B.JSArray_methods.addAll$1($arguments, positionalArguments);
-      t1.names = "";
-      if (namedArguments != null && namedArguments.__js_helper$_length !== 0)
-        namedArguments.forEach$1(0, new A.Primitives_functionNoSuchMethod_closure(t1, namedArgumentList, $arguments));
-      return J.noSuchMethod$1$($function, new A.JSInvocationMirror(B.Symbol_call, 0, $arguments, namedArgumentList, 0));
-    },
-    Primitives_applyFunction($function, positionalArguments, namedArguments) {
-      var t1, argumentCount, jsStub;
-      if (Array.isArray(positionalArguments))
-        t1 = namedArguments == null || namedArguments.__js_helper$_length === 0;
-      else
-        t1 = false;
-      if (t1) {
-        argumentCount = positionalArguments.length;
-        if (argumentCount === 0) {
-          if (!!$function.call$0)
-            return $function.call$0();
-        } else if (argumentCount === 1) {
-          if (!!$function.call$1)
-            return $function.call$1(positionalArguments[0]);
-        } else if (argumentCount === 2) {
-          if (!!$function.call$2)
-            return $function.call$2(positionalArguments[0], positionalArguments[1]);
-        } else if (argumentCount === 3) {
-          if (!!$function.call$3)
-            return $function.call$3(positionalArguments[0], positionalArguments[1], positionalArguments[2]);
-        } else if (argumentCount === 4) {
-          if (!!$function.call$4)
-            return $function.call$4(positionalArguments[0], positionalArguments[1], positionalArguments[2], positionalArguments[3]);
-        } else if (argumentCount === 5)
-          if (!!$function.call$5)
-            return $function.call$5(positionalArguments[0], positionalArguments[1], positionalArguments[2], positionalArguments[3], positionalArguments[4]);
-        jsStub = $function["call" + "$" + argumentCount];
-        if (jsStub != null)
-          return jsStub.apply($function, positionalArguments);
-      }
-      return A.Primitives__generalApplyFunction($function, positionalArguments, namedArguments);
-    },
-    Primitives__generalApplyFunction($function, positionalArguments, namedArguments) {
-      var defaultValuesClosure, t1, defaultValues, interceptor, jsFunction, maxArguments, missingDefaults, keys, _i, defaultValue, used, key,
-        $arguments = Array.isArray(positionalArguments) ? positionalArguments : A.List_List$of(positionalArguments, true, type$.dynamic),
-        argumentCount = $arguments.length,
-        requiredParameterCount = $function.$requiredArgCount;
-      if (argumentCount < requiredParameterCount)
-        return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-      defaultValuesClosure = $function.$defaultValues;
-      t1 = defaultValuesClosure == null;
-      defaultValues = !t1 ? defaultValuesClosure() : null;
-      interceptor = J.getInterceptor$($function);
-      jsFunction = interceptor["call*"];
-      if (typeof jsFunction == "string")
-        jsFunction = interceptor[jsFunction];
-      if (t1) {
-        if (namedArguments != null && namedArguments.__js_helper$_length !== 0)
-          return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-        if (argumentCount === requiredParameterCount)
-          return jsFunction.apply($function, $arguments);
-        return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-      }
-      if (Array.isArray(defaultValues)) {
-        if (namedArguments != null && namedArguments.__js_helper$_length !== 0)
-          return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-        maxArguments = requiredParameterCount + defaultValues.length;
-        if (argumentCount > maxArguments)
-          return A.Primitives_functionNoSuchMethod($function, $arguments, null);
-        if (argumentCount < maxArguments) {
-          missingDefaults = defaultValues.slice(argumentCount - requiredParameterCount);
-          if ($arguments === positionalArguments)
-            $arguments = A.List_List$of($arguments, true, type$.dynamic);
-          B.JSArray_methods.addAll$1($arguments, missingDefaults);
-        }
-        return jsFunction.apply($function, $arguments);
-      } else {
-        if (argumentCount > requiredParameterCount)
-          return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-        if ($arguments === positionalArguments)
-          $arguments = A.List_List$of($arguments, true, type$.dynamic);
-        keys = Object.keys(defaultValues);
-        if (namedArguments == null)
-          for (t1 = keys.length, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) {
-            defaultValue = defaultValues[A._asString(keys[_i])];
-            if (B.C__Required === defaultValue)
-              return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-            B.JSArray_methods.add$1($arguments, defaultValue);
-          }
-        else {
-          for (t1 = keys.length, used = 0, _i = 0; _i < keys.length; keys.length === t1 || (0, A.throwConcurrentModificationError)(keys), ++_i) {
-            key = A._asString(keys[_i]);
-            if (namedArguments.containsKey$1(key)) {
-              ++used;
-              B.JSArray_methods.add$1($arguments, namedArguments.$index(0, key));
-            } else {
-              defaultValue = defaultValues[key];
-              if (B.C__Required === defaultValue)
-                return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-              B.JSArray_methods.add$1($arguments, defaultValue);
-            }
-          }
-          if (used !== namedArguments.__js_helper$_length)
-            return A.Primitives_functionNoSuchMethod($function, $arguments, namedArguments);
-        }
-        return jsFunction.apply($function, $arguments);
-      }
-    },
     Primitives_extractStackTrace(error) {
       var jsError = error.$thrownJsError;
       if (jsError == null)
@@ -1131,7 +1012,8 @@
     Primitives_trySetStackTrace(error, stackTrace) {
       var jsError;
       if (error.$thrownJsError == null) {
-        jsError = A.wrapException(error);
+        jsError = new Error();
+        A.initializeExceptionWrapper(error, jsError);
         error.$thrownJsError = jsError;
         jsError.stack = stackTrace.toString$0(0);
       }
@@ -1165,9 +1047,9 @@
       return new A.ArgumentError(true, object, null, null);
     },
     wrapException(ex) {
-      return A.initializeExceptionWrapper(new Error(), ex);
+      return A.initializeExceptionWrapper(ex, new Error());
     },
-    initializeExceptionWrapper(wrapper, ex) {
+    initializeExceptionWrapper(ex, wrapper) {
       var t1;
       if (ex == null)
         ex = new A.TypeError();
@@ -1183,11 +1065,8 @@
     toStringWrapper() {
       return J.toString$0$(this.dartException);
     },
-    throwExpression(ex) {
-      throw A.wrapException(ex);
-    },
-    throwExpressionWithWrapper(ex, wrapper) {
-      throw A.initializeExceptionWrapper(wrapper, ex);
+    throwExpression(ex, wrapper) {
+      throw A.initializeExceptionWrapper(ex, wrapper == null ? new Error() : wrapper);
     },
     throwUnsupportedOperation(o, operation, verb) {
       var wrapper;
@@ -1196,7 +1075,7 @@
       if (verb == null)
         verb = 0;
       wrapper = Error();
-      A.throwExpressionWithWrapper(A._diagnoseUnsupportedOperation(o, operation, verb), wrapper);
+      A.throwExpression(A._diagnoseUnsupportedOperation(o, operation, verb), wrapper);
     },
     _diagnoseUnsupportedOperation(o, encodedOperation, encodedVerb) {
       var operation, table, tableLength, index, verb, object, flags, article, adjective;
@@ -1455,7 +1334,7 @@
         $prototype.$static_name = $name;
         trampoline = $function;
       }
-      $prototype.$signature = A.Closure__computeSignatureFunctionNewRti(t1, isStatic, isIntercepted);
+      $prototype.$signature = A.Closure__computeSignatureFunction(t1, isStatic, isIntercepted);
       $prototype[callName] = trampoline;
       for (applyTrampoline = trampoline, i = 1; i < funsOrNames.length; ++i) {
         stub = funsOrNames[i];
@@ -1479,7 +1358,7 @@
       $prototype.$defaultValues = parameters.dV;
       return $constructor;
     },
-    Closure__computeSignatureFunctionNewRti(functionType, isStatic, isIntercepted) {
+    Closure__computeSignatureFunction(functionType, isStatic, isIntercepted) {
       if (typeof functionType == "number")
         return functionType;
       if (typeof functionType == "string") {
@@ -1632,20 +1511,12 @@
       }
       throw A.wrapException(A.ArgumentError$("Field name " + fieldName + " not found.", null));
     },
-    boolConversionCheck(value) {
-      if (value == null)
-        A.assertThrow("boolean expression must not be null");
-      return value;
-    },
-    assertThrow(message) {
-      throw A.wrapException(new A._AssertionError(message));
-    },
-    throwCyclicInit(staticName) {
-      throw A.wrapException(new A._CyclicInitializationError(staticName));
-    },
     getIsolateAffinityTag($name) {
       return init.getIsolateTag($name);
     },
+    staticInteropGlobalContext() {
+      return init.G;
+    },
     defineProperty(obj, property, value) {
       Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true});
     },
@@ -1798,19 +1669,18 @@
         return $function.apply(null, fieldRtis);
       return $function(fieldRtis);
     },
-    JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, unicode, dotAll, global) {
+    JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, unicode, dotAll, extraFlags) {
       var m = multiLine ? "m" : "",
         i = caseSensitive ? "" : "i",
         u = unicode ? "u" : "",
         s = dotAll ? "s" : "",
-        g = global ? "g" : "",
         regexp = function(source, modifiers) {
           try {
             return new RegExp(source, modifiers);
           } catch (e) {
             return e;
           }
-        }(source, m + i + u + s + g);
+        }(source, m + i + u + s + extraFlags);
       if (regexp instanceof RegExp)
         return regexp;
       throw A.wrapException(A.FormatException$("Illegal RegExp pattern (" + String(regexp) + ")", source, null));
@@ -1868,8 +1738,7 @@
         if (receiver === "")
           return replacement;
         $length = receiver.length;
-        t1 = "" + replacement;
-        for (i = 0; i < $length; ++i)
+        for (t1 = replacement, i = 0; i < $length; ++i)
           t1 = t1 + receiver[i] + replacement;
         return t1.charCodeAt(0) == 0 ? t1 : t1;
       }
@@ -1899,10 +1768,6 @@
     stringReplaceRangeUnchecked(receiver, start, end, replacement) {
       return receiver.substring(0, start) + replacement + receiver.substring(end);
     },
-    ConstantMapView: function ConstantMapView(t0, t1) {
-      this._collection$_map = t0;
-      this.$ti = t1;
-    },
     ConstantMap: function ConstantMap() {
     },
     ConstantStringMap: function ConstantStringMap(t0, t1, t2) {
@@ -1928,18 +1793,7 @@
       this._genericClosure = t0;
       this.$ti = t1;
     },
-    JSInvocationMirror: function JSInvocationMirror(t0, t1, t2, t3, t4) {
-      var _ = this;
-      _._memberName = t0;
-      _.__js_helper$_kind = t1;
-      _._arguments = t2;
-      _._namedArgumentNames = t3;
-      _._typeArgumentCount = t4;
-    },
-    Primitives_functionNoSuchMethod_closure: function Primitives_functionNoSuchMethod_closure(t0, t1, t2) {
-      this._box_0 = t0;
-      this.namedArgumentList = t1;
-      this.$arguments = t2;
+    SafeToStringHook: function SafeToStringHook() {
     },
     TypeErrorDecoder: function TypeErrorDecoder(t0, t1, t2, t3, t4, t5) {
       var _ = this;
@@ -1981,17 +1835,9 @@
       this._receiver = t0;
       this._interceptor = t1;
     },
-    _CyclicInitializationError: function _CyclicInitializationError(t0) {
-      this.variableName = t0;
-    },
     RuntimeError: function RuntimeError(t0) {
       this.message = t0;
     },
-    _AssertionError: function _AssertionError(t0) {
-      this.message = t0;
-    },
-    _Required: function _Required() {
-    },
     JsLinkedHashMap: function JsLinkedHashMap(t0) {
       var _ = this;
       _.__js_helper$_length = 0;
@@ -1999,25 +1845,35 @@
       _._modifications = 0;
       _.$ti = t0;
     },
-    JsLinkedHashMap_values_closure: function JsLinkedHashMap_values_closure(t0) {
-      this.$this = t0;
-    },
     LinkedHashMapCell: function LinkedHashMapCell(t0, t1) {
       var _ = this;
       _.hashMapCellKey = t0;
       _.hashMapCellValue = t1;
       _._previous = _._next = null;
     },
-    LinkedHashMapKeyIterable: function LinkedHashMapKeyIterable(t0, t1) {
+    LinkedHashMapKeysIterable: function LinkedHashMapKeysIterable(t0, t1) {
       this.__js_helper$_map = t0;
       this.$ti = t1;
     },
-    LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2) {
+    LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2, t3) {
       var _ = this;
       _.__js_helper$_map = t0;
       _._modifications = t1;
-      _.__js_helper$_current = _._cell = null;
-      _.$ti = t2;
+      _._cell = t2;
+      _.__js_helper$_current = null;
+      _.$ti = t3;
+    },
+    LinkedHashMapValuesIterable: function LinkedHashMapValuesIterable(t0, t1) {
+      this.__js_helper$_map = t0;
+      this.$ti = t1;
+    },
+    LinkedHashMapValueIterator: function LinkedHashMapValueIterator(t0, t1, t2, t3) {
+      var _ = this;
+      _.__js_helper$_map = t0;
+      _._modifications = t1;
+      _._cell = t2;
+      _.__js_helper$_current = null;
+      _.$ti = t3;
     },
     initHooks_closure: function initHooks_closure(t0) {
       this.getTag = t0;
@@ -2032,7 +1888,7 @@
       var _ = this;
       _.pattern = t0;
       _._nativeRegExp = t1;
-      _._nativeAnchoredRegExp = _._nativeGlobalRegExp = null;
+      _._hasCapturesCache = _._nativeAnchoredRegExp = _._nativeGlobalRegExp = null;
     },
     _MatchImplementation: function _MatchImplementation(t0) {
       this._match = t0;
@@ -2066,20 +1922,20 @@
       _.__js_helper$_current = null;
     },
     throwLateFieldNI(fieldName) {
-      A.throwExpressionWithWrapper(new A.LateError("Field '" + fieldName + "' has not been initialized."), new Error());
+      throw A.initializeExceptionWrapper(A.LateError$fieldNI(fieldName), new Error());
     },
     throwLateFieldAI(fieldName) {
-      A.throwExpressionWithWrapper(new A.LateError("Field '" + fieldName + "' has already been initialized."), new Error());
+      throw A.initializeExceptionWrapper(A.LateError$fieldAI(fieldName), new Error());
     },
     throwLateFieldADI(fieldName) {
-      A.throwExpressionWithWrapper(new A.LateError("Field '" + fieldName + "' has been assigned during initialization."), new Error());
+      throw A.initializeExceptionWrapper(A.LateError$fieldADI(fieldName), new Error());
     },
     _Cell$named(_name) {
       var t1 = new A._Cell(_name);
       return t1._value = t1;
     },
     _Cell: function _Cell(t0) {
-      this.__late_helper$_name = t0;
+      this._name = t0;
       this._value = null;
     },
     _ensureNativeList(list) {
@@ -2143,19 +1999,15 @@
     },
     _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin() {
     },
-    Rti__getQuestionFromStar(universe, rti) {
-      var question = rti._precomputed1;
-      return question == null ? rti._precomputed1 = A._Universe__lookupQuestionRti(universe, rti._primary, true) : question;
-    },
     Rti__getFutureFromFutureOr(universe, rti) {
       var future = rti._precomputed1;
       return future == null ? rti._precomputed1 = A._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future;
     },
     Rti__isUnionOfFunctionType(rti) {
       var kind = rti._kind;
-      if (kind === 6 || kind === 7 || kind === 8)
+      if (kind === 6 || kind === 7)
         return A.Rti__isUnionOfFunctionType(rti._primary);
-      return kind === 12 || kind === 13;
+      return kind === 11 || kind === 12;
     },
     Rti__getCanonicalRecipe(rti) {
       return rti._canonicalRecipe;
@@ -2194,26 +2046,20 @@
           substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth);
           if (substitutedBaseType === baseType)
             return rti;
-          return A._Universe__lookupStarRti(universe, substitutedBaseType, true);
+          return A._Universe__lookupQuestionRti(universe, substitutedBaseType, true);
         case 7:
           baseType = rti._primary;
           substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth);
           if (substitutedBaseType === baseType)
             return rti;
-          return A._Universe__lookupQuestionRti(universe, substitutedBaseType, true);
-        case 8:
-          baseType = rti._primary;
-          substitutedBaseType = A._substitute(universe, baseType, typeArguments, depth);
-          if (substitutedBaseType === baseType)
-            return rti;
           return A._Universe__lookupFutureOrRti(universe, substitutedBaseType, true);
-        case 9:
+        case 8:
           interfaceTypeArguments = rti._rest;
           substitutedInterfaceTypeArguments = A._substituteArray(universe, interfaceTypeArguments, typeArguments, depth);
           if (substitutedInterfaceTypeArguments === interfaceTypeArguments)
             return rti;
           return A._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments);
-        case 10:
+        case 9:
           base = rti._primary;
           substitutedBase = A._substitute(universe, base, typeArguments, depth);
           $arguments = rti._rest;
@@ -2221,14 +2067,14 @@
           if (substitutedBase === base && substitutedArguments === $arguments)
             return rti;
           return A._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments);
-        case 11:
+        case 10:
           t1 = rti._primary;
           fields = rti._rest;
           substitutedFields = A._substituteArray(universe, fields, typeArguments, depth);
           if (substitutedFields === fields)
             return rti;
           return A._Universe__lookupRecordRti(universe, t1, substitutedFields);
-        case 12:
+        case 11:
           returnType = rti._primary;
           substitutedReturnType = A._substitute(universe, returnType, typeArguments, depth);
           functionParameters = rti._rest;
@@ -2236,7 +2082,7 @@
           if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters)
             return rti;
           return A._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters);
-        case 13:
+        case 12:
           bounds = rti._rest;
           depth += bounds.length;
           substitutedBounds = A._substituteArray(universe, bounds, typeArguments, depth);
@@ -2245,7 +2091,7 @@
           if (substitutedBounds === bounds && substitutedBase === base)
             return rti;
           return A._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true);
-        case 14:
+        case 13:
           index = rti._primary;
           if (index < depth)
             return rti;
@@ -2387,102 +2233,102 @@
     },
     createRuntimeType(rti) {
       var t1 = rti._cachedRuntimeType;
-      return t1 == null ? rti._cachedRuntimeType = A._createRuntimeType(rti) : t1;
-    },
-    _createRuntimeType(rti) {
-      var starErasedRti, t1,
-        s = rti._canonicalRecipe,
-        starErasedRecipe = s.replace(/\*/g, "");
-      if (starErasedRecipe === s)
-        return rti._cachedRuntimeType = new A._Type(rti);
-      starErasedRti = A._Universe_eval(init.typeUniverse, starErasedRecipe, true);
-      t1 = starErasedRti._cachedRuntimeType;
-      return t1 == null ? starErasedRti._cachedRuntimeType = A._createRuntimeType(starErasedRti) : t1;
+      return t1 == null ? rti._cachedRuntimeType = new A._Type(rti) : t1;
     },
     typeLiteral(recipe) {
       return A.createRuntimeType(A._Universe_eval(init.typeUniverse, recipe, false));
     },
     _installSpecializedIsTest(object) {
-      var t1, unstarred, unstarredKind, isFn, $name, predicate, testRti = this;
-      if (testRti === type$.Object)
-        return A._finishIsFn(testRti, object, A._isObject);
-      if (!A.isSoundTopType(testRti))
-        t1 = testRti === type$.legacy_Object;
-      else
-        t1 = true;
-      if (t1)
-        return A._finishIsFn(testRti, object, A._isTop);
-      t1 = testRti._kind;
-      if (t1 === 7)
-        return A._finishIsFn(testRti, object, A._generalNullableIsTestImplementation);
-      if (t1 === 1)
-        return A._finishIsFn(testRti, object, A._isNever);
-      unstarred = t1 === 6 ? testRti._primary : testRti;
-      unstarredKind = unstarred._kind;
-      if (unstarredKind === 8)
-        return A._finishIsFn(testRti, object, A._isFutureOr);
-      if (unstarred === type$.int)
-        isFn = A._isInt;
-      else if (unstarred === type$.double || unstarred === type$.num)
-        isFn = A._isNum;
-      else if (unstarred === type$.String)
-        isFn = A._isString;
-      else
-        isFn = unstarred === type$.bool ? A._isBool : null;
-      if (isFn != null)
-        return A._finishIsFn(testRti, object, isFn);
-      if (unstarredKind === 9) {
-        $name = unstarred._primary;
-        if (unstarred._rest.every(A.isDefinitelyTopType)) {
-          testRti._specializedTestResource = "$is" + $name;
-          if ($name === "List")
-            return A._finishIsFn(testRti, object, A._isListTestViaProperty);
-          return A._finishIsFn(testRti, object, A._isTestViaProperty);
-        }
-      } else if (unstarredKind === 11) {
-        predicate = A.createRecordTypePredicate(unstarred._primary, unstarred._rest);
-        return A._finishIsFn(testRti, object, predicate == null ? A._isNever : predicate);
-      }
-      return A._finishIsFn(testRti, object, A._generalIsTestImplementation);
-    },
-    _finishIsFn(testRti, object, isFn) {
-      testRti._is = isFn;
+      var testRti = this;
+      testRti._is = A._specializedIsTest(testRti);
       return testRti._is(object);
     },
+    _specializedIsTest(testRti) {
+      var kind, simpleIsFn, $name, predicate, t1;
+      if (testRti === type$.Object)
+        return A._isObject;
+      if (A.isTopType(testRti))
+        return A._isTop;
+      kind = testRti._kind;
+      if (kind === 6)
+        return A._generalNullableIsTestImplementation;
+      if (kind === 1)
+        return A._isNever;
+      if (kind === 7)
+        return A._isFutureOr;
+      simpleIsFn = A._simpleSpecializedIsTest(testRti);
+      if (simpleIsFn != null)
+        return simpleIsFn;
+      if (kind === 8) {
+        $name = testRti._primary;
+        if (testRti._rest.every(A.isTopType)) {
+          testRti._specializedTestResource = "$is" + $name;
+          if ($name === "List")
+            return A._isListTestViaProperty;
+          if (testRti === type$.JSObject)
+            return A._isJSObject;
+          return A._isTestViaProperty;
+        }
+      } else if (kind === 10) {
+        predicate = A.createRecordTypePredicate(testRti._primary, testRti._rest);
+        t1 = predicate == null ? A._isNever : predicate;
+        return t1 == null ? A._asObject(t1) : t1;
+      }
+      return A._generalIsTestImplementation;
+    },
+    _simpleSpecializedIsTest(testRti) {
+      if (testRti._kind === 8) {
+        if (testRti === type$.int)
+          return A._isInt;
+        if (testRti === type$.double || testRti === type$.num)
+          return A._isNum;
+        if (testRti === type$.String)
+          return A._isString;
+        if (testRti === type$.bool)
+          return A._isBool;
+      }
+      return null;
+    },
     _installSpecializedAsCheck(object) {
-      var t1, testRti = this,
+      var testRti = this,
         asFn = A._generalAsCheckImplementation;
-      if (!A.isSoundTopType(testRti))
-        t1 = testRti === type$.legacy_Object;
-      else
-        t1 = true;
-      if (t1)
+      if (A.isTopType(testRti))
         asFn = A._asTop;
       else if (testRti === type$.Object)
         asFn = A._asObject;
-      else {
-        t1 = A.isNullable(testRti);
-        if (t1)
-          asFn = A._generalNullableAsCheckImplementation;
-      }
+      else if (A.isNullable(testRti)) {
+        asFn = A._generalNullableAsCheckImplementation;
+        if (testRti === type$.nullable_int)
+          asFn = A._asIntQ;
+        else if (testRti === type$.nullable_String)
+          asFn = A._asStringQ;
+        else if (testRti === type$.nullable_bool)
+          asFn = A._asBoolQ;
+        else if (testRti === type$.nullable_num)
+          asFn = A._asNumQ;
+        else if (testRti === type$.nullable_double)
+          asFn = A._asDoubleQ;
+        else if (testRti === type$.nullable_JSObject)
+          asFn = A._asJSObjectQ;
+      } else if (testRti === type$.int)
+        asFn = A._asInt;
+      else if (testRti === type$.String)
+        asFn = A._asString;
+      else if (testRti === type$.bool)
+        asFn = A._asBool;
+      else if (testRti === type$.num)
+        asFn = A._asNum;
+      else if (testRti === type$.double)
+        asFn = A._asDouble;
+      else if (testRti === type$.JSObject)
+        asFn = A._asJSObject;
       testRti._as = asFn;
       return testRti._as(object);
     },
-    _nullIs(testRti) {
-      var kind = testRti._kind,
-        t1 = true;
-      if (!A.isSoundTopType(testRti))
-        if (!(testRti === type$.legacy_Object))
-          if (!(testRti === type$.legacy_Never))
-            if (kind !== 7)
-              if (!(kind === 6 && A._nullIs(testRti._primary)))
-                t1 = kind === 8 && A._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull;
-      return t1;
-    },
     _generalIsTestImplementation(object) {
       var testRti = this;
       if (object == null)
-        return A._nullIs(testRti);
+        return A.isNullable(testRti);
       return A.isSubtype(init.typeUniverse, A.instanceOrFunctionType(object, testRti), testRti);
     },
     _generalNullableIsTestImplementation(object) {
@@ -2493,7 +2339,7 @@
     _isTestViaProperty(object) {
       var tag, testRti = this;
       if (object == null)
-        return A._nullIs(testRti);
+        return A.isNullable(testRti);
       tag = testRti._specializedTestResource;
       if (object instanceof A.Object)
         return !!object[tag];
@@ -2502,7 +2348,7 @@
     _isListTestViaProperty(object) {
       var tag, testRti = this;
       if (object == null)
-        return A._nullIs(testRti);
+        return A.isNullable(testRti);
       if (typeof object != "object")
         return false;
       if (Array.isArray(object))
@@ -2512,6 +2358,29 @@
         return !!object[tag];
       return !!J.getInterceptor$(object)[tag];
     },
+    _isJSObject(object) {
+      var t1 = this;
+      if (object == null)
+        return false;
+      if (typeof object == "object") {
+        if (object instanceof A.Object)
+          return !!object[t1._specializedTestResource];
+        return true;
+      }
+      if (typeof object == "function")
+        return true;
+      return false;
+    },
+    _isJSObjectStandalone(object) {
+      if (typeof object == "object") {
+        if (object instanceof A.Object)
+          return type$.JSObject._is(object);
+        return true;
+      }
+      if (typeof object == "function")
+        return true;
+      return false;
+    },
     _generalAsCheckImplementation(object) {
       var testRti = this;
       if (object == null) {
@@ -2519,23 +2388,21 @@
           return object;
       } else if (testRti._is(object))
         return object;
-      A._failedAsCheck(object, testRti);
+      throw A.initializeExceptionWrapper(A._errorForAsCheck(object, testRti), new Error());
     },
     _generalNullableAsCheckImplementation(object) {
       var testRti = this;
-      if (object == null)
+      if (object == null || testRti._is(object))
         return object;
-      else if (testRti._is(object))
-        return object;
-      A._failedAsCheck(object, testRti);
+      throw A.initializeExceptionWrapper(A._errorForAsCheck(object, testRti), new Error());
     },
-    _failedAsCheck(object, testRti) {
-      throw A.wrapException(A._TypeError$fromMessage(A._Error_compose(object, A._rtiToString(testRti, null))));
+    _errorForAsCheck(object, testRti) {
+      return new A._TypeError("TypeError: " + A._Error_compose(object, A._rtiToString(testRti, null)));
     },
     checkTypeBound(type, bound, variable, methodName) {
       if (A.isSubtype(init.typeUniverse, type, bound))
         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 + "'."));
+      throw A.initializeExceptionWrapper(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 + "'."), new Error());
     },
     _Error_compose(object, checkedTypeDescription) {
       return A.Error_safeToString(object) + ": type '" + A._rtiToString(A._structuralTypeOf(object), null) + "' is not a subtype of type '" + checkedTypeDescription + "'";
@@ -2547,9 +2414,8 @@
       return new A._TypeError("TypeError: " + A._Error_compose(object, type));
     },
     _isFutureOr(object) {
-      var testRti = this,
-        unstarred = testRti._kind === 6 ? testRti._primary : testRti;
-      return unstarred._primary._is(object) || A.Rti__getFutureFromFutureOr(init.typeUniverse, unstarred)._is(object);
+      var testRti = this;
+      return testRti._primary._is(object) || A.Rti__getFutureFromFutureOr(init.typeUniverse, testRti)._is(object);
     },
     _isObject(object) {
       return object != null;
@@ -2557,7 +2423,7 @@
     _asObject(object) {
       if (object != null)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "Object"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "Object"), new Error());
     },
     _isTop(object) {
       return true;
@@ -2576,16 +2442,7 @@
         return true;
       if (false === object)
         return false;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "bool"));
-    },
-    _asBoolS(object) {
-      if (true === object)
-        return true;
-      if (false === object)
-        return false;
-      if (object == null)
-        return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "bool"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "bool"), new Error());
     },
     _asBoolQ(object) {
       if (true === object)
@@ -2594,26 +2451,19 @@
         return false;
       if (object == null)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "bool?"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "bool?"), new Error());
     },
     _asDouble(object) {
       if (typeof object == "number")
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "double"));
-    },
-    _asDoubleS(object) {
-      if (typeof object == "number")
-        return object;
-      if (object == null)
-        return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "double"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "double"), new Error());
     },
     _asDoubleQ(object) {
       if (typeof object == "number")
         return object;
       if (object == null)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "double?"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "double?"), new Error());
     },
     _isInt(object) {
       return typeof object == "number" && Math.floor(object) === object;
@@ -2621,21 +2471,14 @@
     _asInt(object) {
       if (typeof object == "number" && Math.floor(object) === object)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "int"));
-    },
-    _asIntS(object) {
-      if (typeof object == "number" && Math.floor(object) === object)
-        return object;
-      if (object == null)
-        return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "int"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "int"), new Error());
     },
     _asIntQ(object) {
       if (typeof object == "number" && Math.floor(object) === object)
         return object;
       if (object == null)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "int?"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "int?"), new Error());
     },
     _isNum(object) {
       return typeof object == "number";
@@ -2643,21 +2486,14 @@
     _asNum(object) {
       if (typeof object == "number")
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "num"));
-    },
-    _asNumS(object) {
-      if (typeof object == "number")
-        return object;
-      if (object == null)
-        return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "num"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "num"), new Error());
     },
     _asNumQ(object) {
       if (typeof object == "number")
         return object;
       if (object == null)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "num?"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "num?"), new Error());
     },
     _isString(object) {
       return typeof object == "string";
@@ -2665,21 +2501,26 @@
     _asString(object) {
       if (typeof object == "string")
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "String"));
-    },
-    _asStringS(object) {
-      if (typeof object == "string")
-        return object;
-      if (object == null)
-        return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "String"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "String"), new Error());
     },
     _asStringQ(object) {
       if (typeof object == "string")
         return object;
       if (object == null)
         return object;
-      throw A.wrapException(A._TypeError__TypeError$forType(object, "String?"));
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "String?"), new Error());
+    },
+    _asJSObject(object) {
+      if (A._isJSObjectStandalone(object))
+        return object;
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "JSObject"), new Error());
+    },
+    _asJSObjectQ(object) {
+      if (object == null)
+        return object;
+      if (A._isJSObjectStandalone(object))
+        return object;
+      throw A.initializeExceptionWrapper(A._TypeError__TypeError$forType(object, "JSObject?"), new Error());
     },
     _rtiArrayToString(array, genericContext) {
       var s, sep, i;
@@ -2708,7 +2549,7 @@
       return s + "})";
     },
     _functionRtiToString(functionType, genericContext, bounds) {
-      var boundsLength, offset, i, t1, t2, typeParametersText, typeSep, t3, t4, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", ", outerContextLength = null;
+      var boundsLength, offset, i, t1, typeParametersText, typeSep, t2, t3, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", ", outerContextLength = null;
       if (bounds != null) {
         boundsLength = bounds.length;
         if (genericContext == null)
@@ -2718,19 +2559,15 @@
         offset = genericContext.length;
         for (i = boundsLength; i > 0; --i)
           B.JSArray_methods.add$1(genericContext, "T" + (offset + i));
-        for (t1 = type$.nullable_Object, t2 = type$.legacy_Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) {
-          t3 = genericContext.length;
-          t4 = t3 - 1 - i;
-          if (!(t4 >= 0))
-            return A.ioore(genericContext, t4);
-          typeParametersText = typeParametersText + typeSep + genericContext[t4];
+        for (t1 = type$.nullable_Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) {
+          t2 = genericContext.length;
+          t3 = t2 - 1 - i;
+          if (!(t3 >= 0))
+            return A.ioore(genericContext, t3);
+          typeParametersText = typeParametersText + typeSep + genericContext[t3];
           boundRti = bounds[i];
           kind = boundRti._kind;
           if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1))
-            t3 = boundRti === t2;
-          else
-            t3 = true;
-          if (!t3)
             typeParametersText += " extends " + A._rtiToString(boundRti, genericContext);
         }
         typeParametersText += ">";
@@ -2782,28 +2619,26 @@
         return "Never";
       if (kind === 4)
         return "any";
-      if (kind === 6)
-        return A._rtiToString(rti._primary, genericContext);
-      if (kind === 7) {
+      if (kind === 6) {
         questionArgument = rti._primary;
         s = A._rtiToString(questionArgument, genericContext);
         argumentKind = questionArgument._kind;
-        return (argumentKind === 12 || argumentKind === 13 ? "(" + s + ")" : s) + "?";
+        return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?";
       }
-      if (kind === 8)
+      if (kind === 7)
         return "FutureOr<" + A._rtiToString(rti._primary, genericContext) + ">";
-      if (kind === 9) {
+      if (kind === 8) {
         $name = A._unminifyOrTag(rti._primary);
         $arguments = rti._rest;
         return $arguments.length > 0 ? $name + ("<" + A._rtiArrayToString($arguments, genericContext) + ">") : $name;
       }
-      if (kind === 11)
+      if (kind === 10)
         return A._recordRtiToString(rti, genericContext);
-      if (kind === 12)
+      if (kind === 11)
         return A._functionRtiToString(rti, genericContext, null);
-      if (kind === 13)
+      if (kind === 12)
         return A._functionRtiToString(rti._primary, genericContext, rti._rest);
-      if (kind === 14) {
+      if (kind === 13) {
         t1 = rti._primary;
         t2 = genericContext.length;
         t1 = t2 - 1 - t1;
@@ -2821,14 +2656,14 @@
     },
     _Universe_findRule(universe, targetType) {
       var rule = universe.tR[targetType];
-      for (; typeof rule == "string";)
+      while (typeof rule == "string")
         rule = universe.tR[rule];
       return rule;
     },
     _Universe_findErasedType(universe, cls) {
       var $length, erased, $arguments, i, $interface,
-        t1 = universe.eT,
-        probe = t1[cls];
+        metadata = universe.eT,
+        probe = metadata[cls];
       if (probe == null)
         return A._Universe_eval(universe, cls, false);
       else if (typeof probe == "number") {
@@ -2838,7 +2673,7 @@
         for (i = 0; i < $length; ++i)
           $arguments[i] = erased;
         $interface = A._Universe__lookupInterfaceRti(universe, cls, $arguments);
-        t1[cls] = $interface;
+        metadata[cls] = $interface;
         return $interface;
       } else
         return probe;
@@ -2851,12 +2686,12 @@
     },
     _Universe_eval(universe, recipe, normalize) {
       var rti,
-        t1 = universe.eC,
-        probe = t1.get(recipe);
+        cache = universe.eC,
+        probe = cache.get(recipe);
       if (probe != null)
         return probe;
-      rti = A._Parser_parse(A._Parser_create(universe, null, recipe, normalize));
-      t1.set(recipe, rti);
+      rti = A._Parser_parse(A._Parser_create(universe, null, recipe, false));
+      cache.set(recipe, rti);
       return rti;
     },
     _Universe_evalInEnvironment(universe, environment, recipe) {
@@ -2880,7 +2715,7 @@
       probe = cache.get(argumentsRecipe);
       if (probe != null)
         return probe;
-      rti = A._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 10 ? argumentsRti._rest : [argumentsRti]);
+      rti = A._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 9 ? argumentsRti._rest : [argumentsRti]);
       cache.set(argumentsRecipe, rti);
       return rti;
     },
@@ -2901,33 +2736,6 @@
       universe.eC.set(key, t1);
       return t1;
     },
-    _Universe__lookupStarRti(universe, baseType, normalize) {
-      var t1,
-        key = baseType._canonicalRecipe + "*",
-        probe = universe.eC.get(key);
-      if (probe != null)
-        return probe;
-      t1 = A._Universe__createStarRti(universe, baseType, key, normalize);
-      universe.eC.set(key, t1);
-      return t1;
-    },
-    _Universe__createStarRti(universe, baseType, key, normalize) {
-      var baseKind, t1, rti;
-      if (normalize) {
-        baseKind = baseType._kind;
-        if (!A.isSoundTopType(baseType))
-          t1 = baseType === type$.Null || baseType === type$.JSNull || baseKind === 7 || baseKind === 6;
-        else
-          t1 = true;
-        if (t1)
-          return baseType;
-      }
-      rti = new A.Rti(null, null);
-      rti._kind = 6;
-      rti._primary = baseType;
-      rti._canonicalRecipe = key;
-      return A._Universe__installTypeTests(universe, rti);
-    },
     _Universe__lookupQuestionRti(universe, baseType, normalize) {
       var t1,
         key = baseType._canonicalRecipe + "?",
@@ -2939,28 +2747,21 @@
       return t1;
     },
     _Universe__createQuestionRti(universe, baseType, key, normalize) {
-      var baseKind, t1, starArgument, rti;
+      var baseKind, t1, rti;
       if (normalize) {
         baseKind = baseType._kind;
         t1 = true;
-        if (!A.isSoundTopType(baseType))
+        if (!A.isTopType(baseType))
           if (!(baseType === type$.Null || baseType === type$.JSNull))
-            if (baseKind !== 7)
-              t1 = baseKind === 8 && A.isNullable(baseType._primary);
+            if (baseKind !== 6)
+              t1 = baseKind === 7 && A.isNullable(baseType._primary);
         if (t1)
           return baseType;
-        else if (baseKind === 1 || baseType === type$.legacy_Never)
+        else if (baseKind === 1)
           return type$.Null;
-        else if (baseKind === 6) {
-          starArgument = baseType._primary;
-          if (starArgument._kind === 8 && A.isNullable(starArgument._primary))
-            return starArgument;
-          else
-            return A.Rti__getQuestionFromStar(universe, baseType);
-        }
       }
       rti = new A.Rti(null, null);
-      rti._kind = 7;
+      rti._kind = 6;
       rti._primary = baseType;
       rti._canonicalRecipe = key;
       return A._Universe__installTypeTests(universe, rti);
@@ -2979,7 +2780,7 @@
       var t1, rti;
       if (normalize) {
         t1 = baseType._kind;
-        if (A.isSoundTopType(baseType) || baseType === type$.Object || baseType === type$.legacy_Object)
+        if (A.isTopType(baseType) || baseType === type$.Object)
           return baseType;
         else if (t1 === 1)
           return A._Universe__lookupInterfaceRti(universe, "Future", [baseType]);
@@ -2987,7 +2788,7 @@
           return type$.nullable_Future_Null;
       }
       rti = new A.Rti(null, null);
-      rti._kind = 8;
+      rti._kind = 7;
       rti._primary = baseType;
       rti._canonicalRecipe = key;
       return A._Universe__installTypeTests(universe, rti);
@@ -2999,7 +2800,7 @@
       if (probe != null)
         return probe;
       rti = new A.Rti(null, null);
-      rti._kind = 14;
+      rti._kind = 13;
       rti._primary = index;
       rti._canonicalRecipe = key;
       t1 = A._Universe__installTypeTests(universe, rti);
@@ -3032,7 +2833,7 @@
       if (probe != null)
         return probe;
       rti = new A.Rti(null, null);
-      rti._kind = 9;
+      rti._kind = 8;
       rti._primary = $name;
       rti._rest = $arguments;
       if ($arguments.length > 0)
@@ -3044,7 +2845,7 @@
     },
     _Universe__lookupBindingRti(universe, base, $arguments) {
       var newBase, newArguments, key, probe, rti, t1;
-      if (base._kind === 10) {
+      if (base._kind === 9) {
         newBase = base._primary;
         newArguments = base._rest.concat($arguments);
       } else {
@@ -3056,7 +2857,7 @@
       if (probe != null)
         return probe;
       rti = new A.Rti(null, null);
-      rti._kind = 10;
+      rti._kind = 9;
       rti._primary = newBase;
       rti._rest = newArguments;
       rti._canonicalRecipe = key;
@@ -3071,7 +2872,7 @@
       if (probe != null)
         return probe;
       rti = new A.Rti(null, null);
-      rti._kind = 11;
+      rti._kind = 10;
       rti._primary = partialShapeTag;
       rti._rest = fields;
       rti._canonicalRecipe = key;
@@ -3102,7 +2903,7 @@
       if (probe != null)
         return probe;
       rti = new A.Rti(null, null);
-      rti._kind = 12;
+      rti._kind = 11;
       rti._primary = returnType;
       rti._rest = parameters;
       rti._canonicalRecipe = key;
@@ -3139,7 +2940,7 @@
         }
       }
       rti = new A.Rti(null, null);
-      rti._kind = 13;
+      rti._kind = 12;
       rti._primary = baseFunctionType;
       rti._rest = bounds;
       rti._canonicalRecipe = key;
@@ -3149,101 +2950,97 @@
       return {u: universe, e: environment, r: recipe, s: [], p: 0, n: normalize};
     },
     _Parser_parse(parser) {
-      var t2, i, ch, t3, array, end, item,
+      var t1, i, ch, u, array, end, item,
         source = parser.r,
-        t1 = parser.s;
-      for (t2 = source.length, i = 0; i < t2;) {
+        stack = parser.s;
+      for (t1 = source.length, i = 0; i < t1;) {
         ch = source.charCodeAt(i);
         if (ch >= 48 && ch <= 57)
-          i = A._Parser_handleDigit(i + 1, ch, source, t1);
+          i = A._Parser_handleDigit(i + 1, ch, source, stack);
         else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36 || ch === 124)
-          i = A._Parser_handleIdentifier(parser, i, source, t1, false);
+          i = A._Parser_handleIdentifier(parser, i, source, stack, false);
         else if (ch === 46)
-          i = A._Parser_handleIdentifier(parser, i, source, t1, true);
+          i = A._Parser_handleIdentifier(parser, i, source, stack, true);
         else {
           ++i;
           switch (ch) {
             case 44:
               break;
             case 58:
-              t1.push(false);
+              stack.push(false);
               break;
             case 33:
-              t1.push(true);
+              stack.push(true);
               break;
             case 59:
-              t1.push(A._Parser_toType(parser.u, parser.e, t1.pop()));
+              stack.push(A._Parser_toType(parser.u, parser.e, stack.pop()));
               break;
             case 94:
-              t1.push(A._Universe__lookupGenericFunctionParameterRti(parser.u, t1.pop()));
+              stack.push(A._Universe__lookupGenericFunctionParameterRti(parser.u, stack.pop()));
               break;
             case 35:
-              t1.push(A._Universe__lookupTerminalRti(parser.u, 5, "#"));
+              stack.push(A._Universe__lookupTerminalRti(parser.u, 5, "#"));
               break;
             case 64:
-              t1.push(A._Universe__lookupTerminalRti(parser.u, 2, "@"));
+              stack.push(A._Universe__lookupTerminalRti(parser.u, 2, "@"));
               break;
             case 126:
-              t1.push(A._Universe__lookupTerminalRti(parser.u, 3, "~"));
+              stack.push(A._Universe__lookupTerminalRti(parser.u, 3, "~"));
               break;
             case 60:
-              t1.push(parser.p);
-              parser.p = t1.length;
+              stack.push(parser.p);
+              parser.p = stack.length;
               break;
             case 62:
-              A._Parser_handleTypeArguments(parser, t1);
+              A._Parser_handleTypeArguments(parser, stack);
               break;
             case 38:
-              A._Parser_handleExtendedOperations(parser, t1);
-              break;
-            case 42:
-              t3 = parser.u;
-              t1.push(A._Universe__lookupStarRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n));
+              A._Parser_handleExtendedOperations(parser, stack);
               break;
             case 63:
-              t3 = parser.u;
-              t1.push(A._Universe__lookupQuestionRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n));
+              u = parser.u;
+              stack.push(A._Universe__lookupQuestionRti(u, A._Parser_toType(u, parser.e, stack.pop()), parser.n));
               break;
             case 47:
-              t3 = parser.u;
-              t1.push(A._Universe__lookupFutureOrRti(t3, A._Parser_toType(t3, parser.e, t1.pop()), parser.n));
+              u = parser.u;
+              stack.push(A._Universe__lookupFutureOrRti(u, A._Parser_toType(u, parser.e, stack.pop()), parser.n));
               break;
             case 40:
-              t1.push(-3);
-              t1.push(parser.p);
-              parser.p = t1.length;
+              stack.push(-3);
+              stack.push(parser.p);
+              parser.p = stack.length;
               break;
             case 41:
-              A._Parser_handleArguments(parser, t1);
+              A._Parser_handleArguments(parser, stack);
               break;
             case 91:
-              t1.push(parser.p);
-              parser.p = t1.length;
+              stack.push(parser.p);
+              parser.p = stack.length;
               break;
             case 93:
-              array = t1.splice(parser.p);
+              array = stack.splice(parser.p);
               A._Parser_toTypes(parser.u, parser.e, array);
-              parser.p = t1.pop();
-              t1.push(array);
-              t1.push(-1);
+              parser.p = stack.pop();
+              stack.push(array);
+              stack.push(-1);
               break;
             case 123:
-              t1.push(parser.p);
-              parser.p = t1.length;
+              stack.push(parser.p);
+              parser.p = stack.length;
               break;
             case 125:
-              array = t1.splice(parser.p);
+              array = stack.splice(parser.p);
               A._Parser_toTypesNamed(parser.u, parser.e, array);
-              parser.p = t1.pop();
-              t1.push(array);
-              t1.push(-2);
+              parser.p = stack.pop();
+              stack.push(array);
+              stack.push(-2);
               break;
             case 43:
               end = source.indexOf("(", i);
-              t1.push(source.substring(i, end));
-              t1.push(-4);
-              t1.push(parser.p);
-              parser.p = t1.length;
+              stack.push(source.substring(i, end));
+              stack.push(-4);
+              stack.push(parser.p);
+              parser.p = stack.length;
               i = end + 1;
               break;
             default:
@@ -3251,7 +3048,7 @@
           }
         }
       }
-      item = t1.pop();
+      item = stack.pop();
       return A._Parser_toType(parser.u, parser.e, item);
     },
     _Parser_handleDigit(i, digit, source, stack) {
@@ -3288,7 +3085,7 @@
       if (hasPeriod) {
         t1 = parser.u;
         environment = parser.e;
-        if (environment._kind === 10)
+        if (environment._kind === 9)
           environment = environment._primary;
         recipe = A._Universe_findRule(t1, environment._primary)[string];
         if (recipe == null)
@@ -3300,26 +3097,26 @@
     },
     _Parser_handleTypeArguments(parser, stack) {
       var base,
-        t1 = parser.u,
+        universe = parser.u,
         $arguments = A._Parser_collectArray(parser, stack),
         head = stack.pop();
       if (typeof head == "string")
-        stack.push(A._Universe__lookupInterfaceRti(t1, head, $arguments));
+        stack.push(A._Universe__lookupInterfaceRti(universe, head, $arguments));
       else {
-        base = A._Parser_toType(t1, parser.e, head);
+        base = A._Parser_toType(universe, parser.e, head);
         switch (base._kind) {
-          case 12:
-            stack.push(A._Universe__lookupGenericFunctionRti(t1, base, $arguments, parser.n));
+          case 11:
+            stack.push(A._Universe__lookupGenericFunctionRti(universe, base, $arguments, parser.n));
             break;
           default:
-            stack.push(A._Universe__lookupBindingRti(t1, base, $arguments));
+            stack.push(A._Universe__lookupBindingRti(universe, base, $arguments));
             break;
         }
       }
     },
     _Parser_handleArguments(parser, stack) {
       var requiredPositional, returnType, parameters,
-        t1 = parser.u,
+        universe = parser.u,
         head = stack.pop(),
         optionalPositional = null, named = null;
       if (typeof head == "number")
@@ -3342,18 +3139,18 @@
         case -3:
           head = stack.pop();
           if (optionalPositional == null)
-            optionalPositional = t1.sEA;
+            optionalPositional = universe.sEA;
           if (named == null)
-            named = t1.sEA;
-          returnType = A._Parser_toType(t1, parser.e, head);
+            named = universe.sEA;
+          returnType = A._Parser_toType(universe, parser.e, head);
           parameters = new A._FunctionParameters();
           parameters._requiredPositional = requiredPositional;
           parameters._optionalPositional = optionalPositional;
           parameters._named = named;
-          stack.push(A._Universe__lookupFunctionRti(t1, returnType, parameters));
+          stack.push(A._Universe__lookupFunctionRti(universe, returnType, parameters));
           return;
         case -4:
-          stack.push(A._Universe__lookupRecordRti(t1, stack.pop(), requiredPositional));
+          stack.push(A._Universe__lookupRecordRti(universe, stack.pop(), requiredPositional));
           return;
         default:
           throw A.wrapException(A.AssertionError$("Unexpected state under `()`: " + A.S(head)));
@@ -3401,7 +3198,7 @@
     _Parser_indexToType(universe, environment, index) {
       var typeArguments, len,
         kind = environment._kind;
-      if (kind === 10) {
+      if (kind === 9) {
         if (index === 0)
           return environment._primary;
         typeArguments = environment._rest;
@@ -3413,7 +3210,7 @@
         kind = environment._kind;
       } else if (index === 0)
         return environment;
-      if (kind !== 9)
+      if (kind !== 8)
         throw A.wrapException(A.AssertionError$("Indexed base must be an interface type"));
       typeArguments = environment._rest;
       if (index <= typeArguments.length)
@@ -3427,87 +3224,66 @@
         sCache = s._isSubtypeCache = new Map();
       result = sCache.get(t);
       if (result == null) {
-        result = A._isSubtype(universe, s, null, t, null, false) ? 1 : 0;
+        result = A._isSubtype(universe, s, null, t, null);
         sCache.set(t, result);
       }
-      if (0 === result)
-        return false;
-      if (1 === result)
-        return true;
-      return true;
+      return result;
     },
-    _isSubtype(universe, s, sEnv, t, tEnv, isLegacy) {
-      var t1, sKind, leftTypeVariable, tKind, t2, sBounds, tBounds, sLength, i, sBound, tBound;
+    _isSubtype(universe, s, sEnv, t, tEnv) {
+      var sKind, leftTypeVariable, tKind, t1, t2, sBounds, tBounds, sLength, i, sBound, tBound;
       if (s === t)
         return true;
-      if (!A.isSoundTopType(t))
-        t1 = t === type$.legacy_Object;
-      else
-        t1 = true;
-      if (t1)
+      if (A.isTopType(t))
         return true;
       sKind = s._kind;
       if (sKind === 4)
         return true;
-      if (A.isSoundTopType(s))
+      if (A.isTopType(s))
         return false;
-      t1 = s._kind;
-      if (t1 === 1)
+      if (s._kind === 1)
         return true;
-      leftTypeVariable = sKind === 14;
+      leftTypeVariable = sKind === 13;
       if (leftTypeVariable)
-        if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv, false))
+        if (A._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv))
           return true;
       tKind = t._kind;
-      t1 = s === type$.Null || s === type$.JSNull;
-      if (t1) {
-        if (tKind === 8)
-          return A._isSubtype(universe, s, sEnv, t._primary, tEnv, false);
-        return t === type$.Null || t === type$.JSNull || tKind === 7 || tKind === 6;
+      t1 = type$.Null;
+      if (s === t1 || s === type$.JSNull) {
+        if (tKind === 7)
+          return A._isSubtype(universe, s, sEnv, t._primary, tEnv);
+        return t === t1 || t === type$.JSNull || tKind === 6;
       }
       if (t === type$.Object) {
-        if (sKind === 8)
-          return A._isSubtype(universe, s._primary, sEnv, t, tEnv, false);
-        if (sKind === 6)
-          return A._isSubtype(universe, s._primary, sEnv, t, tEnv, false);
-        return sKind !== 7;
-      }
-      if (sKind === 6)
-        return A._isSubtype(universe, s._primary, sEnv, t, tEnv, false);
-      if (tKind === 6) {
-        t1 = A.Rti__getQuestionFromStar(universe, t);
-        return A._isSubtype(universe, s, sEnv, t1, tEnv, false);
-      }
-      if (sKind === 8) {
-        if (!A._isSubtype(universe, s._primary, sEnv, t, tEnv, false))
-          return false;
-        return A._isSubtype(universe, A.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv, false);
+        if (sKind === 7)
+          return A._isSubtype(universe, s._primary, sEnv, t, tEnv);
+        return sKind !== 6;
       }
       if (sKind === 7) {
-        t1 = A._isSubtype(universe, type$.Null, sEnv, t, tEnv, false);
-        return t1 && A._isSubtype(universe, s._primary, sEnv, t, tEnv, false);
+        if (!A._isSubtype(universe, s._primary, sEnv, t, tEnv))
+          return false;
+        return A._isSubtype(universe, A.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv);
       }
-      if (tKind === 8) {
-        if (A._isSubtype(universe, s, sEnv, t._primary, tEnv, false))
-          return true;
-        return A._isSubtype(universe, s, sEnv, A.Rti__getFutureFromFutureOr(universe, t), tEnv, false);
-      }
+      if (sKind === 6)
+        return A._isSubtype(universe, t1, sEnv, t, tEnv) && A._isSubtype(universe, s._primary, sEnv, t, tEnv);
       if (tKind === 7) {
-        t1 = A._isSubtype(universe, s, sEnv, type$.Null, tEnv, false);
-        return t1 || A._isSubtype(universe, s, sEnv, t._primary, tEnv, false);
+        if (A._isSubtype(universe, s, sEnv, t._primary, tEnv))
+          return true;
+        return A._isSubtype(universe, s, sEnv, A.Rti__getFutureFromFutureOr(universe, t), tEnv);
       }
+      if (tKind === 6)
+        return A._isSubtype(universe, s, sEnv, t1, tEnv) || A._isSubtype(universe, s, sEnv, t._primary, tEnv);
       if (leftTypeVariable)
         return false;
-      t1 = sKind !== 12;
-      if ((!t1 || sKind === 13) && t === type$.Function)
+      t1 = sKind !== 11;
+      if ((!t1 || sKind === 12) && t === type$.Function)
         return true;
-      t2 = sKind === 11;
+      t2 = sKind === 10;
       if (t2 && t === type$.Record)
         return true;
-      if (tKind === 13) {
+      if (tKind === 12) {
         if (s === type$.JavaScriptFunction)
           return true;
-        if (sKind !== 13)
+        if (sKind !== 12)
           return false;
         sBounds = s._rest;
         tBounds = t._rest;
@@ -3519,30 +3295,30 @@
         for (i = 0; i < sLength; ++i) {
           sBound = sBounds[i];
           tBound = tBounds[i];
-          if (!A._isSubtype(universe, sBound, sEnv, tBound, tEnv, false) || !A._isSubtype(universe, tBound, tEnv, sBound, sEnv, false))
+          if (!A._isSubtype(universe, sBound, sEnv, tBound, tEnv) || !A._isSubtype(universe, tBound, tEnv, sBound, sEnv))
             return false;
         }
-        return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv, false);
+        return A._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv);
       }
-      if (tKind === 12) {
+      if (tKind === 11) {
         if (s === type$.JavaScriptFunction)
           return true;
         if (t1)
           return false;
-        return A._isFunctionSubtype(universe, s, sEnv, t, tEnv, false);
+        return A._isFunctionSubtype(universe, s, sEnv, t, tEnv);
       }
-      if (sKind === 9) {
-        if (tKind !== 9)
+      if (sKind === 8) {
+        if (tKind !== 8)
           return false;
-        return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv, false);
+        return A._isInterfaceSubtype(universe, s, sEnv, t, tEnv);
       }
-      if (t2 && tKind === 11)
-        return A._isRecordSubtype(universe, s, sEnv, t, tEnv, false);
+      if (t2 && tKind === 10)
+        return A._isRecordSubtype(universe, s, sEnv, t, tEnv);
       return false;
     },
-    _isFunctionSubtype(universe, s, sEnv, t, tEnv, isLegacy) {
+    _isFunctionSubtype(universe, s, sEnv, t, tEnv) {
       var sParameters, tParameters, sRequiredPositional, tRequiredPositional, sRequiredPositionalLength, tRequiredPositionalLength, requiredPositionalDelta, sOptionalPositional, tOptionalPositional, sOptionalPositionalLength, tOptionalPositionalLength, i, t1, sNamed, tNamed, sNamedLength, tNamedLength, sIndex, tIndex, tName, sName, sIsRequired;
-      if (!A._isSubtype(universe, s._primary, sEnv, t._primary, tEnv, false))
+      if (!A._isSubtype(universe, s._primary, sEnv, t._primary, tEnv))
         return false;
       sParameters = s._rest;
       tParameters = t._rest;
@@ -3561,17 +3337,17 @@
         return false;
       for (i = 0; i < sRequiredPositionalLength; ++i) {
         t1 = sRequiredPositional[i];
-        if (!A._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv, false))
+        if (!A._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv))
           return false;
       }
       for (i = 0; i < requiredPositionalDelta; ++i) {
         t1 = sOptionalPositional[i];
-        if (!A._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv, false))
+        if (!A._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv))
           return false;
       }
       for (i = 0; i < tOptionalPositionalLength; ++i) {
         t1 = sOptionalPositional[requiredPositionalDelta + i];
-        if (!A._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv, false))
+        if (!A._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv))
           return false;
       }
       sNamed = sParameters._named;
@@ -3580,7 +3356,7 @@
       tNamedLength = tNamed.length;
       for (sIndex = 0, tIndex = 0; tIndex < tNamedLength; tIndex += 3) {
         tName = tNamed[tIndex];
-        for (; true;) {
+        for (;;) {
           if (sIndex >= sNamedLength)
             return false;
           sName = sNamed[sIndex];
@@ -3597,23 +3373,23 @@
           if (sIsRequired && !t1)
             return false;
           t1 = sNamed[sIndex - 1];
-          if (!A._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv, false))
+          if (!A._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv))
             return false;
           break;
         }
       }
-      for (; sIndex < sNamedLength;) {
+      while (sIndex < sNamedLength) {
         if (sNamed[sIndex + 1])
           return false;
         sIndex += 3;
       }
       return true;
     },
-    _isInterfaceSubtype(universe, s, sEnv, t, tEnv, isLegacy) {
+    _isInterfaceSubtype(universe, s, sEnv, t, tEnv) {
       var rule, recipes, $length, supertypeArgs, i,
         sName = s._primary,
         tName = t._primary;
-      for (; sName !== tName;) {
+      while (sName !== tName) {
         rule = universe.tR[sName];
         if (rule == null)
           return false;
@@ -3628,19 +3404,19 @@
         supertypeArgs = $length > 0 ? new Array($length) : init.typeUniverse.sEA;
         for (i = 0; i < $length; ++i)
           supertypeArgs[i] = A._Universe_evalInEnvironment(universe, s, recipes[i]);
-        return A._areArgumentsSubtypes(universe, supertypeArgs, null, sEnv, t._rest, tEnv, false);
+        return A._areArgumentsSubtypes(universe, supertypeArgs, null, sEnv, t._rest, tEnv);
       }
-      return A._areArgumentsSubtypes(universe, s._rest, null, sEnv, t._rest, tEnv, false);
+      return A._areArgumentsSubtypes(universe, s._rest, null, sEnv, t._rest, tEnv);
     },
-    _areArgumentsSubtypes(universe, sArgs, sVariances, sEnv, tArgs, tEnv, isLegacy) {
+    _areArgumentsSubtypes(universe, sArgs, sVariances, sEnv, tArgs, tEnv) {
       var i,
         $length = sArgs.length;
       for (i = 0; i < $length; ++i)
-        if (!A._isSubtype(universe, sArgs[i], sEnv, tArgs[i], tEnv, false))
+        if (!A._isSubtype(universe, sArgs[i], sEnv, tArgs[i], tEnv))
           return false;
       return true;
     },
-    _isRecordSubtype(universe, s, sEnv, t, tEnv, isLegacy) {
+    _isRecordSubtype(universe, s, sEnv, t, tEnv) {
       var i,
         sFields = s._rest,
         tFields = t._rest,
@@ -3650,7 +3426,7 @@
       if (s._primary !== t._primary)
         return false;
       for (i = 0; i < sCount; ++i)
-        if (!A._isSubtype(universe, sFields[i], sEnv, tFields[i], tEnv, false))
+        if (!A._isSubtype(universe, sFields[i], sEnv, tFields[i], tEnv))
           return false;
       return true;
     },
@@ -3658,21 +3434,12 @@
       var kind = t._kind,
         t1 = true;
       if (!(t === type$.Null || t === type$.JSNull))
-        if (!A.isSoundTopType(t))
-          if (kind !== 7)
-            if (!(kind === 6 && A.isNullable(t._primary)))
-              t1 = kind === 8 && A.isNullable(t._primary);
+        if (!A.isTopType(t))
+          if (kind !== 6)
+            t1 = kind === 7 && A.isNullable(t._primary);
       return t1;
     },
-    isDefinitelyTopType(t) {
-      var t1;
-      if (!A.isSoundTopType(t))
-        t1 = t === type$.legacy_Object;
-      else
-        t1 = true;
-      return t1;
-    },
-    isSoundTopType(t) {
+    isTopType(t) {
       var kind = t._kind;
       return kind === 2 || kind === 3 || kind === 4 || kind === 5 || t === type$.nullable_Object;
     },
@@ -3708,10 +3475,11 @@
       this.__rti$_message = t0;
     },
     _AsyncRun__initializeScheduleImmediate() {
-      var div, span, t1 = {};
+      var t1, div, span;
       if (self.scheduleImmediate != null)
         return A.async__AsyncRun__scheduleImmediateJsOverride$closure();
       if (self.MutationObserver != null && self.document != null) {
+        t1 = {};
         div = self.document.createElement("div");
         span = self.document.createElement("span");
         t1.storedCallback = null;
@@ -3753,7 +3521,7 @@
         if (stackTrace != null)
           return stackTrace;
       }
-      return B._StringStackTrace_uwd;
+      return B._StringStackTrace_OdL;
     },
     Future_Future$value(value, $T) {
       var t1;
@@ -3787,69 +3555,62 @@
         if (type$.Error._is(error)) {
           stackTrace = error.get$stackTrace();
           if (stackTrace == null) {
-            A.Primitives_trySetStackTrace(error, B._StringStackTrace_uwd);
-            stackTrace = B._StringStackTrace_uwd;
+            A.Primitives_trySetStackTrace(error, B._StringStackTrace_OdL);
+            stackTrace = B._StringStackTrace_OdL;
           }
         } else
-          stackTrace = B._StringStackTrace_uwd;
+          stackTrace = B._StringStackTrace_OdL;
       else if (type$.Error._is(error))
         A.Primitives_trySetStackTrace(error, stackTrace);
       return new A.AsyncError(error, stackTrace);
     },
-    _Future__chainCoreFutureSync(source, target) {
-      var t1, t2, listeners;
-      for (t1 = type$._Future_dynamic; t2 = source._async$_state, (t2 & 4) !== 0;)
-        source = t1._as(source._resultOrListeners);
-      if (source === target) {
-        target._asyncCompleteError$2(new A.ArgumentError(true, source, null, "Cannot complete a future with itself"), A.StackTrace_current());
-        return;
-      }
-      t1 = t2 | target._async$_state & 1;
-      source._async$_state = t1;
-      if ((t1 & 24) !== 0) {
-        listeners = target._removeListeners$0();
-        target._cloneResult$1(source);
-        A._Future__propagateToListeners(target, listeners);
-      } else {
-        listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners);
-        target._setChained$1(source);
-        source._prependListeners$1(listeners);
-      }
-    },
-    _Future__chainCoreFutureAsync(source, target) {
-      var t2, t3, listeners, _box_0 = {},
+    _Future__chainCoreFuture(source, target, sync) {
+      var t2, t3, ignoreError, listeners, _box_0 = {},
         t1 = _box_0.source = source;
       for (t2 = type$._Future_dynamic; t3 = t1._async$_state, (t3 & 4) !== 0; t1 = source) {
         source = t2._as(t1._resultOrListeners);
         _box_0.source = source;
       }
       if (t1 === target) {
-        target._asyncCompleteError$2(new A.ArgumentError(true, t1, null, "Cannot complete a future with itself"), A.StackTrace_current());
+        t2 = A.StackTrace_current();
+        target._asyncCompleteErrorObject$1(new A.AsyncError(new A.ArgumentError(true, t1, null, "Cannot complete a future with itself"), t2));
         return;
       }
-      if ((t3 & 24) === 0) {
+      ignoreError = target._async$_state & 1;
+      t2 = t1._async$_state = t3 | ignoreError;
+      if ((t2 & 24) === 0) {
         listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners);
-        target._setChained$1(t1);
-        _box_0.source._prependListeners$1(listeners);
+        target._async$_state = target._async$_state & 1 | 4;
+        target._resultOrListeners = t1;
+        t1._prependListeners$1(listeners);
         return;
       }
-      if ((t3 & 16) === 0 && target._resultOrListeners == null) {
-        target._cloneResult$1(t1);
+      if (!sync)
+        if (target._resultOrListeners == null)
+          t1 = (t2 & 16) === 0 || ignoreError !== 0;
+        else
+          t1 = false;
+      else
+        t1 = true;
+      if (t1) {
+        listeners = target._removeListeners$0();
+        target._cloneResult$1(_box_0.source);
+        A._Future__propagateToListeners(target, listeners);
         return;
       }
       target._async$_state ^= 2;
-      target._zone.scheduleMicrotask$1(new A._Future__chainCoreFutureAsync_closure(_box_0, target));
+      target._zone.scheduleMicrotask$1(new A._Future__chainCoreFuture_closure(_box_0, target));
     },
     _Future__propagateToListeners(source, listeners) {
-      var t2, t3, t4, _box_0, t5, t6, hasError, asyncError, nextListener, nextListener0, sourceResult, t7, zone, oldZone, result, current, _box_1 = {},
+      var t2, t3, _box_0, t4, t5, hasError, asyncError, nextListener, nextListener0, sourceResult, t6, zone, oldZone, result, current, _box_1 = {},
         t1 = _box_1.source = source;
-      for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic, t4 = type$.Future_dynamic; true;) {
+      for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic;;) {
         _box_0 = {};
-        t5 = t1._async$_state;
-        t6 = (t5 & 16) === 0;
-        hasError = !t6;
+        t4 = t1._async$_state;
+        t5 = (t4 & 16) === 0;
+        hasError = !t5;
         if (listeners == null) {
-          if (hasError && (t5 & 1) === 0) {
+          if (hasError && (t4 & 1) === 0) {
             asyncError = t2._as(t1._resultOrListeners);
             t1._zone.handleUncaughtError$2(asyncError.error, asyncError.stackTrace);
           }
@@ -3863,19 +3624,19 @@
           _box_0.listener = nextListener;
           nextListener0 = nextListener._nextListener;
         }
-        t5 = _box_1.source;
-        sourceResult = t5._resultOrListeners;
+        t4 = _box_1.source;
+        sourceResult = t4._resultOrListeners;
         _box_0.listenerHasError = hasError;
         _box_0.listenerValueOrError = sourceResult;
-        if (t6) {
-          t7 = t1.state;
-          t7 = (t7 & 1) !== 0 || (t7 & 15) === 8;
+        if (t5) {
+          t6 = t1.state;
+          t6 = (t6 & 1) !== 0 || (t6 & 15) === 8;
         } else
-          t7 = true;
-        if (t7) {
+          t6 = true;
+        if (t6) {
           zone = t1.result._zone;
           if (hasError) {
-            t1 = t5._zone;
+            t1 = t4._zone;
             t1 = !(t1 === zone || t1.get$errorZone() === zone.get$errorZone());
           } else
             t1 = false;
@@ -3893,7 +3654,7 @@
           t1 = _box_0.listener.state;
           if ((t1 & 15) === 8)
             new A._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0();
-          else if (t6) {
+          else if (t5) {
             if ((t1 & 1) !== 0)
               new A._Future__propagateToListeners_handleValueCallback(_box_0, sourceResult).call$0();
           } else if ((t1 & 2) !== 0)
@@ -3902,12 +3663,11 @@
             $.Zone__current = oldZone;
           t1 = _box_0.listenerValueOrError;
           if (t1 instanceof A._Future) {
-            t5 = _box_0.listener.$ti;
-            t5 = t5._eval$1("Future<2>")._is(t1) || !t5._rest[1]._is(t1);
+            t4 = _box_0.listener.$ti;
+            t4 = t4._eval$1("Future<2>")._is(t1) || !t4._rest[1]._is(t1);
           } else
-            t5 = false;
-          if (t5) {
-            t4._as(t1);
+            t4 = false;
+          if (t4) {
             result = _box_0.listener.result;
             if ((t1._async$_state & 24) !== 0) {
               current = t3._as(result._resultOrListeners);
@@ -3918,7 +3678,7 @@
               _box_1.source = t1;
               continue;
             } else
-              A._Future__chainCoreFutureSync(t1, result);
+              A._Future__chainCoreFuture(t1, result, true);
             return;
           }
         }
@@ -3927,15 +3687,15 @@
         result._resultOrListeners = null;
         listeners = result._reverseListeners$1(current);
         t1 = _box_0.listenerHasError;
-        t5 = _box_0.listenerValueOrError;
+        t4 = _box_0.listenerValueOrError;
         if (!t1) {
-          result.$ti._precomputed1._as(t5);
+          result.$ti._precomputed1._as(t4);
           result._async$_state = 8;
-          result._resultOrListeners = t5;
+          result._resultOrListeners = t4;
         } else {
-          t2._as(t5);
+          t2._as(t4);
           result._async$_state = result._async$_state & 1 | 16;
-          result._resultOrListeners = t5;
+          result._resultOrListeners = t4;
         }
         _box_1.source = result;
         t1 = result;
@@ -4050,7 +3810,7 @@
     _nullDataHandler(value) {
     },
     _nullErrorHandler(error, stackTrace) {
-      type$.Object._as(error);
+      A._asObject(error);
       type$.StackTrace._as(stackTrace);
       $.Zone__current.handleUncaughtError$2(error, stackTrace);
     },
@@ -4064,9 +3824,23 @@
       boundCallback = t1.bindUnaryCallbackGuarded$1$1(callback, type$.Timer);
       return $.Zone__current.createPeriodicTimer$2(duration, boundCallback);
     },
-    ZoneSpecification_ZoneSpecification$from(other, handleUncaughtError) {
-      var t1 = handleUncaughtError == null ? other.handleUncaughtError : handleUncaughtError;
-      return new A._ZoneSpecification(t1, other.run, other.runUnary, other.runBinary, other.registerCallback, other.registerUnaryCallback, other.registerBinaryCallback, other.errorCallback, other.scheduleMicrotask, other.createTimer, other.createPeriodicTimer, other.print, other.fork);
+    runZonedGuarded(body, onError, $R) {
+      var error, stackTrace, t1, exception, _null = null, zoneSpecification = null, zoneValues = null,
+        parentZone = $.Zone__current,
+        errorHandler = new A.runZonedGuarded_closure(parentZone, onError);
+      if (zoneSpecification == null)
+        zoneSpecification = new A._ZoneSpecification(errorHandler, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
+      else
+        zoneSpecification = A.ZoneSpecification_ZoneSpecification$from(zoneSpecification, errorHandler);
+      try {
+        t1 = parentZone.fork$2$specification$zoneValues(zoneSpecification, zoneValues).run$1$1(body, $R);
+        return t1;
+      } catch (exception) {
+        error = A.unwrapException(exception);
+        stackTrace = A.getTraceFromException(exception);
+        onError.call$2(error, stackTrace);
+      }
+      return _null;
     },
     _rootHandleUncaughtError($self, $parent, zone, error, stackTrace) {
       A._rootHandleError(error, type$.StackTrace._as(stackTrace));
@@ -4111,14 +3885,14 @@
         $.Zone__current = old;
       }
     },
-    _rootRunBinary($self, $parent, zone, f, arg1, arg2, $R, T1, T2) {
+    _rootRunBinary($self, $parent, zone, f, arg1, arg2, $R, $T1, $T2) {
       var old, t1;
       type$.nullable_Zone._as($self);
       type$.nullable_ZoneDelegate._as($parent);
       type$.Zone._as(zone);
-      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
-      T1._as(arg1);
-      T2._as(arg2);
+      $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f);
+      $T1._as(arg1);
+      $T2._as(arg2);
       t1 = $.Zone__current;
       if (t1 === zone)
         return f.call$2(arg1, arg2);
@@ -4137,8 +3911,8 @@
     _rootRegisterUnaryCallback($self, $parent, zone, f, $R, $T) {
       return $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
     },
-    _rootRegisterBinaryCallback($self, $parent, zone, f, $R, T1, T2) {
-      return $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
+    _rootRegisterBinaryCallback($self, $parent, zone, f, $R, $T1, $T2) {
+      return $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f);
     },
     _rootErrorCallback($self, $parent, zone, error, stackTrace) {
       type$.nullable_StackTrace._as(stackTrace);
@@ -4175,26 +3949,12 @@
       t1 = new A._CustomZone(zone.get$_run(), zone.get$_runUnary(), zone.get$_runBinary(), zone.get$_registerCallback(), zone.get$_registerUnaryCallback(), zone.get$_registerBinaryCallback(), zone.get$_errorCallback(), zone.get$_scheduleMicrotask(), zone.get$_createTimer(), zone.get$_createPeriodicTimer(), zone.get$_print(), zone.get$_fork(), zone.get$_handleUncaughtError(), zone, valueMap);
       handleUncaughtError = specification.handleUncaughtError;
       if (handleUncaughtError != null)
-        t1.set$_handleUncaughtError(new A._ZoneFunction(t1, handleUncaughtError, type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace));
+        t1._handleUncaughtError = new A._ZoneFunction(t1, handleUncaughtError, type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace);
       return t1;
     },
-    runZonedGuarded(body, onError, $R) {
-      var error, stackTrace, t1, exception, _null = null, zoneSpecification = null, zoneValues = null,
-        parentZone = $.Zone__current,
-        errorHandler = new A.runZonedGuarded_closure(parentZone, onError);
-      if (zoneSpecification == null)
-        zoneSpecification = new A._ZoneSpecification(errorHandler, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null, _null);
-      else
-        zoneSpecification = A.ZoneSpecification_ZoneSpecification$from(zoneSpecification, errorHandler);
-      try {
-        t1 = parentZone.fork$2$specification$zoneValues(zoneSpecification, zoneValues).run$1$1(body, $R);
-        return t1;
-      } catch (exception) {
-        error = A.unwrapException(exception);
-        stackTrace = A.getTraceFromException(exception);
-        onError.call$2(error, stackTrace);
-      }
-      return _null;
+    ZoneSpecification_ZoneSpecification$from(other, handleUncaughtError) {
+      var t1 = handleUncaughtError == null ? other.handleUncaughtError : handleUncaughtError;
+      return new A._ZoneSpecification(t1, other.run, other.runUnary, other.runBinary, other.registerCallback, other.registerUnaryCallback, other.registerBinaryCallback, other.errorCallback, other.scheduleMicrotask, other.createTimer, other.createPeriodicTimer, other.print, other.fork);
     },
     _AsyncRun__initializeScheduleImmediate_internalCallback: function _AsyncRun__initializeScheduleImmediate_internalCallback(t0) {
       this._box_0 = t0;
@@ -4262,18 +4022,7 @@
       this._box_0 = t0;
       this.$this = t1;
     },
-    _Future__chainForeignFuture_closure: function _Future__chainForeignFuture_closure(t0) {
-      this.$this = t0;
-    },
-    _Future__chainForeignFuture_closure0: function _Future__chainForeignFuture_closure0(t0) {
-      this.$this = t0;
-    },
-    _Future__chainForeignFuture_closure1: function _Future__chainForeignFuture_closure1(t0, t1, t2) {
-      this.$this = t0;
-      this.e = t1;
-      this.s = t2;
-    },
-    _Future__chainCoreFutureAsync_closure: function _Future__chainCoreFutureAsync_closure(t0, t1) {
+    _Future__chainCoreFuture_closure: function _Future__chainCoreFuture_closure(t0, t1) {
       this._box_0 = t0;
       this.target = t1;
     },
@@ -4281,18 +4030,21 @@
       this.$this = t0;
       this.value = t1;
     },
-    _Future__asyncCompleteError_closure: function _Future__asyncCompleteError_closure(t0, t1, t2) {
+    _Future__asyncCompleteErrorObject_closure: function _Future__asyncCompleteErrorObject_closure(t0, t1) {
       this.$this = t0;
       this.error = t1;
-      this.stackTrace = t2;
     },
     _Future__propagateToListeners_handleWhenCompleteCallback: function _Future__propagateToListeners_handleWhenCompleteCallback(t0, t1, t2) {
       this._box_0 = t0;
       this._box_1 = t1;
       this.hasError = t2;
     },
-    _Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0) {
-      this.originalSource = t0;
+    _Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0, t1) {
+      this.joinedResult = t0;
+      this.originalSource = t1;
+    },
+    _Future__propagateToListeners_handleWhenCompleteCallback_closure0: function _Future__propagateToListeners_handleWhenCompleteCallback_closure0(t0) {
+      this.joinedResult = t0;
     },
     _Future__propagateToListeners_handleValueCallback: function _Future__propagateToListeners_handleValueCallback(t0, t1) {
       this._box_0 = t0;
@@ -4413,25 +4165,6 @@
       this.$function = t1;
       this.$ti = t2;
     },
-    _ZoneSpecification: function _ZoneSpecification(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
-      var _ = this;
-      _.handleUncaughtError = t0;
-      _.run = t1;
-      _.runUnary = t2;
-      _.runBinary = t3;
-      _.registerCallback = t4;
-      _.registerUnaryCallback = t5;
-      _.registerBinaryCallback = t6;
-      _.errorCallback = t7;
-      _.scheduleMicrotask = t8;
-      _.createTimer = t9;
-      _.createPeriodicTimer = t10;
-      _.print = t11;
-      _.fork = t12;
-    },
-    _ZoneDelegate: function _ZoneDelegate(t0) {
-      this._delegationTarget = t0;
-    },
     _Zone: function _Zone() {
     },
     _CustomZone: function _CustomZone(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14) {
@@ -4474,10 +4207,6 @@
       this.registered = t1;
       this.T = t2;
     },
-    _rootHandleError_closure: function _rootHandleError_closure(t0, t1) {
-      this.error = t0;
-      this.stackTrace = t1;
-    },
     _RootZone: function _RootZone() {
     },
     _RootZone_bindCallback_closure: function _RootZone_bindCallback_closure(t0, t1, t2) {
@@ -4505,6 +4234,29 @@
       this.parentZone = t0;
       this.onError = t1;
     },
+    _ZoneDelegate: function _ZoneDelegate(t0) {
+      this._delegationTarget = t0;
+    },
+    _rootHandleError_closure: function _rootHandleError_closure(t0, t1) {
+      this.error = t0;
+      this.stackTrace = t1;
+    },
+    _ZoneSpecification: function _ZoneSpecification(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12) {
+      var _ = this;
+      _.handleUncaughtError = t0;
+      _.run = t1;
+      _.runUnary = t2;
+      _.runBinary = t3;
+      _.registerCallback = t4;
+      _.registerUnaryCallback = t5;
+      _.registerBinaryCallback = t6;
+      _.errorCallback = t7;
+      _.scheduleMicrotask = t8;
+      _.createTimer = t9;
+      _.createPeriodicTimer = t10;
+      _.print = t11;
+      _.fork = t12;
+    },
     HashMap_HashMap($K, $V) {
       return new A._HashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("_HashMap<1,2>"));
     },
@@ -4545,20 +4297,21 @@
       return t1;
     },
     MapBase_mapToString(m) {
-      var result, t1 = {};
+      var result, t1;
       if (A.isToStringVisiting(m))
         return "{...}";
       result = new A.StringBuffer("");
       try {
-        B.JSArray_methods.add$1($.toStringVisiting, m);
+        t1 = {};
+        B.JSArray_methods.add$1($._toStringVisiting, m);
         result._contents += "{";
         t1.first = true;
         m.forEach$1(0, new A.MapBase_mapToString_closure(t1, result));
         result._contents += "}";
       } finally {
-        if (0 >= $.toStringVisiting.length)
-          return A.ioore($.toStringVisiting, -1);
-        $.toStringVisiting.pop();
+        if (0 >= $._toStringVisiting.length)
+          return A.ioore($._toStringVisiting, -1);
+        $._toStringVisiting.pop();
       }
       t1 = result._contents;
       return t1.charCodeAt(0) == 0 ? t1 : t1;
@@ -4808,19 +4561,18 @@
       this._state = 16;
       this._charOrIndex = 0;
     },
-    int_parse(source, radix) {
-      var value = A.Primitives_parseInt(source, radix);
+    int_parse(source) {
+      var value = A.Primitives_parseInt(source, null);
       if (value != null)
         return value;
       throw A.wrapException(A.FormatException$(source, null, null));
     },
     Error__throw(error, stackTrace) {
-      error = A.wrapException(error);
+      error = A.initializeExceptionWrapper(error, new Error());
       if (error == null)
-        error = type$.Object._as(error);
+        error = A._asObject(error);
       error.stack = stackTrace.toString$0(0);
       throw error;
-      throw A.wrapException("unreachable");
     },
     List_List$filled($length, fill, growable, $E) {
       var i,
@@ -4835,17 +4587,11 @@
         list = A._setArrayType([], $E._eval$1("JSArray<0>"));
       for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
         B.JSArray_methods.add$1(list, $E._as(t1.get$current()));
+      if (growable)
+        return list;
       list.$flags = 1;
       return list;
     },
-    List_List$of(elements, growable, $E) {
-      var t1;
-      if (growable)
-        return A.List_List$_of(elements, $E);
-      t1 = A.List_List$_of(elements, $E);
-      t1.$flags = 1;
-      return t1;
-    },
     List_List$_of(elements, $E) {
       var list, t1;
       if (Array.isArray(elements))
@@ -4885,7 +4631,8 @@
         charCodes = J.take$1$ax(charCodes, end);
       if (start > 0)
         charCodes = J.skip$1$ax(charCodes, start);
-      return A.Primitives_stringFromCharCodes(A.List_List$of(charCodes, true, type$.int));
+      t1 = A.List_List$_of(charCodes, type$.int);
+      return A.Primitives_stringFromCharCodes(t1);
     },
     String_String$fromCharCode(charCode) {
       return A.Primitives_stringFromCharCode(charCode);
@@ -4897,7 +4644,7 @@
       return A.Primitives_stringFromNativeUint8List(charCodes, start, endOrNull == null || endOrNull > len ? len : endOrNull);
     },
     RegExp_RegExp(source, multiLine) {
-      return new A.JSSyntaxRegExp(source, A.JSSyntaxRegExp_makeNative(source, multiLine, true, false, false, false));
+      return new A.JSSyntaxRegExp(source, A.JSSyntaxRegExp_makeNative(source, multiLine, true, false, false, ""));
     },
     StringBuffer__writeAll(string, objects, separator) {
       var iterator = J.get$iterator$ax(objects);
@@ -4909,14 +4656,11 @@
         while (iterator.moveNext$0());
       } else {
         string += A.S(iterator.get$current());
-        for (; iterator.moveNext$0();)
+        while (iterator.moveNext$0())
           string = string + separator + A.S(iterator.get$current());
       }
       return string;
     },
-    NoSuchMethodError_NoSuchMethodError$withInvocation(receiver, invocation) {
-      return new A.NoSuchMethodError(receiver, invocation.get$memberName(), invocation.get$positionalArguments(), invocation.get$namedArguments());
-    },
     Uri_base() {
       var cachedUri, uri,
         current = A.Primitives_currentUri();
@@ -4930,8 +4674,8 @@
       $.Uri__cachedBaseString = current;
       return uri;
     },
-    _Uri__uriEncode(canonicalTable, text, encoding, spaceToPlus) {
-      var t1, bytes, i, t2, byte, t3,
+    _Uri__uriEncode(canonicalMask, text, encoding, spaceToPlus) {
+      var t1, bytes, i, t2, byte,
         _s16_ = "0123456789ABCDEF";
       if (encoding === B.C_Utf8Codec) {
         t1 = $.$get$_Uri__needsNoEncoding();
@@ -4943,14 +4687,7 @@
       bytes = B.C_Utf8Encoder.convert$1(text);
       for (t1 = bytes.length, i = 0, t2 = ""; i < t1; ++i) {
         byte = bytes[i];
-        if (byte < 128) {
-          t3 = byte >>> 4;
-          if (!(t3 < 8))
-            return A.ioore(canonicalTable, t3);
-          t3 = (canonicalTable[t3] & 1 << (byte & 15)) !== 0;
-        } else
-          t3 = false;
-        if (t3)
+        if (byte < 128 && (string$.x00_____.charCodeAt(byte) & canonicalMask) !== 0)
           t2 += A.Primitives_stringFromCharCode(byte);
         else
           t2 = spaceToPlus && byte === 32 ? t2 + "+" : t2 + "%" + _s16_[byte >>> 4 & 15] + _s16_[byte & 15];
@@ -5059,13 +4796,13 @@
         return leftDelimiter + "..." + rightDelimiter;
       }
       parts = A._setArrayType([], type$.JSArray_String);
-      B.JSArray_methods.add$1($.toStringVisiting, iterable);
+      B.JSArray_methods.add$1($._toStringVisiting, iterable);
       try {
         A._iterablePartsToStrings(iterable, parts);
       } finally {
-        if (0 >= $.toStringVisiting.length)
-          return A.ioore($.toStringVisiting, -1);
-        $.toStringVisiting.pop();
+        if (0 >= $._toStringVisiting.length)
+          return A.ioore($._toStringVisiting, -1);
+        $._toStringVisiting.pop();
       }
       t1 = A.StringBuffer__writeAll(leftDelimiter, type$.Iterable_dynamic._as(parts), ", ") + rightDelimiter;
       return t1.charCodeAt(0) == 0 ? t1 : t1;
@@ -5075,14 +4812,14 @@
       if (A.isToStringVisiting(iterable))
         return leftDelimiter + "..." + rightDelimiter;
       buffer = new A.StringBuffer(leftDelimiter);
-      B.JSArray_methods.add$1($.toStringVisiting, iterable);
+      B.JSArray_methods.add$1($._toStringVisiting, iterable);
       try {
         t1 = buffer;
         t1._contents = A.StringBuffer__writeAll(t1._contents, iterable, ", ");
       } finally {
-        if (0 >= $.toStringVisiting.length)
-          return A.ioore($.toStringVisiting, -1);
-        $.toStringVisiting.pop();
+        if (0 >= $._toStringVisiting.length)
+          return A.ioore($._toStringVisiting, -1);
+        $._toStringVisiting.pop();
       }
       buffer._contents += rightDelimiter;
       t1 = buffer._contents;
@@ -5092,7 +4829,7 @@
       var next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision,
         it = iterable.get$iterator(iterable),
         $length = 0, count = 0;
-      while (true) {
+      for (;;) {
         if (!($length < 80 || count < 3))
           break;
         if (!it.moveNext$0())
@@ -5131,7 +4868,7 @@
             ultimate0 = it.get$current();
             ++count;
             if (count > 100) {
-              while (true) {
+              for (;;) {
                 if (!($length > 75 && count > 3))
                   break;
                 if (0 >= parts.length)
@@ -5153,7 +4890,7 @@
         elision = "...";
       } else
         elision = null;
-      while (true) {
+      for (;;) {
         if (!($length > 80 && parts.length > 3))
           break;
         if (0 >= parts.length)
@@ -5182,7 +4919,7 @@
       A.UriData__writeUri(_null, _null, _null, buffer, indices);
       B.JSArray_methods.add$1(indices, buffer._contents.length);
       buffer._contents += ",";
-      A.UriData__uriEncodeBytes(B.List_42A, B.C_AsciiCodec.encode$1($content), buffer);
+      A.UriData__uriEncodeBytes(256, B.C_AsciiCodec.encode$1($content), buffer);
       t1 = buffer._contents;
       return new A.UriData(t1.charCodeAt(0) == 0 ? t1 : t1, indices, _null).get$uri();
     },
@@ -5334,121 +5071,246 @@
       var t1 = type$.String;
       return B.JSArray_methods.fold$1$2(A._setArrayType(query.split("&"), type$.JSArray_String), A.LinkedHashMap_LinkedHashMap$_empty(t1, t1), new A.Uri_splitQueryString_closure(B.C_Utf8Codec), type$.Map_String_String);
     },
-    Uri__parseIPv4Address(host, start, end) {
-      var t1, i, partStart, partIndex, char, part, partIndex0,
-        _s43_ = "IPv4 address should contain exactly 4 parts",
-        _s37_ = "each part must be in the range 0..255",
-        error = new A.Uri__parseIPv4Address_error(host),
-        result = new Uint8Array(4);
-      for (t1 = host.length, i = start, partStart = i, partIndex = 0; i < end; ++i) {
-        if (!(i >= 0 && i < t1))
-          return A.ioore(host, i);
-        char = host.charCodeAt(i);
-        if (char !== 46) {
-          if ((char ^ 48) > 9)
-            error.call$2("invalid character", i);
-        } else {
-          if (partIndex === 3)
-            error.call$2(_s43_, i);
-          part = A.int_parse(B.JSString_methods.substring$2(host, partStart, i), null);
-          if (part > 255)
-            error.call$2(_s37_, partStart);
-          partIndex0 = partIndex + 1;
-          if (!(partIndex < 4))
-            return A.ioore(result, partIndex);
-          result[partIndex] = part;
-          partStart = i + 1;
-          partIndex = partIndex0;
+    Uri__ipv4FormatError(msg, source, position) {
+      throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, source, position));
+    },
+    Uri__parseIPv4Address(host, start, end, target, targetOffset) {
+      var t1, octetStart, cursor, octetIndex, octetValue, char, digit, octetIndex0, t2,
+        _s17_ = "invalid character";
+      for (t1 = host.length, octetStart = start, cursor = octetStart, octetIndex = 0, octetValue = 0;;) {
+        if (cursor >= end)
+          char = 0;
+        else {
+          if (!(cursor >= 0 && cursor < t1))
+            return A.ioore(host, cursor);
+          char = host.charCodeAt(cursor);
         }
+        digit = char ^ 48;
+        if (digit <= 9) {
+          if (octetValue !== 0 || cursor === octetStart) {
+            octetValue = octetValue * 10 + digit;
+            if (octetValue <= 255) {
+              ++cursor;
+              continue;
+            }
+            A.Uri__ipv4FormatError("each part must be in the range 0..255", host, octetStart);
+          }
+          A.Uri__ipv4FormatError("parts must not have leading zeros", host, octetStart);
+        }
+        if (cursor === octetStart) {
+          if (cursor === end)
+            break;
+          A.Uri__ipv4FormatError(_s17_, host, cursor);
+        }
+        octetIndex0 = octetIndex + 1;
+        t2 = targetOffset + octetIndex;
+        target.$flags & 2 && A.throwUnsupportedOperation(target);
+        if (!(t2 < 16))
+          return A.ioore(target, t2);
+        target[t2] = octetValue;
+        if (char === 46) {
+          if (octetIndex0 < 4) {
+            ++cursor;
+            octetIndex = octetIndex0;
+            octetStart = cursor;
+            octetValue = 0;
+            continue;
+          }
+          break;
+        }
+        if (cursor === end) {
+          if (octetIndex0 === 4)
+            return;
+          break;
+        }
+        A.Uri__ipv4FormatError(_s17_, host, cursor);
+        octetIndex = octetIndex0;
       }
-      if (partIndex !== 3)
-        error.call$2(_s43_, end);
-      part = A.int_parse(B.JSString_methods.substring$2(host, partStart, end), null);
-      if (part > 255)
-        error.call$2(_s37_, partStart);
-      if (!(partIndex < 4))
-        return A.ioore(result, partIndex);
-      result[partIndex] = part;
-      return result;
+      A.Uri__ipv4FormatError("IPv4 address should contain exactly 4 parts", host, cursor);
+    },
+    Uri__validateIPvAddress(host, start, end) {
+      var error;
+      if (start === end)
+        throw A.wrapException(A.FormatException$("Empty IP address", host, start));
+      if (!(start >= 0 && start < host.length))
+        return A.ioore(host, start);
+      if (host.charCodeAt(start) === 118) {
+        error = A.Uri__validateIPvFutureAddress(host, start, end);
+        if (error != null)
+          throw A.wrapException(error);
+        return false;
+      }
+      A.Uri_parseIPv6Address(host, start, end);
+      return true;
+    },
+    Uri__validateIPvFutureAddress(host, start, end) {
+      var t1, cursor, cursor0, char, ucChar,
+        _s38_ = "Missing hex-digit in IPvFuture address",
+        _s128_ = string$.x00_____;
+      ++start;
+      for (t1 = host.length, cursor = start;; cursor = cursor0) {
+        if (cursor < end) {
+          cursor0 = cursor + 1;
+          if (!(cursor >= 0 && cursor < t1))
+            return A.ioore(host, cursor);
+          char = host.charCodeAt(cursor);
+          if ((char ^ 48) <= 9)
+            continue;
+          ucChar = char | 32;
+          if (ucChar >= 97 && ucChar <= 102)
+            continue;
+          if (char === 46) {
+            if (cursor0 - 1 === start)
+              return new A.FormatException(_s38_, host, cursor0);
+            cursor = cursor0;
+            break;
+          }
+          return new A.FormatException("Unexpected character", host, cursor0 - 1);
+        }
+        if (cursor - 1 === start)
+          return new A.FormatException(_s38_, host, cursor);
+        return new A.FormatException("Missing '.' in IPvFuture address", host, cursor);
+      }
+      if (cursor === end)
+        return new A.FormatException("Missing address in IPvFuture address, host, cursor", null, null);
+      for (;;) {
+        if (!(cursor >= 0 && cursor < t1))
+          return A.ioore(host, cursor);
+        char = host.charCodeAt(cursor);
+        if (!(char < 128))
+          return A.ioore(_s128_, char);
+        if ((_s128_.charCodeAt(char) & 16) !== 0) {
+          ++cursor;
+          if (cursor < end)
+            continue;
+          return null;
+        }
+        return new A.FormatException("Invalid IPvFuture address character", host, cursor);
+      }
     },
     Uri_parseIPv6Address(host, start, end) {
-      var parts, i, partStart, wildcardSeen, seenDot, char, atEnd, last, bytes, wildCardLength, index, value, j, t2, _null = null,
-        error = new A.Uri_parseIPv6Address_error(host),
-        parseHex = new A.Uri_parseIPv6Address_parseHex(error, host),
-        t1 = host.length;
-      if (t1 < 2)
-        error.call$2("address is too short", _null);
-      parts = A._setArrayType([], type$.JSArray_int);
-      for (i = start, partStart = i, wildcardSeen = false, seenDot = false; i < end; ++i) {
-        if (!(i >= 0 && i < t1))
-          return A.ioore(host, i);
-        char = host.charCodeAt(i);
-        if (char === 58) {
-          if (i === start) {
-            ++i;
-            if (!(i < t1))
-              return A.ioore(host, i);
-            if (host.charCodeAt(i) !== 58)
-              error.call$2("invalid start colon.", i);
-            partStart = i;
-          }
-          if (i === partStart) {
-            if (wildcardSeen)
-              error.call$2("only one wildcard `::` is allowed", i);
-            B.JSArray_methods.add$1(parts, -1);
-            wildcardSeen = true;
-          } else
-            B.JSArray_methods.add$1(parts, parseHex.call$2(partStart, i));
-          partStart = i + 1;
-        } else if (char === 46)
-          seenDot = true;
-      }
-      if (parts.length === 0)
-        error.call$2("too few parts", _null);
-      atEnd = partStart === end;
-      t1 = B.JSArray_methods.get$last(parts);
-      if (atEnd && t1 !== -1)
-        error.call$2("expected a part after last `:`", end);
-      if (!atEnd)
-        if (!seenDot)
-          B.JSArray_methods.add$1(parts, parseHex.call$2(partStart, end));
-        else {
-          last = A.Uri__parseIPv4Address(host, partStart, end);
-          B.JSArray_methods.add$1(parts, (last[0] << 8 | last[1]) >>> 0);
-          B.JSArray_methods.add$1(parts, (last[2] << 8 | last[3]) >>> 0);
+      var result, t1, wildcardAt, partCount, t2, cursor, partStart, hexValue, decValue, char, _0_0, decValue0, hexDigit, _1_0, t3, partCount0, partAfterWildcard, partsAfterWildcard, positionAfterWildcard, newPositionAfterWildcard,
+        _s39_ = "an address must contain at most 8 parts",
+        error = new A.Uri_parseIPv6Address_error(host);
+      if (end - start < 2)
+        error.call$2("address is too short", null);
+      result = new Uint8Array(16);
+      t1 = host.length;
+      if (!(start >= 0 && start < t1))
+        return A.ioore(host, start);
+      wildcardAt = -1;
+      partCount = 0;
+      if (host.charCodeAt(start) === 58) {
+        t2 = start + 1;
+        if (!(t2 < t1))
+          return A.ioore(host, t2);
+        if (host.charCodeAt(t2) === 58) {
+          cursor = start + 2;
+          partStart = cursor;
+          wildcardAt = 0;
+          partCount = 1;
+        } else {
+          error.call$2("invalid start colon", start);
+          cursor = start;
+          partStart = cursor;
         }
-      if (wildcardSeen) {
-        if (parts.length > 7)
-          error.call$2("an address with a wildcard must have less than 7 parts", _null);
-      } else if (parts.length !== 8)
-        error.call$2("an address without a wildcard must contain exactly 8 parts", _null);
-      bytes = new Uint8Array(16);
-      for (t1 = parts.length, wildCardLength = 9 - t1, i = 0, index = 0; i < t1; ++i) {
-        value = parts[i];
-        if (value === -1)
-          for (j = 0; j < wildCardLength; ++j) {
-            if (!(index >= 0 && index < 16))
-              return A.ioore(bytes, index);
-            bytes[index] = 0;
-            t2 = index + 1;
-            if (!(t2 < 16))
-              return A.ioore(bytes, t2);
-            bytes[t2] = 0;
-            index += 2;
-          }
+      } else {
+        cursor = start;
+        partStart = cursor;
+      }
+      for (hexValue = 0, decValue = true;;) {
+        if (cursor >= end)
+          char = 0;
         else {
-          t2 = B.JSInt_methods._shrOtherPositive$1(value, 8);
-          if (!(index >= 0 && index < 16))
-            return A.ioore(bytes, index);
-          bytes[index] = t2;
-          t2 = index + 1;
+          if (!(cursor < t1))
+            return A.ioore(host, cursor);
+          char = host.charCodeAt(cursor);
+        }
+        $label0$0: {
+          _0_0 = char ^ 48;
+          decValue0 = false;
+          if (_0_0 <= 9)
+            hexDigit = _0_0;
+          else {
+            _1_0 = char | 32;
+            if (_1_0 >= 97 && _1_0 <= 102)
+              hexDigit = _1_0 - 87;
+            else
+              break $label0$0;
+            decValue = decValue0;
+          }
+          if (cursor < partStart + 4) {
+            hexValue = hexValue * 16 + hexDigit;
+            ++cursor;
+            continue;
+          }
+          error.call$2("an IPv6 part can contain a maximum of 4 hex digits", partStart);
+        }
+        if (cursor > partStart) {
+          if (char === 46) {
+            if (decValue) {
+              if (partCount <= 6) {
+                A.Uri__parseIPv4Address(host, partStart, end, result, partCount * 2);
+                partCount += 2;
+                cursor = end;
+                break;
+              }
+              error.call$2(_s39_, partStart);
+            }
+            break;
+          }
+          t2 = partCount * 2;
+          t3 = B.JSInt_methods._shrOtherPositive$1(hexValue, 8);
           if (!(t2 < 16))
-            return A.ioore(bytes, t2);
-          bytes[t2] = value & 255;
-          index += 2;
+            return A.ioore(result, t2);
+          result[t2] = t3;
+          ++t2;
+          if (!(t2 < 16))
+            return A.ioore(result, t2);
+          result[t2] = hexValue & 255;
+          ++partCount;
+          if (char === 58) {
+            if (partCount < 8) {
+              ++cursor;
+              partStart = cursor;
+              hexValue = 0;
+              decValue = true;
+              continue;
+            }
+            error.call$2(_s39_, cursor);
+          }
+          break;
+        }
+        if (char === 58) {
+          if (wildcardAt < 0) {
+            partCount0 = partCount + 1;
+            ++cursor;
+            wildcardAt = partCount;
+            partCount = partCount0;
+            partStart = cursor;
+            continue;
+          }
+          error.call$2("only one wildcard `::` is allowed", cursor);
+        }
+        if (wildcardAt !== partCount - 1)
+          error.call$2("missing part", cursor);
+        break;
+      }
+      if (cursor < end)
+        error.call$2("invalid character", cursor);
+      if (partCount < 8) {
+        if (wildcardAt < 0)
+          error.call$2("an address without a wildcard must contain exactly 8 parts", end);
+        partAfterWildcard = wildcardAt + 1;
+        partsAfterWildcard = partCount - partAfterWildcard;
+        if (partsAfterWildcard > 0) {
+          positionAfterWildcard = partAfterWildcard * 2;
+          newPositionAfterWildcard = 16 - partsAfterWildcard * 2;
+          B.NativeUint8List_methods.setRange$4(result, newPositionAfterWildcard, 16, result, positionAfterWildcard);
+          B.NativeUint8List_methods.fillRange$3(result, positionAfterWildcard, newPositionAfterWildcard, 0);
         }
       }
-      return bytes;
+      return result;
     },
     _Uri$_internal(scheme, _userInfo, _host, _port, path, _query, _fragment) {
       return new A._Uri(scheme, _userInfo, _host, _port, path, _query, _fragment);
@@ -5603,7 +5465,7 @@
       return port;
     },
     _Uri__makeHost(host, start, end, strictIPv6) {
-      var t1, t2, index, zoneIDstart, zoneID, i;
+      var t1, t2, t3, zoneID, index, zoneIDstart, isIPv6, hostChars, i;
       if (host == null)
         return null;
       if (start === end)
@@ -5617,15 +5479,21 @@
           return A.ioore(host, t2);
         if (host.charCodeAt(t2) !== 93)
           A._Uri__fail(host, start, "Missing end `]` to match `[` in host");
-        t1 = start + 1;
-        index = A._Uri__checkZoneID(host, t1, t2);
-        if (index < t2) {
-          zoneIDstart = index + 1;
-          zoneID = A._Uri__normalizeZoneID(host, B.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, t2, "%25");
+        t3 = start + 1;
+        if (!(t3 < t1))
+          return A.ioore(host, t3);
+        zoneID = "";
+        if (host.charCodeAt(t3) !== 118) {
+          index = A._Uri__checkZoneID(host, t3, t2);
+          if (index < t2) {
+            zoneIDstart = index + 1;
+            zoneID = A._Uri__normalizeZoneID(host, B.JSString_methods.startsWith$2(host, "25", zoneIDstart) ? index + 3 : zoneIDstart, t2, "%25");
+          }
         } else
-          zoneID = "";
-        A.Uri_parseIPv6Address(host, t1, index);
-        return B.JSString_methods.substring$2(host, start, index).toLowerCase() + zoneID + "]";
+          index = t2;
+        isIPv6 = A.Uri__validateIPvAddress(host, t3, index);
+        hostChars = B.JSString_methods.substring$2(host, t3, index);
+        return "[" + (isIPv6 ? hostChars.toLowerCase() : hostChars) + zoneID + "]";
       }
       for (i = start; i < end; ++i) {
         if (!(i < t1))
@@ -5673,49 +5541,40 @@
           index += 3;
           sectionStart = index;
           isNormalized = true;
-        } else {
-          if (char < 127) {
-            t2 = char >>> 4;
-            if (!(t2 < 8))
-              return A.ioore(B.List_piR, t2);
-            t2 = (B.List_piR[t2] & 1 << (char & 15)) !== 0;
-          } else
-            t2 = false;
-          if (t2) {
-            if (isNormalized && 65 <= char && 90 >= char) {
-              if (buffer == null)
-                buffer = new A.StringBuffer("");
-              if (sectionStart < index) {
-                buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
-                sectionStart = index;
-              }
-              isNormalized = false;
-            }
-            ++index;
-          } else {
-            sourceLength = 1;
-            if ((char & 64512) === 55296 && index + 1 < end) {
-              t2 = index + 1;
-              if (!(t2 < t1))
-                return A.ioore(host, t2);
-              tail = host.charCodeAt(t2);
-              if ((tail & 64512) === 56320) {
-                char = (char & 1023) << 10 | tail & 1023 | 65536;
-                sourceLength = 2;
-              }
-            }
-            slice = B.JSString_methods.substring$2(host, sectionStart, index);
-            if (buffer == null) {
+        } else if (char < 127 && (string$.x00_____.charCodeAt(char) & 1) !== 0) {
+          if (isNormalized && 65 <= char && 90 >= char) {
+            if (buffer == null)
               buffer = new A.StringBuffer("");
-              t2 = buffer;
-            } else
-              t2 = buffer;
-            t2._contents += slice;
-            t3 = A._Uri__escapeChar(char);
-            t2._contents += t3;
-            index += sourceLength;
-            sectionStart = index;
+            if (sectionStart < index) {
+              buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
+              sectionStart = index;
+            }
+            isNormalized = false;
           }
+          ++index;
+        } else {
+          sourceLength = 1;
+          if ((char & 64512) === 55296 && index + 1 < end) {
+            t2 = index + 1;
+            if (!(t2 < t1))
+              return A.ioore(host, t2);
+            tail = host.charCodeAt(t2);
+            if ((tail & 64512) === 56320) {
+              char = 65536 + ((char & 1023) << 10) + (tail & 1023);
+              sourceLength = 2;
+            }
+          }
+          slice = B.JSString_methods.substring$2(host, sectionStart, index);
+          if (buffer == null) {
+            buffer = new A.StringBuffer("");
+            t2 = buffer;
+          } else
+            t2 = buffer;
+          t2._contents += slice;
+          t3 = A._Uri__escapeChar(char);
+          t2._contents += t3;
+          index += sourceLength;
+          sectionStart = index;
         }
       }
       if (buffer == null)
@@ -5728,7 +5587,8 @@
       return t1.charCodeAt(0) == 0 ? t1 : t1;
     },
     _Uri__normalizeRegName(host, start, end) {
-      var t1, index, sectionStart, buffer, isNormalized, char, replacement, t2, slice, t3, sourceLength, tail;
+      var t1, index, sectionStart, buffer, isNormalized, char, replacement, t2, slice, t3, sourceLength, tail,
+        _s128_ = string$.x00_____;
       for (t1 = host.length, index = start, sectionStart = index, buffer = null, isNormalized = true; index < end;) {
         if (!(index >= 0 && index < t1))
           return A.ioore(host, index);
@@ -5757,62 +5617,44 @@
           index += sourceLength;
           sectionStart = index;
           isNormalized = true;
-        } else {
-          if (char < 127) {
-            t2 = char >>> 4;
-            if (!(t2 < 8))
-              return A.ioore(B.List_4AN, t2);
-            t2 = (B.List_4AN[t2] & 1 << (char & 15)) !== 0;
-          } else
-            t2 = false;
-          if (t2) {
-            if (isNormalized && 65 <= char && 90 >= char) {
-              if (buffer == null)
-                buffer = new A.StringBuffer("");
-              if (sectionStart < index) {
-                buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
-                sectionStart = index;
-              }
-              isNormalized = false;
-            }
-            ++index;
-          } else {
-            if (char <= 93) {
-              t2 = char >>> 4;
-              if (!(t2 < 8))
-                return A.ioore(B.List_VOY, t2);
-              t2 = (B.List_VOY[t2] & 1 << (char & 15)) !== 0;
-            } else
-              t2 = false;
-            if (t2)
-              A._Uri__fail(host, index, "Invalid character");
-            else {
-              sourceLength = 1;
-              if ((char & 64512) === 55296 && index + 1 < end) {
-                t2 = index + 1;
-                if (!(t2 < t1))
-                  return A.ioore(host, t2);
-                tail = host.charCodeAt(t2);
-                if ((tail & 64512) === 56320) {
-                  char = (char & 1023) << 10 | tail & 1023 | 65536;
-                  sourceLength = 2;
-                }
-              }
-              slice = B.JSString_methods.substring$2(host, sectionStart, index);
-              if (!isNormalized)
-                slice = slice.toLowerCase();
-              if (buffer == null) {
-                buffer = new A.StringBuffer("");
-                t2 = buffer;
-              } else
-                t2 = buffer;
-              t2._contents += slice;
-              t3 = A._Uri__escapeChar(char);
-              t2._contents += t3;
-              index += sourceLength;
+        } else if (char < 127 && (_s128_.charCodeAt(char) & 32) !== 0) {
+          if (isNormalized && 65 <= char && 90 >= char) {
+            if (buffer == null)
+              buffer = new A.StringBuffer("");
+            if (sectionStart < index) {
+              buffer._contents += B.JSString_methods.substring$2(host, sectionStart, index);
               sectionStart = index;
             }
+            isNormalized = false;
           }
+          ++index;
+        } else if (char <= 93 && (_s128_.charCodeAt(char) & 1024) !== 0)
+          A._Uri__fail(host, index, "Invalid character");
+        else {
+          sourceLength = 1;
+          if ((char & 64512) === 55296 && index + 1 < end) {
+            t2 = index + 1;
+            if (!(t2 < t1))
+              return A.ioore(host, t2);
+            tail = host.charCodeAt(t2);
+            if ((tail & 64512) === 56320) {
+              char = 65536 + ((char & 1023) << 10) + (tail & 1023);
+              sourceLength = 2;
+            }
+          }
+          slice = B.JSString_methods.substring$2(host, sectionStart, index);
+          if (!isNormalized)
+            slice = slice.toLowerCase();
+          if (buffer == null) {
+            buffer = new A.StringBuffer("");
+            t2 = buffer;
+          } else
+            t2 = buffer;
+          t2._contents += slice;
+          t3 = A._Uri__escapeChar(char);
+          t2._contents += t3;
+          index += sourceLength;
+          sectionStart = index;
         }
       }
       if (buffer == null)
@@ -5827,7 +5669,7 @@
       return t1.charCodeAt(0) == 0 ? t1 : t1;
     },
     _Uri__makeScheme(scheme, start, end) {
-      var t1, i, containsUpperCase, codeUnit, t2;
+      var t1, i, containsUpperCase, codeUnit;
       if (start === end)
         return "";
       t1 = scheme.length;
@@ -5839,14 +5681,7 @@
         if (!(i < t1))
           return A.ioore(scheme, i);
         codeUnit = scheme.charCodeAt(i);
-        if (codeUnit < 128) {
-          t2 = codeUnit >>> 4;
-          if (!(t2 < 8))
-            return A.ioore(B.List_GVy, t2);
-          t2 = (B.List_GVy[t2] & 1 << (codeUnit & 15)) !== 0;
-        } else
-          t2 = false;
-        if (!t2)
+        if (!(codeUnit < 128 && (string$.x00_____.charCodeAt(codeUnit) & 8) !== 0))
           A._Uri__fail(scheme, i, "Illegal scheme character");
         if (65 <= codeUnit && codeUnit <= 90)
           containsUpperCase = true;
@@ -5868,7 +5703,7 @@
     _Uri__makeUserInfo(userInfo, start, end) {
       if (userInfo == null)
         return "";
-      return A._Uri__normalizeOrSubstring(userInfo, start, end, B.List_2jN, false, false);
+      return A._Uri__normalizeOrSubstring(userInfo, start, end, 16, false, false);
     },
     _Uri__makePath(path, start, end, pathSegments, scheme, hasAuthority) {
       var t1, result,
@@ -5882,7 +5717,7 @@
       } else if (pathSegments != null)
         throw A.wrapException(A.ArgumentError$("Both path and pathSegments specified", null));
       else
-        result = A._Uri__normalizeOrSubstring(path, start, end, B.List_M2I, true, true);
+        result = A._Uri__normalizeOrSubstring(path, start, end, 128, true, true);
       if (result.length === 0) {
         if (isFile)
           return "/";
@@ -5898,16 +5733,17 @@
     },
     _Uri__makeQuery(query, start, end, queryParameters) {
       if (query != null)
-        return A._Uri__normalizeOrSubstring(query, start, end, B.List_42A, true, false);
+        return A._Uri__normalizeOrSubstring(query, start, end, 256, true, false);
       return null;
     },
     _Uri__makeFragment(fragment, start, end) {
       if (fragment == null)
         return null;
-      return A._Uri__normalizeOrSubstring(fragment, start, end, B.List_42A, true, false);
+      return A._Uri__normalizeOrSubstring(fragment, start, end, 256, true, false);
     },
     _Uri__normalizeEscape(source, index, lowerCase) {
       var t3, firstDigit, secondDigit, firstDigitValue, secondDigitValue, value,
+        _s128_ = string$.x00_____,
         t1 = index + 2,
         t2 = source.length;
       if (t1 >= t2)
@@ -5925,10 +5761,9 @@
         return "%";
       value = firstDigitValue * 16 + secondDigitValue;
       if (value < 127) {
-        t1 = B.JSInt_methods._shrOtherPositive$1(value, 4);
-        if (!(t1 < 8))
-          return A.ioore(B.List_piR, t1);
-        t1 = (B.List_piR[t1] & 1 << (value & 15)) !== 0;
+        if (!(value >= 0))
+          return A.ioore(_s128_, value);
+        t1 = (_s128_.charCodeAt(value) & 1) !== 0;
       } else
         t1 = false;
       if (t1)
@@ -5940,7 +5775,7 @@
     _Uri__escapeChar(char) {
       var codeUnits, t1, flag, encodedBytes, index, byte, t2, t3,
         _s16_ = "0123456789ABCDEF";
-      if (char < 128) {
+      if (char <= 127) {
         codeUnits = new Uint8Array(3);
         codeUnits[0] = 37;
         t1 = char >>> 4;
@@ -5984,24 +5819,18 @@
       }
       return A.String_String$fromCharCodes(codeUnits, 0, null);
     },
-    _Uri__normalizeOrSubstring(component, start, end, charTable, escapeDelimiters, replaceBackslash) {
-      var t1 = A._Uri__normalize(component, start, end, charTable, escapeDelimiters, replaceBackslash);
+    _Uri__normalizeOrSubstring(component, start, end, charMask, escapeDelimiters, replaceBackslash) {
+      var t1 = A._Uri__normalize(component, start, end, charMask, escapeDelimiters, replaceBackslash);
       return t1 == null ? B.JSString_methods.substring$2(component, start, end) : t1;
     },
-    _Uri__normalize(component, start, end, charTable, escapeDelimiters, replaceBackslash) {
-      var t1, t2, index, sectionStart, buffer, char, t3, sourceLength, replacement, tail, t4, _null = null;
+    _Uri__normalize(component, start, end, charMask, escapeDelimiters, replaceBackslash) {
+      var t1, t2, index, sectionStart, buffer, char, sourceLength, replacement, t3, tail, _null = null,
+        _s128_ = string$.x00_____;
       for (t1 = !escapeDelimiters, t2 = component.length, index = start, sectionStart = index, buffer = _null; index < end;) {
         if (!(index >= 0 && index < t2))
           return A.ioore(component, index);
         char = component.charCodeAt(index);
-        if (char < 127) {
-          t3 = char >>> 4;
-          if (!(t3 < 8))
-            return A.ioore(charTable, t3);
-          t3 = (charTable[t3] & 1 << (char & 15)) !== 0;
-        } else
-          t3 = false;
-        if (t3)
+        if (char < 127 && (_s128_.charCodeAt(char) & charMask) !== 0)
           ++index;
         else {
           sourceLength = 1;
@@ -6017,42 +5846,31 @@
               sourceLength = 3;
           } else if (char === 92 && replaceBackslash)
             replacement = "/";
-          else {
-            t3 = false;
-            if (t1)
-              if (char <= 93) {
-                t3 = char >>> 4;
-                if (!(t3 < 8))
-                  return A.ioore(B.List_VOY, t3);
-                t3 = (B.List_VOY[t3] & 1 << (char & 15)) !== 0;
-              }
-            if (t3) {
-              A._Uri__fail(component, index, "Invalid character");
-              sourceLength = _null;
-              replacement = sourceLength;
-            } else {
-              if ((char & 64512) === 55296) {
-                t3 = index + 1;
-                if (t3 < end) {
-                  if (!(t3 < t2))
-                    return A.ioore(component, t3);
-                  tail = component.charCodeAt(t3);
-                  if ((tail & 64512) === 56320) {
-                    char = (char & 1023) << 10 | tail & 1023 | 65536;
-                    sourceLength = 2;
-                  }
+          else if (t1 && char <= 93 && (_s128_.charCodeAt(char) & 1024) !== 0) {
+            A._Uri__fail(component, index, "Invalid character");
+            sourceLength = _null;
+            replacement = sourceLength;
+          } else {
+            if ((char & 64512) === 55296) {
+              t3 = index + 1;
+              if (t3 < end) {
+                if (!(t3 < t2))
+                  return A.ioore(component, t3);
+                tail = component.charCodeAt(t3);
+                if ((tail & 64512) === 56320) {
+                  char = 65536 + ((char & 1023) << 10) + (tail & 1023);
+                  sourceLength = 2;
                 }
               }
-              replacement = A._Uri__escapeChar(char);
             }
+            replacement = A._Uri__escapeChar(char);
           }
           if (buffer == null) {
             buffer = new A.StringBuffer("");
             t3 = buffer;
           } else
             t3 = buffer;
-          t4 = t3._contents += B.JSString_methods.substring$2(component, sectionStart, index);
-          t3._contents = t4 + A.S(replacement);
+          t3._contents = (t3._contents += B.JSString_methods.substring$2(component, sectionStart, index)) + replacement;
           if (typeof sourceLength !== "number")
             return A.iae(sourceLength);
           index += sourceLength;
@@ -6108,32 +5926,22 @@
       for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0; _i < t2; ++_i) {
         segment = t1[_i];
         if (".." === segment) {
-          appendSlash = output.length !== 0 && B.JSArray_methods.get$last(output) !== "..";
-          if (appendSlash) {
+          if (output.length !== 0 && B.JSArray_methods.get$last(output) !== "..") {
             if (0 >= output.length)
               return A.ioore(output, -1);
             output.pop();
           } else
             B.JSArray_methods.add$1(output, "..");
+          appendSlash = true;
         } else {
           appendSlash = "." === segment;
           if (!appendSlash)
-            B.JSArray_methods.add$1(output, segment);
+            B.JSArray_methods.add$1(output, segment.length === 0 && output.length === 0 ? "./" : segment);
         }
       }
-      t1 = output.length;
-      if (t1 !== 0)
-        if (t1 === 1) {
-          if (0 >= t1)
-            return A.ioore(output, 0);
-          t1 = output[0].length === 0;
-        } else
-          t1 = false;
-      else
-        t1 = true;
-      if (t1)
+      if (output.length === 0)
         return "./";
-      if (appendSlash || B.JSArray_methods.get$last(output) === "..")
+      if (appendSlash)
         B.JSArray_methods.add$1(output, "");
       if (!allowScheme) {
         if (0 >= output.length)
@@ -6144,6 +5952,7 @@
     },
     _Uri__escapeScheme(path) {
       var i, char, t2,
+        _s128_ = string$.x00_____,
         t1 = path.length;
       if (t1 >= 2 && A._Uri__isAlphabeticCharacter(path.charCodeAt(0)))
         for (i = 1; i < t1; ++i) {
@@ -6151,10 +5960,9 @@
           if (char === 58)
             return B.JSString_methods.substring$2(path, 0, i) + "%3A" + B.JSString_methods.substring$1(path, i + 1);
           if (char <= 127) {
-            t2 = char >>> 4;
-            if (!(t2 < 8))
-              return A.ioore(B.List_GVy, t2);
-            t2 = (B.List_GVy[t2] & 1 << (char & 15)) === 0;
+            if (!(char < 128))
+              return A.ioore(_s128_, char);
+            t2 = (_s128_.charCodeAt(char) & 8) === 0;
           } else
             t2 = true;
           if (t2)
@@ -6190,7 +5998,7 @@
       var simple, codeUnit, t2, bytes,
         t1 = text.length,
         i = start;
-      while (true) {
+      for (;;) {
         if (!(i < end)) {
           simple = true;
           break;
@@ -6260,7 +6068,7 @@
       }
       if (slashIndex < 0 && i > start)
         throw A.wrapException(A.FormatException$(_s17_, text, i));
-      for (; char !== 44;) {
+      while (char !== 44) {
         B.JSArray_methods.add$1(indices, i);
         ++i;
         for (equalsIndex = -1; i < t1; ++i) {
@@ -6287,26 +6095,19 @@
       if ((indices.length & 1) === 1)
         text = B.C_Base64Codec.normalize$3(text, t2, t1);
       else {
-        data = A._Uri__normalize(text, t2, t1, B.List_42A, true, false);
+        data = A._Uri__normalize(text, t2, t1, 256, true, false);
         if (data != null)
           text = B.JSString_methods.replaceRange$3(text, t2, t1, data);
       }
       return new A.UriData(text, indices, sourceUri);
     },
-    UriData__uriEncodeBytes(canonicalTable, bytes, buffer) {
+    UriData__uriEncodeBytes(canonicalMask, bytes, buffer) {
       var t1, byteOr, i, byte, t2,
         _s16_ = "0123456789ABCDEF";
       for (t1 = bytes.length, byteOr = 0, i = 0; i < t1; ++i) {
         byte = bytes[i];
         byteOr |= byte;
-        if (byte < 128) {
-          t2 = byte >>> 4;
-          if (!(t2 < 8))
-            return A.ioore(canonicalTable, t2);
-          t2 = (canonicalTable[t2] & 1 << (byte & 15)) !== 0;
-        } else
-          t2 = false;
-        if (t2) {
+        if (byte < 128 && (string$.x00_____.charCodeAt(byte) & canonicalMask) !== 0) {
           t2 = A.Primitives_stringFromCharCode(byte);
           buffer._contents += t2;
         } else {
@@ -6328,161 +6129,19 @@
             throw A.wrapException(A.ArgumentError$value(byte, "non-byte value", null));
         }
     },
-    _createTables() {
-      var _i, t1, t2, t3, b,
-        _s77_ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~!$&'()*+,;=",
-        _s1_ = ".", _s1_0 = ":", _s1_1 = "/", _s1_2 = "\\", _s1_3 = "?", _s1_4 = "#", _s2_ = "/\\",
-        tables = A._setArrayType(new Array(22), type$.JSArray_Uint8List);
-      for (_i = 0; _i < 22; ++_i)
-        tables[_i] = new Uint8Array(96);
-      t1 = new A._createTables_build(tables);
-      t2 = new A._createTables_setChars();
-      t3 = new A._createTables_setRange();
-      b = t1.call$2(0, 225);
-      t2.call$3(b, _s77_, 1);
-      t2.call$3(b, _s1_, 14);
-      t2.call$3(b, _s1_0, 34);
-      t2.call$3(b, _s1_1, 3);
-      t2.call$3(b, _s1_2, 227);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(14, 225);
-      t2.call$3(b, _s77_, 1);
-      t2.call$3(b, _s1_, 15);
-      t2.call$3(b, _s1_0, 34);
-      t2.call$3(b, _s2_, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(15, 225);
-      t2.call$3(b, _s77_, 1);
-      t2.call$3(b, "%", 225);
-      t2.call$3(b, _s1_0, 34);
-      t2.call$3(b, _s1_1, 9);
-      t2.call$3(b, _s1_2, 233);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(1, 225);
-      t2.call$3(b, _s77_, 1);
-      t2.call$3(b, _s1_0, 34);
-      t2.call$3(b, _s1_1, 10);
-      t2.call$3(b, _s1_2, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(2, 235);
-      t2.call$3(b, _s77_, 139);
-      t2.call$3(b, _s1_1, 131);
-      t2.call$3(b, _s1_2, 131);
-      t2.call$3(b, _s1_, 146);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(3, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_1, 68);
-      t2.call$3(b, _s1_2, 68);
-      t2.call$3(b, _s1_, 18);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(4, 229);
-      t2.call$3(b, _s77_, 5);
-      t3.call$3(b, "AZ", 229);
-      t2.call$3(b, _s1_0, 102);
-      t2.call$3(b, "@", 68);
-      t2.call$3(b, "[", 232);
-      t2.call$3(b, _s1_1, 138);
-      t2.call$3(b, _s1_2, 138);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(5, 229);
-      t2.call$3(b, _s77_, 5);
-      t3.call$3(b, "AZ", 229);
-      t2.call$3(b, _s1_0, 102);
-      t2.call$3(b, "@", 68);
-      t2.call$3(b, _s1_1, 138);
-      t2.call$3(b, _s1_2, 138);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(6, 231);
-      t3.call$3(b, "19", 7);
-      t2.call$3(b, "@", 68);
-      t2.call$3(b, _s1_1, 138);
-      t2.call$3(b, _s1_2, 138);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(7, 231);
-      t3.call$3(b, "09", 7);
-      t2.call$3(b, "@", 68);
-      t2.call$3(b, _s1_1, 138);
-      t2.call$3(b, _s1_2, 138);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      t2.call$3(t1.call$2(8, 8), "]", 5);
-      b = t1.call$2(9, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_, 16);
-      t2.call$3(b, _s2_, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(16, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_, 17);
-      t2.call$3(b, _s2_, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(17, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_1, 9);
-      t2.call$3(b, _s1_2, 233);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(10, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_, 18);
-      t2.call$3(b, _s1_1, 10);
-      t2.call$3(b, _s1_2, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(18, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_, 19);
-      t2.call$3(b, _s2_, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(19, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s2_, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(11, 235);
-      t2.call$3(b, _s77_, 11);
-      t2.call$3(b, _s1_1, 10);
-      t2.call$3(b, _s1_2, 234);
-      t2.call$3(b, _s1_3, 172);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(12, 236);
-      t2.call$3(b, _s77_, 12);
-      t2.call$3(b, _s1_3, 12);
-      t2.call$3(b, _s1_4, 205);
-      b = t1.call$2(13, 237);
-      t2.call$3(b, _s77_, 13);
-      t2.call$3(b, _s1_3, 13);
-      t3.call$3(t1.call$2(20, 245), "az", 21);
-      b = t1.call$2(21, 245);
-      t3.call$3(b, "az", 21);
-      t3.call$3(b, "09", 21);
-      t2.call$3(b, "+-.", 21);
-      return tables;
-    },
     _scan(uri, start, end, state, indices) {
-      var t1, i, table, char, transition,
-        tables = $.$get$_scannerTables();
+      var t1, i, char, t2, transition,
+        _s2112_ = '\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe3\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0e\x03\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\n\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\xeb\xeb\x8b\xeb\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x83\xeb\xeb\x8b\xeb\x8b\xeb\xcd\x8b\xeb\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x92\x83\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\x8b\xeb\x8b\xeb\x8b\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xebD\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12D\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe8\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05\xe5\xe5\xe5\x05\xe5D\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\xe5\x8a\xe5\xe5\x05\xe5\x05\xe5\xcd\x05\xe5\x05\x05\x05\x05\x05\x05\x05\x05\x05\x8a\x05\x05\x05\x05\x05\x05\x05\x05\x05\x05f\x05\xe5\x05\xe5\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7D\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\xe7\xe7\xe7\xe7\xe7\xe7\xcd\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\xe7\x8a\x07\x07\x07\x07\x07\x07\x07\x07\x07\x07\xe7\xe7\xe7\xe7\xe7\xac\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\x05\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x10\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x12\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\n\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\f\xec\xec\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\f\xec\xec\xec\xec\f\xec\f\xec\xcd\f\xec\f\f\f\f\f\f\f\f\f\xec\f\f\f\f\f\f\f\f\f\f\xec\f\xec\f\xec\f\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\r\xed\xed\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\r\xed\xed\xed\xed\r\xed\r\xed\xed\r\xed\r\r\r\r\r\r\r\r\r\xed\r\r\r\r\r\r\r\r\r\r\xed\r\xed\r\xed\r\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xea\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x0f\xea\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe1\xe1\x01\xe1\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\xe1\xe9\xe1\xe1\x01\xe1\x01\xe1\xcd\x01\xe1\x01\x01\x01\x01\x01\x01\x01\x01\x01\t\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01"\x01\xe1\x01\xe1\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x11\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xe9\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\t\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\x13\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xeb\xeb\v\xeb\xeb\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\v\xeb\xea\xeb\xeb\v\xeb\v\xeb\xcd\v\xeb\v\v\v\v\v\v\v\v\v\xea\v\v\v\v\v\v\v\v\v\v\xeb\v\xeb\v\xeb\xac\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\xf5\x15\xf5\x15\x15\xf5\x15\x15\x15\x15\x15\x15\x15\x15\x15\x15\xf5\xf5\xf5\xf5\xf5\xf5';
       for (t1 = uri.length, i = start; i < end; ++i) {
-        if (!(state >= 0 && state < tables.length))
-          return A.ioore(tables, state);
-        table = tables[state];
         if (!(i < t1))
           return A.ioore(uri, i);
         char = uri.charCodeAt(i) ^ 96;
-        transition = table[char > 95 ? 31 : char];
+        if (char > 95)
+          char = 31;
+        t2 = state * 96 + char;
+        if (!(t2 < 2112))
+          return A.ioore(_s2112_, t2);
+        transition = _s2112_.charCodeAt(t2);
         state = transition & 31;
         B.JSArray_methods.$indexSet(indices, transition >>> 5, i);
       }
@@ -6528,10 +6187,6 @@
       }
       return result;
     },
-    NoSuchMethodError_toString_closure: function NoSuchMethodError_toString_closure(t0, t1) {
-      this._box_0 = t0;
-      this.sb = t1;
-    },
     DateTime: function DateTime(t0, t1, t2) {
       this._core$_value = t0;
       this._microsecond = t1;
@@ -6571,13 +6226,6 @@
       _.name = t3;
       _.message = t4;
     },
-    NoSuchMethodError: function NoSuchMethodError(t0, t1, t2, t3) {
-      var _ = this;
-      _._core$_receiver = t0;
-      _._core$_memberName = t1;
-      _._core$_arguments = t2;
-      _._namedArguments = t3;
-    },
     UnsupportedError: function UnsupportedError(t0) {
       this.message = t0;
     },
@@ -6617,16 +6265,9 @@
     Uri_splitQueryString_closure: function Uri_splitQueryString_closure(t0) {
       this.encoding = t0;
     },
-    Uri__parseIPv4Address_error: function Uri__parseIPv4Address_error(t0) {
-      this.host = t0;
-    },
     Uri_parseIPv6Address_error: function Uri_parseIPv6Address_error(t0) {
       this.host = t0;
     },
-    Uri_parseIPv6Address_parseHex: function Uri_parseIPv6Address_parseHex(t0, t1) {
-      this.error = t0;
-      this.host = t1;
-    },
     _Uri: function _Uri(t0, t1, t2, t3, t4, t5, t6) {
       var _ = this;
       _.scheme = t0;
@@ -6645,13 +6286,6 @@
       this._separatorIndices = t1;
       this._uriCache = t2;
     },
-    _createTables_build: function _createTables_build(t0) {
-      this.tables = t0;
-    },
-    _createTables_setChars: function _createTables_setChars() {
-    },
-    _createTables_setRange: function _createTables_setRange() {
-    },
     _SimpleUri: function _SimpleUri(t0, t1, t2, t3, t4, t5, t6, t7) {
       var _ = this;
       _._uri = t0;
@@ -6675,30 +6309,41 @@
       _._fragment = t6;
       _.___Uri_queryParameters_FI = _.___Uri_hashCode_FI = _.___Uri_pathSegments_FI = _.___Uri__text_FI = $;
     },
-    _convertDartFunctionFast(f) {
-      var ret,
-        existing = f.$dart_jsFunction;
-      if (existing != null)
-        return existing;
-      ret = function(_call, f) {
-        return function() {
-          return _call(f, Array.prototype.slice.apply(arguments));
-        };
-      }(A._callDartFunctionFast, f);
-      ret[$.$get$DART_CLOSURE_PROPERTY_NAME()] = f;
-      f.$dart_jsFunction = ret;
-      return ret;
+    NullRejectionException: function NullRejectionException(t0) {
+      this.isUndefined = t0;
     },
-    _callDartFunctionFast(callback, $arguments) {
-      type$.List_dynamic._as($arguments);
-      type$.Function._as(callback);
-      return A.Primitives_applyFunction(callback, $arguments, null);
-    },
-    allowInterop(f, $F) {
+    _functionToJS0(f) {
+      var result;
       if (typeof f == "function")
-        return f;
-      else
-        return $F._as(A._convertDartFunctionFast(f));
+        throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null));
+      result = function(_call, f) {
+        return function() {
+          return _call(f);
+        };
+      }(A._callDartFunctionFast0, f);
+      result[$.$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME()] = f;
+      return result;
+    },
+    _functionToJS1(f) {
+      var result;
+      if (typeof f == "function")
+        throw A.wrapException(A.ArgumentError$("Attempting to rewrap a JS function.", null));
+      result = function(_call, f) {
+        return function(arg1) {
+          return _call(f, arg1, arguments.length);
+        };
+      }(A._callDartFunctionFast1, f);
+      result[$.$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME()] = f;
+      return result;
+    },
+    _callDartFunctionFast0(callback) {
+      return type$.Function._as(callback).call$0();
+    },
+    _callDartFunctionFast1(callback, arg1, $length) {
+      type$.Function._as(callback);
+      if (A._asInt($length) >= 1)
+        return callback.call$1(arg1);
+      return callback.call$0();
     },
     _noJsifyRequired(o) {
       return o == null || A._isBool(o) || typeof o == "number" || typeof o == "string" || type$.Int8List._is(o) || type$.Uint8List._is(o) || type$.Uint8ClampedList._is(o) || type$.Int16List._is(o) || type$.Uint16List._is(o) || type$.Int32List._is(o) || type$.Uint32List._is(o) || type$.Float32List._is(o) || type$.Float64List._is(o) || type$.ByteBuffer._is(o) || type$.ByteData._is(o);
@@ -6711,9 +6356,6 @@
     getProperty(o, $name, $T) {
       return $T._as(o[$name]);
     },
-    callMethod(o, method, args, $T) {
-      return $T._as(o[method].apply(o, args));
-    },
     callConstructor(constr, $arguments, $T) {
       var args, factoryFunction;
       if ($arguments instanceof Array)
@@ -6762,9 +6404,6 @@
     dartify_convert: function dartify_convert(t0) {
       this._convertedObjects = t0;
     },
-    NullRejectionException: function NullRejectionException(t0) {
-      this.isUndefined = t0;
-    },
     NullStreamSink: function NullStreamSink(t0, t1) {
       var _ = this;
       _.done = t0;
@@ -6791,7 +6430,7 @@
             break;
         }
         message = new A.StringBuffer("");
-        t1 = "" + (method + "(");
+        t1 = method + "(";
         message._contents = t1;
         t2 = A._arrayInstanceType(args);
         t3 = t2._eval$1("SubListIterable<1>");
@@ -6899,24 +6538,28 @@
     },
     Chain_Chain$parse(chain) {
       var t1, t2,
-        _s51_ = string$.______;
+        _s51_ = string$.x3d_____;
       if (chain.length === 0)
         return new A.Chain(A.List_List$unmodifiable(A._setArrayType([], type$.JSArray_Trace), type$.Trace));
       t1 = $.$get$vmChainGap();
       if (B.JSString_methods.contains$1(chain, t1)) {
         t1 = B.JSString_methods.split$1(chain, t1);
         t2 = A._arrayInstanceType(t1);
-        return new A.Chain(A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Chain_Chain$parse_closure()), t2._eval$1("WhereIterable<1>")), t2._eval$1("Trace(1)")._as(A.trace_Trace___parseVM_tearOff$closure()), t2._eval$1("MappedIterable<1,Trace>")), type$.Trace));
+        return new A.Chain(A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Chain_Chain$parse_closure()), t2._eval$1("WhereIterable<1>")), t2._eval$1("Trace(1)")._as(new A.Chain_Chain$parse_closure0()), t2._eval$1("MappedIterable<1,Trace>")), type$.Trace));
       }
       if (!B.JSString_methods.contains$1(chain, _s51_))
         return new A.Chain(A.List_List$unmodifiable(A._setArrayType([A.Trace_Trace$parse(chain)], type$.JSArray_Trace), type$.Trace));
-      return new A.Chain(A.List_List$unmodifiable(new A.MappedListIterable(A._setArrayType(chain.split(_s51_), type$.JSArray_String), type$.Trace_Function_String._as(A.trace_Trace___parseFriendly_tearOff$closure()), type$.MappedListIterable_String_Trace), type$.Trace));
+      return new A.Chain(A.List_List$unmodifiable(new A.MappedListIterable(A._setArrayType(chain.split(_s51_), type$.JSArray_String), type$.Trace_Function_String._as(new A.Chain_Chain$parse_closure1()), type$.MappedListIterable_String_Trace), type$.Trace));
     },
     Chain: function Chain(t0) {
       this.traces = t0;
     },
     Chain_Chain$parse_closure: function Chain_Chain$parse_closure() {
     },
+    Chain_Chain$parse_closure0: function Chain_Chain$parse_closure0() {
+    },
+    Chain_Chain$parse_closure1: function Chain_Chain$parse_closure1() {
+    },
     Chain_toTrace_closure: function Chain_toTrace_closure() {
     },
     Chain_toString_closure0: function Chain_toString_closure0() {
@@ -6929,30 +6572,18 @@
     Chain_toString__closure: function Chain_toString__closure(t0) {
       this.longest = t0;
     },
-    Frame___parseVM_tearOff(frame) {
-      return A.Frame_Frame$parseVM(A._asString(frame));
-    },
     Frame_Frame$parseVM(frame) {
       return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseVM_closure(frame));
     },
-    Frame___parseV8_tearOff(frame) {
-      return A.Frame_Frame$parseV8(A._asString(frame));
-    },
     Frame_Frame$parseV8(frame) {
       return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseV8_closure(frame));
     },
     Frame_Frame$_parseFirefoxEval(frame) {
       return A.Frame__catchFormatException(frame, new A.Frame_Frame$_parseFirefoxEval_closure(frame));
     },
-    Frame___parseFirefox_tearOff(frame) {
-      return A.Frame_Frame$parseFirefox(A._asString(frame));
-    },
     Frame_Frame$parseFirefox(frame) {
       return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseFirefox_closure(frame));
     },
-    Frame___parseFriendly_tearOff(frame) {
-      return A.Frame_Frame$parseFriendly(A._asString(frame));
-    },
     Frame_Frame$parseFriendly(frame) {
       return A.Frame__catchFormatException(frame, new A.Frame_Frame$parseFriendly_closure(frame));
     },
@@ -6992,7 +6623,7 @@
     Frame_Frame$parseV8_closure: function Frame_Frame$parseV8_closure(t0) {
       this.frame = t0;
     },
-    Frame_Frame$parseV8_closure_parseJsLocation: function Frame_Frame$parseV8_closure_parseJsLocation(t0) {
+    Frame_Frame$parseV8_closure_parseLocation: function Frame_Frame$parseV8_closure_parseLocation(t0) {
       this.frame = t0;
     },
     Frame_Frame$_parseFirefoxEval_closure: function Frame_Frame$_parseFirefoxEval_closure(t0) {
@@ -7037,7 +6668,7 @@
           t1 = A.Trace$parseFirefox(trace);
           return t1;
         }
-        if (B.JSString_methods.contains$1(trace, string$.______)) {
+        if (B.JSString_methods.contains$1(trace, string$.x3d_____)) {
           t1 = A.Chain_Chain$parse(trace).toTrace$0();
           return t1;
         }
@@ -7056,9 +6687,6 @@
           throw exception;
       }
     },
-    Trace___parseVM_tearOff(trace) {
-      return A.Trace$parseVM(A._asString(trace));
-    },
     Trace$parseVM(trace) {
       var t1 = A.List_List$unmodifiable(A.Trace__parseVM(trace), type$.Frame);
       return new A.Trace(t1, new A._StringStackTrace(trace));
@@ -7073,9 +6701,9 @@
         return A._setArrayType([], type$.JSArray_Frame);
       t1 = A.TakeIterable_TakeIterable(lines, lines.get$length(0) - 1, t3._eval$1("Iterable.E"));
       t2 = A._instanceType(t1);
-      t2 = A.MappedIterable_MappedIterable(t1, t2._eval$1("Frame(Iterable.E)")._as(A.frame_Frame___parseVM_tearOff$closure()), t2._eval$1("Iterable.E"), type$.Frame);
-      $frames = A.List_List$of(t2, true, A._instanceType(t2)._eval$1("Iterable.E"));
-      if (!J.endsWith$1$s(lines.get$last(0), ".da"))
+      t2 = A.MappedIterable_MappedIterable(t1, t2._eval$1("Frame(Iterable.E)")._as(new A.Trace__parseVM_closure0()), t2._eval$1("Iterable.E"), type$.Frame);
+      $frames = A.List_List$_of(t2, A._instanceType(t2)._eval$1("Iterable.E"));
+      if (!B.JSString_methods.endsWith$1(lines.get$last(0), ".da"))
         B.JSArray_methods.add$1($frames, A.Frame_Frame$parseVM(lines.get$last(0)));
       return $frames;
     },
@@ -7085,22 +6713,19 @@
       t1 = t1.super$Iterable$skipWhile(0, t1.$ti._eval$1("bool(ListIterable.E)")._as(new A.Trace$parseV8_closure()));
       t2 = type$.Frame;
       t3 = t1.$ti;
-      t2 = A.List_List$unmodifiable(A.MappedIterable_MappedIterable(t1, t3._eval$1("Frame(Iterable.E)")._as(A.frame_Frame___parseV8_tearOff$closure()), t3._eval$1("Iterable.E"), t2), t2);
+      t2 = A.List_List$unmodifiable(A.MappedIterable_MappedIterable(t1, t3._eval$1("Frame(Iterable.E)")._as(new A.Trace$parseV8_closure0()), t3._eval$1("Iterable.E"), t2), t2);
       return new A.Trace(t2, new A._StringStackTrace(trace));
     },
     Trace$parseJSCore(trace) {
-      var t1 = A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(A._setArrayType(trace.split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseJSCore_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(A.frame_Frame___parseV8_tearOff$closure()), type$.MappedIterable_String_Frame), type$.Frame);
+      var t1 = A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(A._setArrayType(trace.split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseJSCore_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(new A.Trace$parseJSCore_closure0()), type$.MappedIterable_String_Frame), type$.Frame);
       return new A.Trace(t1, new A._StringStackTrace(trace));
     },
     Trace$parseFirefox(trace) {
-      var t1 = A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(A._setArrayType(B.JSString_methods.trim$0(trace).split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseFirefox_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(A.frame_Frame___parseFirefox_tearOff$closure()), type$.MappedIterable_String_Frame), type$.Frame);
+      var t1 = A.List_List$unmodifiable(new A.MappedIterable(new A.WhereIterable(A._setArrayType(B.JSString_methods.trim$0(trace).split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseFirefox_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(new A.Trace$parseFirefox_closure0()), type$.MappedIterable_String_Frame), type$.Frame);
       return new A.Trace(t1, new A._StringStackTrace(trace));
     },
-    Trace___parseFriendly_tearOff(trace) {
-      return A.Trace$parseFriendly(A._asString(trace));
-    },
     Trace$parseFriendly(trace) {
-      var t1 = trace.length === 0 ? A._setArrayType([], type$.JSArray_Frame) : new A.MappedIterable(new A.WhereIterable(A._setArrayType(B.JSString_methods.trim$0(trace).split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseFriendly_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(A.frame_Frame___parseFriendly_tearOff$closure()), type$.MappedIterable_String_Frame);
+      var t1 = trace.length === 0 ? A._setArrayType([], type$.JSArray_Frame) : new A.MappedIterable(new A.WhereIterable(A._setArrayType(B.JSString_methods.trim$0(trace).split("\n"), type$.JSArray_String), type$.bool_Function_String._as(new A.Trace$parseFriendly_closure()), type$.WhereIterable_String), type$.Frame_Function_String._as(new A.Trace$parseFriendly_closure0()), type$.MappedIterable_String_Frame);
       t1 = A.List_List$unmodifiable(t1, type$.Frame);
       return new A.Trace(t1, new A._StringStackTrace(trace));
     },
@@ -7117,14 +6742,24 @@
     },
     Trace__parseVM_closure: function Trace__parseVM_closure() {
     },
+    Trace__parseVM_closure0: function Trace__parseVM_closure0() {
+    },
     Trace$parseV8_closure: function Trace$parseV8_closure() {
     },
+    Trace$parseV8_closure0: function Trace$parseV8_closure0() {
+    },
     Trace$parseJSCore_closure: function Trace$parseJSCore_closure() {
     },
+    Trace$parseJSCore_closure0: function Trace$parseJSCore_closure0() {
+    },
     Trace$parseFirefox_closure: function Trace$parseFirefox_closure() {
     },
+    Trace$parseFirefox_closure0: function Trace$parseFirefox_closure0() {
+    },
     Trace$parseFriendly_closure: function Trace$parseFriendly_closure() {
     },
+    Trace$parseFriendly_closure0: function Trace$parseFriendly_closure0() {
+    },
     Trace_terse_closure: function Trace_terse_closure() {
     },
     Trace_foldFrames_closure: function Trace_foldFrames_closure(t0) {
@@ -7233,10 +6868,8 @@
         t2 = A._instanceType(foreignToLocalController),
         t3 = A._instanceType(localToForeignController),
         t4 = $T._eval$1("StreamChannel<0>");
-      t1.set$__StreamChannelController__local_F(t4._as(A.GuaranteeChannel$(new A._ControllerStream(foreignToLocalController, t2._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(localToForeignController, t3._eval$1("_StreamSinkWrapper<1>")), true, $T)));
-      t2 = t4._as(A.GuaranteeChannel$(new A._ControllerStream(localToForeignController, t3._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(foreignToLocalController, t2._eval$1("_StreamSinkWrapper<1>")), true, $T));
-      t1.__StreamChannelController__foreign_F !== $ && A.throwLateFieldAI("_foreign");
-      t1.set$__StreamChannelController__foreign_F(t2);
+      t1.__StreamChannelController__local_F = t4._as(A.GuaranteeChannel$(new A._ControllerStream(foreignToLocalController, t2._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(localToForeignController, t3._eval$1("_StreamSinkWrapper<1>")), true, $T));
+      t1.__StreamChannelController__foreign_F = t4._as(A.GuaranteeChannel$(new A._ControllerStream(localToForeignController, t3._eval$1("_ControllerStream<1>")), new A._StreamSinkWrapper(foreignToLocalController, t2._eval$1("_StreamSinkWrapper<1>")), true, $T));
       return t1;
     },
     StreamChannelController: function StreamChannelController(t0) {
@@ -7245,28 +6878,28 @@
     },
     StreamChannelMixin: function StreamChannelMixin() {
     },
-    EventTargetExtension_addEventListener(_this, type, listener) {
-      var t1 = A._setArrayType([type, listener], type$.JSArray_Object);
-      A.callMethod(_this, "addEventListener", t1, type$.void);
+    EventTarget_addEventListener(_this, type, listener) {
+      var t1 = A._functionToJS1(listener);
+      _this.addEventListener.apply(_this, [type, t1]);
     },
-    EventTargetExtension_removeEventListener(_this, type, listener) {
-      var t1 = A._setArrayType([type, listener], type$.JSArray_Object);
-      A.callMethod(_this, "removeEventListener", t1, type$.void);
+    EventTarget_removeEventListener(_this, type, listener) {
+      var t1 = A._functionToJS1(listener);
+      _this.removeEventListener.apply(_this, [type, t1]);
     },
-    MessagePortExtension_get_postMessage(_this) {
-      return new A.MessagePortExtension_get_postMessage_closure(_this);
+    MessagePort_get_postMessage(_this) {
+      return new A.MessagePort_get_postMessage_closure(_this);
     },
     _callConstructor(constructorName, args) {
-      var $constructor = self.window[constructorName];
+      var $constructor = type$.nullable_JavaScriptFunction._as(A._asJSObject(init.G.window)[constructorName]);
       if ($constructor == null)
         return null;
-      return A.callConstructor($constructor, args, type$.nullable_Object);
+      return A.callConstructor($constructor, args, type$.JSObject);
     },
     Subscription$(target, type, listener) {
-      A.EventTargetExtension_addEventListener(target, type, listener);
+      A.EventTarget_addEventListener(target, type, listener);
       return new A.Subscription(type, target, listener);
     },
-    MessagePortExtension_get_postMessage_closure: function MessagePortExtension_get_postMessage_closure(t0) {
+    MessagePort_get_postMessage_closure: function MessagePort_get_postMessage_closure(t0) {
       this._this = t0;
     },
     Subscription: function Subscription(t0, t1, t2) {
@@ -7275,21 +6908,20 @@
       this.listener = t2;
     },
     main() {
-      var t1 = type$.JavaScriptObject;
-      t1._as(self.window.console).log("Dart test runner browser host running");
+      var t1 = init.G;
+      A._asJSObject(A._asJSObject(t1.window).console).log("Dart test runner browser host running");
       if ($.$get$_currentUrl().get$queryParameters().$index(0, "debug") === "true")
-        t1._as(type$.nullable_JavaScriptObject._as(self.document.body).classList).add("debug");
+        A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).add("debug");
       A.runZonedGuarded(new A.main_closure(), new A.main_closure0(), type$.Null);
     },
     _connectToServer() {
       var controller, t2,
         t1 = $.$get$_currentUrl().get$queryParameters().$index(0, "managerUrl");
       t1.toString;
-      t1 = A._callConstructor("WebSocket", A._setArrayType([t1], type$.JSArray_Object));
+      t1 = A._callConstructor("WebSocket", [t1]);
       t1.toString;
-      type$.JavaScriptObject._as(t1);
       controller = A.StreamChannelController$(true, type$.nullable_Object);
-      A.EventTargetExtension_addEventListener(t1, "message", A.allowInterop(new A._connectToServer_closure(controller), type$.void_Function_JavaScriptObject));
+      A.EventTarget_addEventListener(t1, "message", new A._connectToServer_closure(controller));
       t2 = controller.__StreamChannelController__local_F;
       t2 === $ && A.throwLateFieldNI("_local");
       t2 = t2.__GuaranteeChannel__streamController_F;
@@ -7300,20 +6932,19 @@
       return A._MultiChannel$(t1, type$.dynamic);
     },
     _connectToIframe(url, id) {
-      var t2, t3, iframe, controller, windowSubscription,
+      var t2, iframe, controller, windowSubscription,
         suiteUrl = A.Uri_parse(url).removeFragment$0(),
-        t1 = type$.JavaScriptObject;
-      t1._as(self.window.console).log("Starting suite " + suiteUrl.toString$0(0));
-      t2 = self.document;
-      t3 = A._setArrayType(["iframe"], type$.JSArray_Object);
-      iframe = t1._as(A.callMethod(t2, "createElement", t3, type$.dynamic));
+        t1 = init.G;
+      A._asJSObject(A._asJSObject(t1.window).console).log("Starting suite " + suiteUrl.toString$0(0));
+      t2 = A._asJSObject(t1.document);
+      iframe = A._asJSObject(t2.createElement.apply(t2, ["iframe"]));
       $._iframes.$indexSet(0, id, iframe);
       controller = A.StreamChannelController$(true, type$.nullable_Object);
       windowSubscription = A._Cell$named("windowSubscription");
-      windowSubscription._value = A.Subscription$(self.window, "message", A.allowInterop(new A._connectToIframe_closure(iframe, windowSubscription, suiteUrl, id, controller), type$.void_Function_JavaScriptObject));
+      windowSubscription._value = A.Subscription$(A._asJSObject(t1.window), "message", new A._connectToIframe_closure(iframe, windowSubscription, suiteUrl, id, controller));
       iframe.src = url;
-      t1._as(type$.nullable_JavaScriptObject._as(self.document.body).appendChild(iframe));
-      t1._as(self.window.console).log("Appended iframe with src " + url);
+      A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).appendChild(iframe));
+      A._asJSObject(A._asJSObject(t1.window).console).log("Appended iframe with src " + url);
       t1 = controller.__StreamChannelController__foreign_F;
       t1 === $ && A.throwLateFieldNI("_foreign");
       return t1;
@@ -7454,9 +7085,6 @@
     toString$0(receiver) {
       return "Instance of '" + A.Primitives_objectTypeName(receiver) + "'";
     },
-    noSuchMethod$1(receiver, invocation) {
-      throw A.wrapException(A.NoSuchMethodError_NoSuchMethodError$withInvocation(receiver, type$.Invocation._as(invocation)));
-    },
     get$runtimeType(receiver) {
       return A.createRuntimeType(A._instanceTypeFromConstructor(this));
     }
@@ -7487,7 +7115,7 @@
     $isTrustedGetRuntimeType: 1,
     $isNull: 1
   };
-  J.JavaScriptObject.prototype = {};
+  J.JavaScriptObject.prototype = {$isJSObject: 1};
   J.LegacyJavaScriptObject.prototype = {
     get$hashCode(receiver) {
       return 0;
@@ -7502,6 +7130,8 @@
     toString$0(receiver) {
       var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()];
       if (dartClosure == null)
+        dartClosure = receiver[$.$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME()];
+      if (dartClosure == null)
         return this.super$LegacyJavaScriptObject$toString(receiver);
       return "JavaScript function for " + J.toString$0$(dartClosure);
     },
@@ -7712,6 +7342,24 @@
     $isIterable: 1,
     $isList: 1
   };
+  J.JSArraySafeToStringHook.prototype = {
+    tryFormat$1(array) {
+      var flags, info, base;
+      if (!Array.isArray(array))
+        return null;
+      flags = array.$flags | 0;
+      if ((flags & 4) !== 0)
+        info = "const, ";
+      else if ((flags & 2) !== 0)
+        info = "unmodifiable, ";
+      else
+        info = (flags & 1) !== 0 ? "fixed, " : "";
+      base = "Instance of '" + A.Primitives_objectTypeName(array) + "'";
+      if (info === "")
+        return base;
+      return base + " (" + info + "length: " + array.length + ")";
+    }
+  };
   J.JSUnmodifiableArray.prototype = {};
   J.ArrayIterator.prototype = {
     get$current() {
@@ -7728,16 +7376,13 @@
       }
       t2 = _this._index;
       if (t2 >= $length) {
-        _this.set$_current(null);
+        _this._current = null;
         return false;
       }
-      _this.set$_current(t1[t2]);
-      ++_this._index;
+      _this._current = t1[t2];
+      _this._index = t2 + 1;
       return true;
     },
-    set$_current(_current) {
-      this._current = this.$ti._eval$1("1?")._as(_current);
-    },
     $isIterator: 1
   };
   J.JSNumber.prototype = {
@@ -7875,14 +7520,13 @@
       return A.stringReplaceFirstUnchecked(receiver, from, to, 0);
     },
     split$1(receiver, pattern) {
-      var nativeAnchoredRegExp, t1;
+      var t1;
       if (typeof pattern == "string")
         return A._setArrayType(receiver.split(pattern), type$.JSArray_String);
       else {
         if (pattern instanceof A.JSSyntaxRegExp) {
-          nativeAnchoredRegExp = pattern.get$_nativeAnchoredVersion();
-          nativeAnchoredRegExp.lastIndex = 0;
-          t1 = nativeAnchoredRegExp.exec("").length - 2 === 0;
+          t1 = pattern._hasCapturesCache;
+          t1 = !(t1 == null ? pattern._hasCapturesCache = pattern._computeHasCaptures$0() : t1);
         } else
           t1 = false;
         if (t1)
@@ -7963,7 +7607,7 @@
         return receiver;
       if (times !== times >>> 0)
         throw A.wrapException(B.C_OutOfMemoryError);
-      for (s = receiver, result = ""; true;) {
+      for (s = receiver, result = "";;) {
         if ((times & 1) === 1)
           result = s + result;
         times = times >>> 1;
@@ -8066,7 +7710,7 @@
     onData$1(handleData) {
       var t1 = this.$ti;
       t1._eval$1("~(2)?")._as(handleData);
-      this.set$_handleData(handleData == null ? null : this.__internal$_zone.registerUnaryCallback$2$1(handleData, type$.dynamic, t1._rest[1]));
+      this._handleData = handleData == null ? null : this.__internal$_zone.registerUnaryCallback$2$1(handleData, type$.dynamic, t1._rest[1]);
     },
     onError$1(handleError) {
       var _this = this;
@@ -8108,9 +7752,6 @@
       }
       _this.__internal$_zone.runUnaryGuarded$1$2(t2, targetData, t1._rest[1]);
     },
-    set$_handleData(_handleData) {
-      this._handleData = this.$ti._eval$1("~(2)?")._as(_handleData);
-    },
     $isStreamSubscription: 1
   };
   A._CastIterableBase.prototype = {
@@ -8168,9 +7809,6 @@
     $isList: 1
   };
   A.CastList.prototype = {
-    cast$1$0(_, $R) {
-      return new A.CastList(this._source, this.$ti._eval$1("@<1>")._bind$1($R)._eval$1("CastList<1,2>"));
-    },
     get$_source() {
       return this._source;
     }
@@ -8195,7 +7833,7 @@
     call$0() {
       return A.Future_Future$value(null, type$.void);
     },
-    $signature: 38
+    $signature: 33
   };
   A.SentinelValue.prototype = {};
   A.EfficientLengthIterable.prototype = {};
@@ -8292,8 +7930,6 @@
       endOrLength = this._endOrLength;
       if (endOrLength == null || endOrLength >= $length)
         return $length - t1;
-      if (typeof endOrLength !== "number")
-        return endOrLength.$sub();
       return endOrLength - t1;
     },
     elementAt$1(_, index) {
@@ -8363,16 +7999,13 @@
         throw A.wrapException(A.ConcurrentModificationError$(t1));
       t3 = _this.__internal$_index;
       if (t3 >= $length) {
-        _this.set$__internal$_current(null);
+        _this.__internal$_current = null;
         return false;
       }
-      _this.set$__internal$_current(t2.elementAt$1(t1, t3));
+      _this.__internal$_current = t2.elementAt$1(t1, t3);
       ++_this.__internal$_index;
       return true;
     },
-    set$__internal$_current(_current) {
-      this.__internal$_current = this.$ti._eval$1("1?")._as(_current);
-    },
     $isIterator: 1
   };
   A.MappedIterable.prototype = {
@@ -8395,19 +8028,16 @@
       var _this = this,
         t1 = _this._iterator;
       if (t1.moveNext$0()) {
-        _this.set$__internal$_current(_this._f.call$1(t1.get$current()));
+        _this.__internal$_current = _this._f.call$1(t1.get$current());
         return true;
       }
-      _this.set$__internal$_current(null);
+      _this.__internal$_current = null;
       return false;
     },
     get$current() {
       var t1 = this.__internal$_current;
       return t1 == null ? this.$ti._rest[1]._as(t1) : t1;
     },
-    set$__internal$_current(_current) {
-      this.__internal$_current = this.$ti._eval$1("2?")._as(_current);
-    },
     $isIterator: 1
   };
   A.MappedListIterable.prototype = {
@@ -8431,7 +8061,7 @@
     moveNext$0() {
       var t1, t2;
       for (t1 = this._iterator, t2 = this._f; t1.moveNext$0();)
-        if (A.boolConversionCheck(t2.call$1(t1.get$current())))
+        if (t2.call$1(t1.get$current()))
           return true;
       return false;
     },
@@ -8451,37 +8081,35 @@
       return t1 == null ? this.$ti._rest[1]._as(t1) : t1;
     },
     moveNext$0() {
-      var t1, t2, _this = this;
-      if (_this._currentExpansion == null)
+      var t2, t3, _this = this,
+        t1 = _this._currentExpansion;
+      if (t1 == null)
         return false;
-      for (t1 = _this._iterator, t2 = _this._f; !_this._currentExpansion.moveNext$0();) {
-        _this.set$__internal$_current(null);
-        if (t1.moveNext$0()) {
-          _this.set$_currentExpansion(null);
-          _this.set$_currentExpansion(J.get$iterator$ax(t2.call$1(t1.get$current())));
+      for (t2 = _this._iterator, t3 = _this._f; !t1.moveNext$0();) {
+        _this.__internal$_current = null;
+        if (t2.moveNext$0()) {
+          _this._currentExpansion = null;
+          t1 = J.get$iterator$ax(t3.call$1(t2.get$current()));
+          _this._currentExpansion = t1;
         } else
           return false;
       }
-      _this.set$__internal$_current(_this._currentExpansion.get$current());
+      _this.__internal$_current = _this._currentExpansion.get$current();
       return true;
     },
-    set$_currentExpansion(_currentExpansion) {
-      this._currentExpansion = this.$ti._eval$1("Iterator<2>?")._as(_currentExpansion);
-    },
-    set$__internal$_current(_current) {
-      this.__internal$_current = this.$ti._eval$1("2?")._as(_current);
-    },
     $isIterator: 1
   };
   A.TakeIterable.prototype = {
     get$iterator(_) {
-      return new A.TakeIterator(J.get$iterator$ax(this.__internal$_iterable), this._takeCount, A._instanceType(this)._eval$1("TakeIterator<1>"));
+      var t1 = this.__internal$_iterable;
+      return new A.TakeIterator(t1.get$iterator(t1), this._takeCount, A._instanceType(this)._eval$1("TakeIterator<1>"));
     }
   };
   A.EfficientLengthTakeIterable.prototype = {
     get$length(_) {
-      var iterableLength = J.get$length$asx(this.__internal$_iterable),
-        t1 = this._takeCount;
+      var t1 = this.__internal$_iterable,
+        iterableLength = t1.get$length(t1);
+      t1 = this._takeCount;
       if (iterableLength > t1)
         return t1;
       return iterableLength;
@@ -8511,12 +8139,14 @@
       return new A.SkipIterable(this.__internal$_iterable, this._skipCount + count, A._instanceType(this)._eval$1("SkipIterable<1>"));
     },
     get$iterator(_) {
-      return new A.SkipIterator(J.get$iterator$ax(this.__internal$_iterable), this._skipCount, A._instanceType(this)._eval$1("SkipIterator<1>"));
+      var t1 = this.__internal$_iterable;
+      return new A.SkipIterator(t1.get$iterator(t1), this._skipCount, A._instanceType(this)._eval$1("SkipIterator<1>"));
     }
   };
   A.EfficientLengthSkipIterable.prototype = {
     get$length(_) {
-      var $length = J.get$length$asx(this.__internal$_iterable) - this._skipCount;
+      var t1 = this.__internal$_iterable,
+        $length = t1.get$length(t1) - this._skipCount;
       if ($length >= 0)
         return $length;
       return 0;
@@ -8552,7 +8182,7 @@
       if (!_this._hasSkipped) {
         _this._hasSkipped = true;
         for (t1 = _this._iterator, t2 = _this._f; t1.moveNext$0();)
-          if (!A.boolConversionCheck(t2.call$1(t1.get$current())))
+          if (!t2.call$1(t1.get$current()))
             return true;
       }
       return _this._iterator.moveNext$0();
@@ -8633,27 +8263,7 @@
       return t2.elementAt$1(t1, t2.get$length(t1) - 1 - index);
     }
   };
-  A.Symbol.prototype = {
-    get$hashCode(_) {
-      var hash = this._hashCode;
-      if (hash != null)
-        return hash;
-      hash = 664597 * B.JSString_methods.get$hashCode(this._name) & 536870911;
-      this._hashCode = hash;
-      return hash;
-    },
-    toString$0(_) {
-      return 'Symbol("' + this._name + '")';
-    },
-    $eq(_, other) {
-      if (other == null)
-        return false;
-      return other instanceof A.Symbol && this._name === other._name;
-    },
-    $isSymbol0: 1
-  };
   A.__CastListBase__CastIterableBase_ListMixin.prototype = {};
-  A.ConstantMapView.prototype = {};
   A.ConstantMap.prototype = {
     get$isEmpty(_) {
       return this.get$length(this) === 0;
@@ -8729,16 +8339,13 @@
       var _this = this,
         t1 = _this.__js_helper$_index;
       if (t1 >= _this.__js_helper$_length) {
-        _this.set$__js_helper$_current(null);
+        _this.__js_helper$_current = null;
         return false;
       }
-      _this.set$__js_helper$_current(_this._elements[t1]);
-      ++_this.__js_helper$_index;
+      _this.__js_helper$_current = _this._elements[t1];
+      _this.__js_helper$_index = t1 + 1;
       return true;
     },
-    set$__js_helper$_current(_current) {
-      this.__js_helper$_current = this.$ti._eval$1("1?")._as(_current);
-    },
     $isIterator: 1
   };
   A.Instantiation.prototype = {
@@ -8766,59 +8373,7 @@
       return A.instantiatedGenericFunctionType(A.closureFunctionType(this._genericClosure), this.$ti);
     }
   };
-  A.JSInvocationMirror.prototype = {
-    get$memberName() {
-      var t1 = this._memberName;
-      if (t1 instanceof A.Symbol)
-        return t1;
-      return this._memberName = new A.Symbol(A._asString(t1));
-    },
-    get$positionalArguments() {
-      var t1, t2, argumentCount, list, index, _this = this;
-      if (_this.__js_helper$_kind === 1)
-        return B.List_empty0;
-      t1 = _this._arguments;
-      t2 = J.getInterceptor$asx(t1);
-      argumentCount = t2.get$length(t1) - J.get$length$asx(_this._namedArgumentNames) - _this._typeArgumentCount;
-      if (argumentCount === 0)
-        return B.List_empty0;
-      list = [];
-      for (index = 0; index < argumentCount; ++index)
-        list.push(t2.$index(t1, index));
-      list.$flags = 3;
-      return list;
-    },
-    get$namedArguments() {
-      var t1, t2, namedArgumentCount, t3, t4, namedArgumentsStartIndex, map, i, _this = this;
-      if (_this.__js_helper$_kind !== 0)
-        return B.Map_empty0;
-      t1 = _this._namedArgumentNames;
-      t2 = J.getInterceptor$asx(t1);
-      namedArgumentCount = t2.get$length(t1);
-      t3 = _this._arguments;
-      t4 = J.getInterceptor$asx(t3);
-      namedArgumentsStartIndex = t4.get$length(t3) - namedArgumentCount - _this._typeArgumentCount;
-      if (namedArgumentCount === 0)
-        return B.Map_empty0;
-      map = new A.JsLinkedHashMap(type$.JsLinkedHashMap_Symbol_dynamic);
-      for (i = 0; i < namedArgumentCount; ++i)
-        map.$indexSet(0, new A.Symbol(A._asString(t2.$index(t1, i))), t4.$index(t3, namedArgumentsStartIndex + i));
-      return new A.ConstantMapView(map, type$.ConstantMapView_Symbol_dynamic);
-    },
-    $isInvocation: 1
-  };
-  A.Primitives_functionNoSuchMethod_closure.prototype = {
-    call$2($name, argument) {
-      var t1;
-      A._asString($name);
-      t1 = this._box_0;
-      t1.names = t1.names + "$" + $name;
-      B.JSArray_methods.add$1(this.namedArgumentList, $name);
-      B.JSArray_methods.add$1(this.$arguments, argument);
-      ++t1.argumentCount;
-    },
-    $signature: 33
-  };
+  A.SafeToStringHook.prototype = {};
   A.TypeErrorDecoder.prototype = {
     matchTypeError$1(message) {
       var result, t1, _this = this,
@@ -8928,22 +8483,11 @@
       return "Closure '" + this.$_name + "' of " + ("Instance of '" + A.Primitives_objectTypeName(this._receiver) + "'");
     }
   };
-  A._CyclicInitializationError.prototype = {
-    toString$0(_) {
-      return "Reading static variable '" + this.variableName + "' during its initialization";
-    }
-  };
   A.RuntimeError.prototype = {
     toString$0(_) {
       return "RuntimeError: " + this.message;
     }
   };
-  A._AssertionError.prototype = {
-    toString$0(_) {
-      return "Assertion failed: " + A.Error_safeToString(this.message);
-    }
-  };
-  A._Required.prototype = {};
   A.JsLinkedHashMap.prototype = {
     get$length(_) {
       return this.__js_helper$_length;
@@ -8952,11 +8496,7 @@
       return this.__js_helper$_length === 0;
     },
     get$keys() {
-      return new A.LinkedHashMapKeyIterable(this, A._instanceType(this)._eval$1("LinkedHashMapKeyIterable<1>"));
-    },
-    get$values() {
-      var t1 = A._instanceType(this);
-      return A.MappedIterable_MappedIterable(new A.LinkedHashMapKeyIterable(this, t1._eval$1("LinkedHashMapKeyIterable<1>")), new A.JsLinkedHashMap_values_closure(this), t1._precomputed1, t1._rest[1]);
+      return new A.LinkedHashMapKeysIterable(this, A._instanceType(this)._eval$1("LinkedHashMapKeysIterable<1>"));
     },
     containsKey$1(key) {
       var strings, nums;
@@ -9088,7 +8628,7 @@
       A._instanceType(_this)._eval$1("~(1,2)")._as(action);
       cell = _this._first;
       modifications = _this._modifications;
-      for (; cell != null;) {
+      while (cell != null) {
         action.call$2(cell.hashMapCellKey, cell.hashMapCellValue);
         if (modifications !== _this._modifications)
           throw A.wrapException(A.ConcurrentModificationError$(_this));
@@ -9175,19 +8715,8 @@
     },
     $isLinkedHashMap: 1
   };
-  A.JsLinkedHashMap_values_closure.prototype = {
-    call$1(each) {
-      var t1 = this.$this,
-        t2 = A._instanceType(t1);
-      t1 = t1.$index(0, t2._precomputed1._as(each));
-      return t1 == null ? t2._rest[1]._as(t1) : t1;
-    },
-    $signature() {
-      return A._instanceType(this.$this)._eval$1("2(1)");
-    }
-  };
   A.LinkedHashMapCell.prototype = {};
-  A.LinkedHashMapKeyIterable.prototype = {
+  A.LinkedHashMapKeysIterable.prototype = {
     get$length(_) {
       return this.__js_helper$_map.__js_helper$_length;
     },
@@ -9195,10 +8724,8 @@
       return this.__js_helper$_map.__js_helper$_length === 0;
     },
     get$iterator(_) {
-      var t1 = this.__js_helper$_map,
-        t2 = new A.LinkedHashMapKeyIterator(t1, t1._modifications, this.$ti._eval$1("LinkedHashMapKeyIterator<1>"));
-      t2._cell = t1._first;
-      return t2;
+      var t1 = this.__js_helper$_map;
+      return new A.LinkedHashMapKeyIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapKeyIterator<1>"));
     },
     contains$1(_, element) {
       return this.__js_helper$_map.containsKey$1(element);
@@ -9215,16 +8742,46 @@
         throw A.wrapException(A.ConcurrentModificationError$(t1));
       cell = _this._cell;
       if (cell == null) {
-        _this.set$__js_helper$_current(null);
+        _this.__js_helper$_current = null;
         return false;
       } else {
-        _this.set$__js_helper$_current(cell.hashMapCellKey);
+        _this.__js_helper$_current = cell.hashMapCellKey;
         _this._cell = cell._next;
         return true;
       }
     },
-    set$__js_helper$_current(_current) {
-      this.__js_helper$_current = this.$ti._eval$1("1?")._as(_current);
+    $isIterator: 1
+  };
+  A.LinkedHashMapValuesIterable.prototype = {
+    get$length(_) {
+      return this.__js_helper$_map.__js_helper$_length;
+    },
+    get$isEmpty(_) {
+      return this.__js_helper$_map.__js_helper$_length === 0;
+    },
+    get$iterator(_) {
+      var t1 = this.__js_helper$_map;
+      return new A.LinkedHashMapValueIterator(t1, t1._modifications, t1._first, this.$ti._eval$1("LinkedHashMapValueIterator<1>"));
+    }
+  };
+  A.LinkedHashMapValueIterator.prototype = {
+    get$current() {
+      return this.__js_helper$_current;
+    },
+    moveNext$0() {
+      var cell, _this = this,
+        t1 = _this.__js_helper$_map;
+      if (_this._modifications !== t1._modifications)
+        throw A.wrapException(A.ConcurrentModificationError$(t1));
+      cell = _this._cell;
+      if (cell == null) {
+        _this.__js_helper$_current = null;
+        return false;
+      } else {
+        _this.__js_helper$_current = cell.hashMapCellValue;
+        _this._cell = cell._next;
+        return true;
+      }
     },
     $isIterator: 1
   };
@@ -9232,19 +8789,19 @@
     call$1(o) {
       return this.getTag(o);
     },
-    $signature: 13
+    $signature: 12
   };
   A.initHooks_closure0.prototype = {
     call$2(o, tag) {
       return this.getUnknownTag(o, tag);
     },
-    $signature: 43
+    $signature: 27
   };
   A.initHooks_closure1.prototype = {
     call$1(tag) {
       return this.prototypeForTag(A._asString(tag));
     },
-    $signature: 26
+    $signature: 29
   };
   A.JSSyntaxRegExp.prototype = {
     toString$0(_) {
@@ -9256,7 +8813,7 @@
       if (t1 != null)
         return t1;
       t1 = _this._nativeRegExp;
-      return _this._nativeGlobalRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, true);
+      return _this._nativeGlobalRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, "g");
     },
     get$_nativeAnchoredVersion() {
       var _this = this,
@@ -9264,7 +8821,15 @@
       if (t1 != null)
         return t1;
       t1 = _this._nativeRegExp;
-      return _this._nativeAnchoredRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern + "|()", t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, true);
+      return _this._nativeAnchoredRegExp = A.JSSyntaxRegExp_makeNative(_this.pattern, t1.multiline, !t1.ignoreCase, t1.unicode, t1.dotAll, "y");
+    },
+    _computeHasCaptures$0() {
+      var t2,
+        t1 = this.pattern;
+      if (!B.JSString_methods.contains$1(t1, "("))
+        return false;
+      t2 = this._nativeRegExp.unicode ? "u" : "";
+      return new RegExp("(?:)|" + t1, t2).exec("").length > 1;
     },
     firstMatch$1(string) {
       var m = this._nativeRegExp.exec(string);
@@ -9285,7 +8850,7 @@
       var match,
         regexp = this.get$_nativeGlobalVersion();
       if (regexp == null)
-        regexp = type$.Object._as(regexp);
+        regexp = A._asObject(regexp);
       regexp.lastIndex = start;
       match = regexp.exec(string);
       if (match == null)
@@ -9296,15 +8861,11 @@
       var match,
         regexp = this.get$_nativeAnchoredVersion();
       if (regexp == null)
-        regexp = type$.Object._as(regexp);
+        regexp = A._asObject(regexp);
       regexp.lastIndex = start;
       match = regexp.exec(string);
       if (match == null)
         return null;
-      if (0 >= match.length)
-        return A.ioore(match, -1);
-      if (match.pop() != null)
-        return null;
       return new A._MatchImplementation(match);
     },
     matchAsPrefix$2(_, string, start) {
@@ -9323,16 +8884,6 @@
       var t1 = this._match;
       return t1.index + t1[0].length;
     },
-    namedGroup$1($name) {
-      var result,
-        groups = this._match.groups;
-      if (groups != null) {
-        result = groups[$name];
-        if (result != null || $name in groups)
-          return result;
-      }
-      throw A.wrapException(A.ArgumentError$value($name, "name", "Not a capture group name"));
-    },
     $isMatch: 1,
     $isRegExpMatch: 1
   };
@@ -9435,21 +8986,30 @@
     _readLocal$0() {
       var t1 = this._value;
       if (t1 === this)
-        throw A.wrapException(new A.LateError("Local '" + this.__late_helper$_name + "' has not been initialized."));
+        throw A.wrapException(new A.LateError("Local '" + this._name + "' has not been initialized."));
       return t1;
     }
   };
   A.NativeByteBuffer.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_ByteBuffer_EOZ;
+      return B.Type_ByteBuffer_rqD;
     },
     $isTrustedGetRuntimeType: 1,
     $isByteBuffer: 1
   };
-  A.NativeTypedData.prototype = {};
+  A.NativeTypedData.prototype = {
+    _invalidPosition$3(receiver, position, $length, $name) {
+      var t1 = A.RangeError$range(position, 0, $length, $name, null);
+      throw A.wrapException(t1);
+    },
+    _checkPosition$3(receiver, position, $length, $name) {
+      if (position >>> 0 !== position || position > $length)
+        this._invalidPosition$3(receiver, position, $length, $name);
+    }
+  };
   A.NativeByteData.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_ByteData_mF8;
+      return B.Type_ByteData_9dB;
     },
     $isTrustedGetRuntimeType: 1,
     $isByteData: 1
@@ -9458,6 +9018,23 @@
     get$length(receiver) {
       return receiver.length;
     },
+    _setRangeFast$4(receiver, start, end, source, skipCount) {
+      var count, sourceLength,
+        targetLength = receiver.length;
+      this._checkPosition$3(receiver, start, targetLength, "start");
+      this._checkPosition$3(receiver, end, targetLength, "end");
+      if (start > end)
+        throw A.wrapException(A.RangeError$range(start, 0, end, null, null));
+      count = end - start;
+      if (skipCount < 0)
+        throw A.wrapException(A.ArgumentError$(skipCount, null));
+      sourceLength = source.length;
+      if (sourceLength - skipCount < count)
+        throw A.wrapException(A.StateError$("Not enough elements"));
+      if (skipCount !== 0 || sourceLength !== count)
+        source = source.subarray(skipCount, skipCount + count);
+      receiver.set(source, start);
+    },
     $isJavaScriptIndexingBehavior: 1
   };
   A.NativeTypedArrayOfDouble.prototype = {
@@ -9482,27 +9059,36 @@
       A._checkValidIndex(index, receiver, receiver.length);
       receiver[index] = value;
     },
+    setRange$4(receiver, start, end, iterable, skipCount) {
+      type$.Iterable_int._as(iterable);
+      receiver.$flags & 2 && A.throwUnsupportedOperation(receiver, 5);
+      if (type$.NativeTypedArrayOfInt._is(iterable)) {
+        this._setRangeFast$4(receiver, start, end, iterable, skipCount);
+        return;
+      }
+      this.super$ListBase$setRange(receiver, start, end, iterable, skipCount);
+    },
     $isEfficientLengthIterable: 1,
     $isIterable: 1,
     $isList: 1
   };
   A.NativeFloat32List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Float32List_Ymk;
+      return B.Type_Float32List_9Kz;
     },
     $isTrustedGetRuntimeType: 1,
     $isFloat32List: 1
   };
   A.NativeFloat64List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Float64List_Ymk;
+      return B.Type_Float64List_9Kz;
     },
     $isTrustedGetRuntimeType: 1,
     $isFloat64List: 1
   };
   A.NativeInt16List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Int16List_cot;
+      return B.Type_Int16List_s5h;
     },
     $index(receiver, index) {
       A._checkValidIndex(index, receiver, receiver.length);
@@ -9513,7 +9099,7 @@
   };
   A.NativeInt32List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Int32List_m1p;
+      return B.Type_Int32List_O8Z;
     },
     $index(receiver, index) {
       A._checkValidIndex(index, receiver, receiver.length);
@@ -9524,7 +9110,7 @@
   };
   A.NativeInt8List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Int8List_woc;
+      return B.Type_Int8List_rFV;
     },
     $index(receiver, index) {
       A._checkValidIndex(index, receiver, receiver.length);
@@ -9535,7 +9121,7 @@
   };
   A.NativeUint16List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Uint16List_2mh;
+      return B.Type_Uint16List_kmP;
     },
     $index(receiver, index) {
       A._checkValidIndex(index, receiver, receiver.length);
@@ -9546,7 +9132,7 @@
   };
   A.NativeUint32List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Uint32List_2mh;
+      return B.Type_Uint32List_kmP;
     },
     $index(receiver, index) {
       A._checkValidIndex(index, receiver, receiver.length);
@@ -9557,7 +9143,7 @@
   };
   A.NativeUint8ClampedList.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Uint8ClampedList_9Bb;
+      return B.Type_Uint8ClampedList_04U;
     },
     get$length(receiver) {
       return receiver.length;
@@ -9571,7 +9157,7 @@
   };
   A.NativeUint8List.prototype = {
     get$runtimeType(receiver) {
-      return B.Type_Uint8List_CSc;
+      return B.Type_Uint8List_8Eb;
     },
     get$length(receiver) {
       return receiver.length;
@@ -9612,13 +9198,13 @@
   };
   A._TypeError.prototype = {$isTypeError: 1};
   A._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = {
-    call$1(_) {
+    call$1(__wc0_formal) {
       var t1 = this._box_0,
         f = t1.storedCallback;
       t1.storedCallback = null;
       f.call$0();
     },
-    $signature: 8
+    $signature: 9
   };
   A._AsyncRun__initializeScheduleImmediate_closure.prototype = {
     call$1(callback) {
@@ -9628,7 +9214,7 @@
       t2 = this.span;
       t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2);
     },
-    $signature: 36
+    $signature: 39
   };
   A._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = {
     call$0() {
@@ -9691,11 +9277,9 @@
   };
   A._Completer.prototype = {
     completeError$2(error, stackTrace) {
-      var _0_0;
       if ((this.future._async$_state & 30) !== 0)
         throw A.wrapException(A.StateError$("Future already completed"));
-      _0_0 = A._interceptUserError(error, stackTrace);
-      this._completeError$2(_0_0.error, _0_0.stackTrace);
+      this._completeErrorObject$1(A._interceptUserError(error, stackTrace));
     },
     completeError$1(error) {
       return this.completeError$2(error, null);
@@ -9715,8 +9299,8 @@
     complete$0() {
       return this.complete$1(null);
     },
-    _completeError$2(error, stackTrace) {
-      this.future._asyncCompleteError$2(error, stackTrace);
+    _completeErrorObject$1(error) {
+      this.future._asyncCompleteErrorObject$1(error);
     }
   };
   A._SyncCompleter.prototype = {
@@ -9732,8 +9316,8 @@
     complete$0() {
       return this.complete$1(null);
     },
-    _completeError$2(error, stackTrace) {
-      this.future._completeError$2(error, stackTrace);
+    _completeErrorObject$1(error) {
+      this.future._completeErrorObject$1(error);
     }
   };
   A._FutureListener.prototype = {
@@ -9768,10 +9352,6 @@
     }
   };
   A._Future.prototype = {
-    _setChained$1(source) {
-      this._async$_state = this._async$_state & 1 | 4;
-      this._resultOrListeners = source;
-    },
     then$1$2$onError(f, onError, $R) {
       var currentZone, result, t2,
         t1 = this.$ti;
@@ -9871,26 +9451,12 @@
       }
       return prev;
     },
-    _chainForeignFuture$1(source) {
-      var e, s, exception, _this = this;
-      _this._async$_state ^= 2;
-      try {
-        source.then$1$2$onError(new A._Future__chainForeignFuture_closure(_this), new A._Future__chainForeignFuture_closure0(_this), type$.Null);
-      } catch (exception) {
-        e = A.unwrapException(exception);
-        s = A.getTraceFromException(exception);
-        A.scheduleMicrotask(new A._Future__chainForeignFuture_closure1(_this, e, s));
-      }
-    },
     _complete$1(value) {
       var listeners, _this = this,
         t1 = _this.$ti;
       t1._eval$1("1/")._as(value);
       if (t1._eval$1("Future<1>")._is(value))
-        if (t1._is(value))
-          A._Future__chainCoreFutureSync(value, _this);
-        else
-          _this._chainForeignFuture$1(value);
+        A._Future__chainCoreFuture(value, _this, true);
       else {
         listeners = _this._removeListeners$0();
         t1._precomputed1._as(value);
@@ -9907,14 +9473,30 @@
       _this._resultOrListeners = value;
       A._Future__propagateToListeners(_this, listeners);
     },
-    _completeError$2(error, stackTrace) {
-      var listeners;
-      type$.Object._as(error);
-      type$.StackTrace._as(stackTrace);
-      listeners = this._removeListeners$0();
-      this._setErrorObject$1(new A.AsyncError(error, stackTrace));
+    _completeWithResultOf$1(source) {
+      var t1, t2, listeners, _this = this;
+      if ((source._async$_state & 16) !== 0) {
+        t1 = _this._zone;
+        t2 = source._zone;
+        t1 = !(t1 === t2 || t1.get$errorZone() === t2.get$errorZone());
+      } else
+        t1 = false;
+      if (t1)
+        return;
+      listeners = _this._removeListeners$0();
+      _this._cloneResult$1(source);
+      A._Future__propagateToListeners(_this, listeners);
+    },
+    _completeErrorObject$1(error) {
+      var listeners = this._removeListeners$0();
+      this._setErrorObject$1(error);
       A._Future__propagateToListeners(this, listeners);
     },
+    _completeError$2(error, stackTrace) {
+      A._asObject(error);
+      type$.StackTrace._as(stackTrace);
+      this._completeErrorObject$1(new A.AsyncError(error, stackTrace));
+    },
     _asyncComplete$1(value) {
       var t1 = this.$ti;
       t1._eval$1("1/")._as(value);
@@ -9931,18 +9513,12 @@
       _this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteWithValue_closure(_this, value));
     },
     _chainFuture$1(value) {
-      var t1 = this.$ti;
-      t1._eval$1("Future<1>")._as(value);
-      if (t1._is(value)) {
-        A._Future__chainCoreFutureAsync(value, this);
-        return;
-      }
-      this._chainForeignFuture$1(value);
+      A._Future__chainCoreFuture(this.$ti._eval$1("Future<1>")._as(value), this, false);
+      return;
     },
-    _asyncCompleteError$2(error, stackTrace) {
-      type$.StackTrace._as(stackTrace);
+    _asyncCompleteErrorObject$1(error) {
       this._async$_state ^= 2;
-      this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteError_closure(this, error, stackTrace));
+      this._zone.scheduleMicrotask$1(new A._Future__asyncCompleteErrorObject_closure(this, error));
     },
     $isFuture: 1
   };
@@ -9958,36 +9534,9 @@
     },
     $signature: 0
   };
-  A._Future__chainForeignFuture_closure.prototype = {
-    call$1(value) {
-      var error, stackTrace, exception,
-        t1 = this.$this;
-      t1._async$_state ^= 2;
-      try {
-        t1._completeWithValue$1(t1.$ti._precomputed1._as(value));
-      } catch (exception) {
-        error = A.unwrapException(exception);
-        stackTrace = A.getTraceFromException(exception);
-        t1._completeError$2(error, stackTrace);
-      }
-    },
-    $signature: 8
-  };
-  A._Future__chainForeignFuture_closure0.prototype = {
-    call$2(error, stackTrace) {
-      this.$this._completeError$2(type$.Object._as(error), type$.StackTrace._as(stackTrace));
-    },
-    $signature: 27
-  };
-  A._Future__chainForeignFuture_closure1.prototype = {
+  A._Future__chainCoreFuture_closure.prototype = {
     call$0() {
-      this.$this._completeError$2(this.e, this.s);
-    },
-    $signature: 0
-  };
-  A._Future__chainCoreFutureAsync_closure.prototype = {
-    call$0() {
-      A._Future__chainCoreFutureSync(this._box_0.source, this.target);
+      A._Future__chainCoreFuture(this._box_0.source, this.target, true);
     },
     $signature: 0
   };
@@ -9997,15 +9546,15 @@
     },
     $signature: 0
   };
-  A._Future__asyncCompleteError_closure.prototype = {
+  A._Future__asyncCompleteErrorObject_closure.prototype = {
     call$0() {
-      this.$this._completeError$2(this.error, this.stackTrace);
+      this.$this._completeErrorObject$1(this.error);
     },
     $signature: 0
   };
   A._Future__propagateToListeners_handleWhenCompleteCallback.prototype = {
     call$0() {
-      var e, s, t1, exception, t2, t3, originalSource, _this = this, completeResult = null;
+      var e, s, t1, exception, t2, t3, originalSource, joinedResult, _this = this, completeResult = null;
       try {
         t1 = _this._box_0.listener;
         completeResult = t1.result._zone.run$1$1(type$.dynamic_Function._as(t1.callback), type$.dynamic);
@@ -10037,18 +9586,28 @@
       }
       if (completeResult instanceof A._Future) {
         originalSource = _this._box_1.source;
+        joinedResult = new A._Future(originalSource._zone, originalSource.$ti);
+        completeResult.then$1$2$onError(new A._Future__propagateToListeners_handleWhenCompleteCallback_closure(joinedResult, originalSource), new A._Future__propagateToListeners_handleWhenCompleteCallback_closure0(joinedResult), type$.void);
         t1 = _this._box_0;
-        t1.listenerValueOrError = completeResult.then$1$1(new A._Future__propagateToListeners_handleWhenCompleteCallback_closure(originalSource), type$.dynamic);
+        t1.listenerValueOrError = joinedResult;
         t1.listenerHasError = false;
       }
     },
     $signature: 0
   };
   A._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = {
-    call$1(_) {
-      return this.originalSource;
+    call$1(__wc0_formal) {
+      this.joinedResult._completeWithResultOf$1(this.originalSource);
     },
-    $signature: 28
+    $signature: 9
+  };
+  A._Future__propagateToListeners_handleWhenCompleteCallback_closure0.prototype = {
+    call$2(e, s) {
+      A._asObject(e);
+      type$.StackTrace._as(s);
+      this.joinedResult._completeErrorObject$1(new A.AsyncError(e, s));
+    },
+    $signature: 34
   };
   A._Future__propagateToListeners_handleValueCallback.prototype = {
     call$0() {
@@ -10121,14 +9680,14 @@
     }
   };
   A.Stream_pipe_closure.prototype = {
-    call$1(_) {
+    call$1(__wc0_formal) {
       return this.streamConsumer.close$0();
     },
-    $signature: 29
+    $signature: 38
   };
   A.Stream_length_closure.prototype = {
-    call$1(_) {
-      A._instanceType(this.$this)._eval$1("Stream.T")._as(_);
+    call$1(__wc0_formal) {
+      A._instanceType(this.$this)._eval$1("Stream.T")._as(__wc0_formal);
       ++this._box_0.count;
     },
     $signature() {
@@ -10190,7 +9749,7 @@
     },
     addError$2(error, stackTrace) {
       var _0_0;
-      type$.Object._as(error);
+      A._asObject(error);
       type$.nullable_StackTrace._as(stackTrace);
       if (this._async$_state >= 4)
         throw A.wrapException(this._badEventState$0());
@@ -10246,8 +9805,7 @@
       t7 = onDone == null ? A.async___nullDoneHandler$closure() : onDone;
       subscription = new A._ControllerSubscription(_this, t5, t6, t2.registerCallback$1$1(t7, type$.void), t2, t3 | t4, t1._eval$1("_ControllerSubscription<1>"));
       pendingEvents = _this.get$_pendingEvents();
-      t4 = _this._async$_state |= 1;
-      if ((t4 & 8) !== 0) {
+      if (((_this._async$_state |= 1) & 8) !== 0) {
         addState = t1._eval$1("_StreamControllerAddStreamState<1>")._as(_this._varData);
         addState._varData = subscription;
         addState.addSubscription.resume$0();
@@ -10258,7 +9816,7 @@
       return subscription;
     },
     _recordCancel$1(subscription) {
-      var result, onCancel, cancelResult, e, s, exception, result0, _this = this,
+      var result, onCancel, cancelResult, e, s, exception, result0, t2, _this = this,
         t1 = A._instanceType(_this);
       t1._eval$1("StreamSubscription<1>")._as(subscription);
       result = null;
@@ -10277,7 +9835,9 @@
             e = A.unwrapException(exception);
             s = A.getTraceFromException(exception);
             result0 = new A._Future($.Zone__current, type$._Future_void);
-            result0._asyncCompleteError$2(e, s);
+            t1 = A._asObject(e);
+            t2 = type$.StackTrace._as(s);
+            result0._asyncCompleteErrorObject$1(new A.AsyncError(t1, t2));
             result = result0;
           }
         else
@@ -10374,7 +9934,7 @@
       A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>?")._as(pendingEvents);
       if (pendingEvents == null)
         return;
-      _this.set$_pending(pendingEvents);
+      _this._pending = pendingEvents;
       if (pendingEvents.lastPendingEvent != null) {
         _this._async$_state = (_this._async$_state | 128) >>> 0;
         pendingEvents.schedule$1(_this);
@@ -10382,7 +9942,7 @@
     },
     onData$1(handleData) {
       var t1 = A._instanceType(this);
-      this.set$_onData(A._BufferingStreamSubscription__registerDataHandler(this._zone, t1._eval$1("~(_BufferingStreamSubscription.T)?")._as(handleData), t1._eval$1("_BufferingStreamSubscription.T")));
+      this._onData = A._BufferingStreamSubscription__registerDataHandler(this._zone, t1._eval$1("~(_BufferingStreamSubscription.T)?")._as(handleData), t1._eval$1("_BufferingStreamSubscription.T"));
     },
     onError$1(handleError) {
       var _this = this,
@@ -10411,7 +9971,7 @@
           t2._async$_state = 3;
       }
       if ((t1 & 64) === 0)
-        _this.set$_pending(null);
+        _this._pending = null;
       _this._cancelFuture = _this._onCancel$0();
     },
     _add$1(data) {
@@ -10460,10 +10020,8 @@
     _addPending$1($event) {
       var t1, _this = this,
         pending = _this._pending;
-      if (pending == null) {
-        pending = new A._PendingEvents(A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>"));
-        _this.set$_pending(pending);
-      }
+      if (pending == null)
+        pending = _this._pending = new A._PendingEvents(A._instanceType(_this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>"));
       pending.add$1(0, $event);
       t1 = _this._async$_state;
       if ((t1 & 128) === 0) {
@@ -10537,9 +10095,9 @@
           _this._async$_state = t1;
         }
       }
-      for (; true; wasInputPaused = isInputPaused) {
+      for (;; wasInputPaused = isInputPaused) {
         if ((t1 & 8) !== 0) {
-          _this.set$_pending(null);
+          _this._pending = null;
           return;
         }
         isInputPaused = (t1 & 4) !== 0;
@@ -10556,12 +10114,6 @@
       if ((t1 & 128) !== 0 && t1 < 256)
         _this._pending.schedule$1(_this);
     },
-    set$_onData(_onData) {
-      this._onData = A._instanceType(this)._eval$1("~(_BufferingStreamSubscription.T)")._as(_onData);
-    },
-    set$_pending(_pending) {
-      this._pending = A._instanceType(this)._eval$1("_PendingEvents<_BufferingStreamSubscription.T>?")._as(_pending);
-    },
     $isStreamSubscription: 1,
     $is_EventDispatch: 1
   };
@@ -10642,7 +10194,7 @@
     get$next() {
       return null;
     },
-    set$next(_) {
+    set$next(__wc0_formal) {
       throw A.wrapException(A.StateError$("No events after a done."));
     },
     $is_DelayedEvent: 1
@@ -10698,7 +10250,7 @@
     },
     cancel$0() {
       this._async$_state = -1;
-      this.set$_onDone(null);
+      this._onDone = null;
       return $.$get$Future__nullFuture();
     },
     _onMicrotask$0() {
@@ -10708,15 +10260,12 @@
         _this._async$_state = -1;
         _0_0 = _this._onDone;
         if (_0_0 != null) {
-          _this.set$_onDone(null);
+          _this._onDone = null;
           _this._zone.runGuarded$1(_0_0);
         }
       } else
         _this._async$_state = unscheduledState;
     },
-    set$_onDone(_onDone) {
-      this._onDone = type$.nullable_void_Function._as(_onDone);
-    },
     $isStreamSubscription: 1
   };
   A._EmptyStream.prototype = {
@@ -10729,7 +10278,7 @@
       t1 = new A._DoneStreamSubscription(t2, t1._eval$1("_DoneStreamSubscription<1>"));
       A.scheduleMicrotask(t1.get$_onMicrotask());
       if (onDone != null)
-        t1.set$_onDone(t2.registerCallback$1$1(onDone, type$.void));
+        t1._onDone = t2.registerCallback$1$1(onDone, type$.void);
       return t1;
     },
     listen$1(onData) {
@@ -10743,8 +10292,6 @@
     }
   };
   A._ZoneFunction.prototype = {};
-  A._ZoneSpecification.prototype = {$isZoneSpecification: 1};
-  A._ZoneDelegate.prototype = {$isZoneDelegate: 1};
   A._Zone.prototype = {
     _processUncaughtError$3(zone, error, stackTrace) {
       var implZone, handler, parentDelegate, parentZone, currentZone, e, s, implementation, t1, exception;
@@ -10794,7 +10341,7 @@
       } catch (exception) {
         e = A.unwrapException(exception);
         s = A.getTraceFromException(exception);
-        this._processUncaughtError$3(this, type$.Object._as(e), type$.StackTrace._as(s));
+        this._processUncaughtError$3(this, A._asObject(e), type$.StackTrace._as(s));
       }
     },
     runUnaryGuarded$1$2(f, arg, $T) {
@@ -10806,20 +10353,20 @@
       } catch (exception) {
         e = A.unwrapException(exception);
         s = A.getTraceFromException(exception);
-        this._processUncaughtError$3(this, type$.Object._as(e), type$.StackTrace._as(s));
+        this._processUncaughtError$3(this, A._asObject(e), type$.StackTrace._as(s));
       }
     },
-    runBinaryGuarded$2$3(f, arg1, arg2, T1, T2) {
+    runBinaryGuarded$2$3(f, arg1, arg2, $T1, $T2) {
       var e, s, exception;
-      T1._eval$1("@<0>")._bind$1(T2)._eval$1("~(1,2)")._as(f);
-      T1._as(arg1);
-      T2._as(arg2);
+      $T1._eval$1("@<0>")._bind$1($T2)._eval$1("~(1,2)")._as(f);
+      $T1._as(arg1);
+      $T2._as(arg2);
       try {
-        this.runBinary$3$3(f, arg1, arg2, type$.void, T1, T2);
+        this.runBinary$3$3(f, arg1, arg2, type$.void, $T1, $T2);
       } catch (exception) {
         e = A.unwrapException(exception);
         s = A.getTraceFromException(exception);
-        this._processUncaughtError$3(this, type$.Object._as(e), type$.StackTrace._as(s));
+        this._processUncaughtError$3(this, A._asObject(e), type$.StackTrace._as(s));
       }
     },
     bindCallback$1$1(f, $R) {
@@ -10857,14 +10404,14 @@
       t1 = implementation.zone;
       return implementation.$function.call$2$5(t1, t1.get$_parentDelegate(), this, f, arg, $R, $T);
     },
-    runBinary$3$3(f, arg1, arg2, $R, T1, T2) {
+    runBinary$3$3(f, arg1, arg2, $R, $T1, $T2) {
       var implementation, t1;
-      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
-      T1._as(arg1);
-      T2._as(arg2);
+      $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f);
+      $T1._as(arg1);
+      $T2._as(arg2);
       implementation = this._runBinary;
       t1 = implementation.zone;
-      return implementation.$function.call$3$6(t1, t1.get$_parentDelegate(), this, f, arg1, arg2, $R, T1, T2);
+      return implementation.$function.call$3$6(t1, t1.get$_parentDelegate(), this, f, arg1, arg2, $R, $T1, $T2);
     },
     registerCallback$1$1(callback, $R) {
       var implementation, t1;
@@ -10880,12 +10427,12 @@
       t1 = implementation.zone;
       return implementation.$function.call$2$4(t1, t1.get$_parentDelegate(), this, callback, $R, $T);
     },
-    registerBinaryCallback$3$1(callback, $R, T1, T2) {
+    registerBinaryCallback$3$1(callback, $R, $T1, $T2) {
       var implementation, t1;
-      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(callback);
+      $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(callback);
       implementation = this._registerBinaryCallback;
       t1 = implementation.zone;
-      return implementation.$function.call$3$4(t1, t1.get$_parentDelegate(), this, callback, $R, T1, T2);
+      return implementation.$function.call$3$4(t1, t1.get$_parentDelegate(), this, callback, $R, $T1, $T2);
     },
     errorCallback$2(error, stackTrace) {
       var implementation = this._errorCallback,
@@ -10908,9 +10455,6 @@
       t1 = implementation.zone;
       return implementation.$function.call$5(t1, t1.get$_parentDelegate(), this, duration, f);
     },
-    set$_handleUncaughtError(_handleUncaughtError) {
-      this._handleUncaughtError = type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace._as(_handleUncaughtError);
-    },
     get$_run() {
       return this._run;
     },
@@ -10990,12 +10534,6 @@
       return this.T._eval$1("~(0)");
     }
   };
-  A._rootHandleError_closure.prototype = {
-    call$0() {
-      A.Error_throwWithStackTrace(this.error, this.stackTrace);
-    },
-    $signature: 0
-  };
   A._RootZone.prototype = {
     get$_run() {
       return B._ZoneFunction__RootZone__rootRun;
@@ -11010,10 +10548,10 @@
       return B._ZoneFunction__RootZone__rootRegisterCallback;
     },
     get$_registerUnaryCallback() {
-      return B._ZoneFunction_QOa;
+      return B._ZoneFunction_Xkh;
     },
     get$_registerBinaryCallback() {
-      return B._ZoneFunction_qxw;
+      return B._ZoneFunction_e9o;
     },
     get$_errorCallback() {
       return B._ZoneFunction__RootZone__rootErrorCallback;
@@ -11025,7 +10563,7 @@
       return B._ZoneFunction__RootZone__rootCreateTimer;
     },
     get$_createPeriodicTimer() {
-      return B._ZoneFunction_kWM;
+      return B._ZoneFunction_PAY;
     },
     get$_print() {
       return B._ZoneFunction__RootZone__rootPrint;
@@ -11034,7 +10572,7 @@
       return B._ZoneFunction__RootZone__rootFork;
     },
     get$_handleUncaughtError() {
-      return B._ZoneFunction_NIe;
+      return B._ZoneFunction_KjJ;
     },
     get$parent() {
       return null;
@@ -11065,7 +10603,7 @@
       } catch (exception) {
         e = A.unwrapException(exception);
         s = A.getTraceFromException(exception);
-        A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s));
+        A._rootHandleError(A._asObject(e), type$.StackTrace._as(s));
       }
     },
     runUnaryGuarded$1$2(f, arg, $T) {
@@ -11081,24 +10619,24 @@
       } catch (exception) {
         e = A.unwrapException(exception);
         s = A.getTraceFromException(exception);
-        A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s));
+        A._rootHandleError(A._asObject(e), type$.StackTrace._as(s));
       }
     },
-    runBinaryGuarded$2$3(f, arg1, arg2, T1, T2) {
+    runBinaryGuarded$2$3(f, arg1, arg2, $T1, $T2) {
       var e, s, exception;
-      T1._eval$1("@<0>")._bind$1(T2)._eval$1("~(1,2)")._as(f);
-      T1._as(arg1);
-      T2._as(arg2);
+      $T1._eval$1("@<0>")._bind$1($T2)._eval$1("~(1,2)")._as(f);
+      $T1._as(arg1);
+      $T2._as(arg2);
       try {
         if (B.C__RootZone === $.Zone__current) {
           f.call$2(arg1, arg2);
           return;
         }
-        A._rootRunBinary(null, null, this, f, arg1, arg2, type$.void, T1, T2);
+        A._rootRunBinary(null, null, this, f, arg1, arg2, type$.void, $T1, $T2);
       } catch (exception) {
         e = A.unwrapException(exception);
         s = A.getTraceFromException(exception);
-        A._rootHandleError(type$.Object._as(e), type$.StackTrace._as(s));
+        A._rootHandleError(A._asObject(e), type$.StackTrace._as(s));
       }
     },
     bindCallback$1$1(f, $R) {
@@ -11132,13 +10670,13 @@
         return f.call$1(arg);
       return A._rootRunUnary(null, null, this, f, arg, $R, $T);
     },
-    runBinary$3$3(f, arg1, arg2, $R, T1, T2) {
-      $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
-      T1._as(arg1);
-      T2._as(arg2);
+    runBinary$3$3(f, arg1, arg2, $R, $T1, $T2) {
+      $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f);
+      $T1._as(arg1);
+      $T2._as(arg2);
       if ($.Zone__current === B.C__RootZone)
         return f.call$2(arg1, arg2);
-      return A._rootRunBinary(null, null, this, f, arg1, arg2, $R, T1, T2);
+      return A._rootRunBinary(null, null, this, f, arg1, arg2, $R, $T1, $T2);
     },
     registerCallback$1$1(f, $R) {
       return $R._eval$1("0()")._as(f);
@@ -11146,8 +10684,8 @@
     registerUnaryCallback$2$1(f, $R, $T) {
       return $R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
     },
-    registerBinaryCallback$3$1(f, $R, T1, T2) {
-      return $R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
+    registerBinaryCallback$3$1(f, $R, $T1, $T2) {
+      return $R._eval$1("@<0>")._bind$1($T1)._bind$1($T2)._eval$1("1(2,3)")._as(f);
     },
     errorCallback$2(error, stackTrace) {
       return null;
@@ -11206,11 +10744,19 @@
         if (e === error)
           t2._processUncaughtError$3(zone, error, stackTrace);
         else
-          t2._processUncaughtError$3(zone, type$.Object._as(e), t1._as(s));
+          t2._processUncaughtError$3(zone, A._asObject(e), t1._as(s));
       }
     },
-    $signature: 35
+    $signature: 24
   };
+  A._ZoneDelegate.prototype = {$isZoneDelegate: 1};
+  A._rootHandleError_closure.prototype = {
+    call$0() {
+      A.Error_throwWithStackTrace(this.error, this.stackTrace);
+    },
+    $signature: 0
+  };
+  A._ZoneSpecification.prototype = {$isZoneSpecification: 1};
   A._HashMap.prototype = {
     get$length(_) {
       return this._collection$_length;
@@ -11428,17 +10974,14 @@
       if (keys !== t1._keys)
         throw A.wrapException(A.ConcurrentModificationError$(t1));
       else if (offset >= keys.length) {
-        _this.set$_collection$_current(null);
+        _this._collection$_current = null;
         return false;
       } else {
-        _this.set$_collection$_current(keys[offset]);
+        _this._collection$_current = keys[offset];
         _this._offset = offset + 1;
         return true;
       }
     },
-    set$_collection$_current(_current) {
-      this._collection$_current = this.$ti._eval$1("1?")._as(_current);
-    },
     $isIterator: 1
   };
   A._LinkedHashSet.prototype = {
@@ -11599,17 +11142,14 @@
       if (_this._collection$_modifications !== t1._collection$_modifications)
         throw A.wrapException(A.ConcurrentModificationError$(t1));
       else if (cell == null) {
-        _this.set$_collection$_current(null);
+        _this._collection$_current = null;
         return false;
       } else {
-        _this.set$_collection$_current(_this.$ti._eval$1("1?")._as(cell._element));
+        _this._collection$_current = _this.$ti._eval$1("1?")._as(cell._element);
         _this._collection$_cell = cell._collection$_next;
         return true;
       }
     },
-    set$_collection$_current(_current) {
-      this._collection$_current = this.$ti._eval$1("1?")._as(_current);
-    },
     $isIterator: 1
   };
   A.ListBase.prototype = {
@@ -11640,9 +11180,6 @@
     take$1(receiver, count) {
       return A.SubListIterable$(receiver, 0, A.checkNotNullable(count, "count", type$.int), A.instanceType(receiver)._eval$1("ListBase.E"));
     },
-    cast$1$0(receiver, $R) {
-      return new A.CastList(receiver, A.instanceType(receiver)._eval$1("@<ListBase.E>")._bind$1($R)._eval$1("CastList<1,2>"));
-    },
     fillRange$3(receiver, start, end, fill) {
       var i;
       A.instanceType(receiver)._eval$1("ListBase.E?")._as(fill);
@@ -11650,6 +11187,31 @@
       for (i = start; i < end; ++i)
         this.$indexSet(receiver, i, fill);
     },
+    setRange$4(receiver, start, end, iterable, skipCount) {
+      var $length, otherStart, otherList, t1, i;
+      A.instanceType(receiver)._eval$1("Iterable<ListBase.E>")._as(iterable);
+      A.RangeError_checkValidRange(start, end, this.get$length(receiver));
+      $length = end - start;
+      if ($length === 0)
+        return;
+      A.RangeError_checkNotNegative(skipCount, "skipCount");
+      if (type$.List_dynamic._is(iterable)) {
+        otherStart = skipCount;
+        otherList = iterable;
+      } else {
+        otherList = J.skip$1$ax(iterable, skipCount).toList$1$growable(0, false);
+        otherStart = 0;
+      }
+      t1 = J.getInterceptor$asx(otherList);
+      if (otherStart + $length > t1.get$length(otherList))
+        throw A.wrapException(A.IterableElementError_tooFew());
+      if (otherStart < start)
+        for (i = $length - 1; i >= 0; --i)
+          this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i));
+      else
+        for (i = 0; i < $length; ++i)
+          this.$indexSet(receiver, start + i, t1.$index(otherList, otherStart + i));
+    },
     toString$0(receiver) {
       return A.Iterable_iterableToFullString(receiver, "[", "]");
     },
@@ -11693,16 +11255,15 @@
       t1.first = false;
       t1 = this.result;
       t2 = A.S(k);
-      t2 = t1._contents += t2;
-      t1._contents = t2 + ": ";
+      t1._contents = (t1._contents += t2) + ": ";
       t2 = A.S(v);
       t1._contents += t2;
     },
-    $signature: 14
+    $signature: 13
   };
   A._UnmodifiableMapMixin.prototype = {
     $indexSet(_, key, value) {
-      var t1 = A._instanceType(this);
+      var t1 = this.$ti;
       t1._precomputed1._as(key);
       t1._rest[1]._as(value);
       throw A.wrapException(A.UnsupportedError$("Cannot modify unmodifiable map"));
@@ -11713,14 +11274,14 @@
       return this._collection$_map.$index(0, key);
     },
     $indexSet(_, key, value) {
-      var t1 = A._instanceType(this);
+      var t1 = this.$ti;
       this._collection$_map.$indexSet(0, t1._precomputed1._as(key), t1._rest[1]._as(value));
     },
     containsKey$1(key) {
       return this._collection$_map.containsKey$1(key);
     },
     forEach$1(_, action) {
-      this._collection$_map.forEach$1(0, A._instanceType(this)._eval$1("~(1,2)")._as(action));
+      this._collection$_map.forEach$1(0, this.$ti._eval$1("~(1,2)")._as(action));
     },
     get$isEmpty(_) {
       var t1 = this._collection$_map;
@@ -11800,7 +11361,7 @@
     get$keys() {
       if (this._processed == null) {
         var t1 = this._data;
-        return new A.LinkedHashMapKeyIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeyIterable<1>"));
+        return new A.LinkedHashMapKeysIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapKeysIterable<1>"));
       }
       return new A._JsonMapKeyIterable(this);
     },
@@ -11912,7 +11473,7 @@
       }
       return null;
     },
-    $signature: 15
+    $signature: 14
   };
   A._Utf8Decoder__decoderNonfatal_closure.prototype = {
     call$0() {
@@ -11924,7 +11485,7 @@
       }
       return null;
     },
-    $signature: 15
+    $signature: 14
   };
   A.AsciiCodec.prototype = {
     encode$1(source) {
@@ -12034,7 +11595,7 @@
           endLength = B.JSInt_methods.$mod(t2 - 1, 4) + 1;
           if (endLength === 1)
             throw A.wrapException(A.FormatException$(_s31_, source, end));
-          for (; endLength < 4;) {
+          while (endLength < 4) {
             t1 += "=";
             buffer._contents = t1;
             ++endLength;
@@ -12293,7 +11854,7 @@
       B.JSArray_methods.$indexSet(t1, t2.i++, key);
       B.JSArray_methods.$indexSet(t1, t2.i++, value);
     },
-    $signature: 14
+    $signature: 13
   };
   A._JsonStringStringifier.prototype = {
     get$_partialResult() {
@@ -12520,8 +12081,8 @@
         return A.ioore(bytes, start);
       byte = bytes[start];
       $label0$0:
-        for (t2 = _this.allowMalformed; true;) {
-          for (; true; i = i0) {
+        for (t2 = _this.allowMalformed;;) {
+          for (;; i = i0) {
             if (!(byte >= 0 && byte < 256))
               return A.ioore(_s256_, byte);
             type = _s256_.charCodeAt(byte) & 31;
@@ -12551,8 +12112,7 @@
                     break;
                   default:
                     t3 = A.Primitives_stringFromCharCode(_65533);
-                    t3 = buffer._contents += t3;
-                    buffer._contents = t3 + A.Primitives_stringFromCharCode(_65533);
+                    buffer._contents = (buffer._contents += t3) + t3;
                     break;
                 }
               else {
@@ -12574,7 +12134,7 @@
             return A.ioore(bytes, i);
           byte = bytes[i];
           if (byte < 128) {
-            while (true) {
+            for (;;) {
               if (!(i0 < end)) {
                 markEnd = end;
                 break;
@@ -12622,22 +12182,6 @@
       return t1.charCodeAt(0) == 0 ? t1 : t1;
     }
   };
-  A.NoSuchMethodError_toString_closure.prototype = {
-    call$2(key, value) {
-      var t1, t2, t3;
-      type$.Symbol._as(key);
-      t1 = this.sb;
-      t2 = this._box_0;
-      t3 = t1._contents += t2.comma;
-      t3 += key._name;
-      t1._contents = t3;
-      t1._contents = t3 + ": ";
-      t3 = A.Error_safeToString(value);
-      t1._contents += t3;
-      t2.comma = ", ";
-    },
-    $signature: 39
-  };
   A.DateTime.prototype = {
     $eq(_, other) {
       var t1;
@@ -12764,25 +12308,6 @@
       return this.length;
     }
   };
-  A.NoSuchMethodError.prototype = {
-    toString$0(_) {
-      var $arguments, t1, _i, t2, t3, argument, receiverText, actualParameters, _this = this, _box_0 = {},
-        sb = new A.StringBuffer("");
-      _box_0.comma = "";
-      $arguments = _this._core$_arguments;
-      for (t1 = $arguments.length, _i = 0, t2 = "", t3 = ""; _i < t1; ++_i, t3 = ", ") {
-        argument = $arguments[_i];
-        sb._contents = t2 + t3;
-        t2 = A.Error_safeToString(argument);
-        t2 = sb._contents += t2;
-        _box_0.comma = ", ";
-      }
-      _this._namedArguments.forEach$1(0, new A.NoSuchMethodError_toString_closure(_box_0, sb));
-      receiverText = A.Error_safeToString(_this._core$_receiver);
-      actualParameters = sb.toString$0(0);
-      return "NoSuchMethodError: method not found: '" + _this._core$_memberName._name + "'\nReceiver: " + receiverText + "\nArguments: [" + actualParameters + "]";
-    }
-  };
   A.UnsupportedError.prototype = {
     toString$0(_) {
       return "Unsupported operation: " + this.message;
@@ -12903,15 +12428,20 @@
     $isException: 1
   };
   A.Iterable.prototype = {
-    cast$1$0(_, $R) {
-      return A.CastIterable_CastIterable(this, A._instanceType(this)._eval$1("Iterable.E"), $R);
-    },
     map$1$1(_, toElement, $T) {
       var t1 = A._instanceType(this);
       return A.MappedIterable_MappedIterable(this, t1._bind$1($T)._eval$1("1(Iterable.E)")._as(toElement), t1._eval$1("Iterable.E"), $T);
     },
     toList$1$growable(_, growable) {
-      return A.List_List$of(this, growable, A._instanceType(this)._eval$1("Iterable.E"));
+      var t1 = A._instanceType(this)._eval$1("Iterable.E");
+      if (growable)
+        t1 = A.List_List$_of(this, t1);
+      else {
+        t1 = A.List_List$_of(this, t1);
+        t1.$flags = 1;
+        t1 = t1;
+      }
+      return t1;
     },
     toList$0(_) {
       return this.toList$1$growable(0, true);
@@ -12988,9 +12518,6 @@
     toString$0(_) {
       return "Instance of '" + A.Primitives_objectTypeName(this) + "'";
     },
-    noSuchMethod$1(_, invocation) {
-      throw A.wrapException(A.NoSuchMethodError_NoSuchMethodError$withInvocation(this, type$.Invocation._as(invocation)));
-    },
     get$runtimeType(_) {
       return A.getRuntimeTypeOfDartObject(this);
     },
@@ -13039,31 +12566,13 @@
       }
       return map;
     },
-    $signature: 23
-  };
-  A.Uri__parseIPv4Address_error.prototype = {
-    call$2(msg, position) {
-      throw A.wrapException(A.FormatException$("Illegal IPv4 address, " + msg, this.host, position));
-    },
-    $signature: 44
+    $signature: 22
   };
   A.Uri_parseIPv6Address_error.prototype = {
     call$2(msg, position) {
       throw A.wrapException(A.FormatException$("Illegal IPv6 address, " + msg, this.host, position));
     },
-    $signature: 58
-  };
-  A.Uri_parseIPv6Address_parseHex.prototype = {
-    call$2(start, end) {
-      var value;
-      if (end - start > 4)
-        this.error.call$2("an IPv6 part can only contain a maximum of 4 hex digits", start);
-      value = A.int_parse(B.JSString_methods.substring$2(this.host, start, end), 16);
-      if (value < 0 || value > 65535)
-        this.error.call$2("each part must be in the range of `0x0..0xFFFF`", start);
-      return value;
-    },
-    $signature: 59
+    $signature: 32
   };
   A._Uri.prototype = {
     get$_text() {
@@ -13071,7 +12580,7 @@
         value = _this.___Uri__text_FI;
       if (value === $) {
         t1 = _this.scheme;
-        t2 = t1.length !== 0 ? "" + t1 + ":" : "";
+        t2 = t1.length !== 0 ? t1 + ":" : "";
         t3 = _this._host;
         t4 = t3 == null;
         if (!t4 || t1 === "file") {
@@ -13093,7 +12602,6 @@
         t2 = _this._fragment;
         if (t2 != null)
           t1 = t1 + "#" + t2;
-        value !== $ && A.throwLateFieldADI("_text");
         value = _this.___Uri__text_FI = t1.charCodeAt(0) == 0 ? t1 : t1;
       }
       return value;
@@ -13114,8 +12622,7 @@
           pathToSplit = B.JSString_methods.substring$1(pathToSplit, 1);
         result = pathToSplit.length === 0 ? B.List_empty : A.List_List$unmodifiable(new A.MappedListIterable(A._setArrayType(pathToSplit.split("/"), type$.JSArray_String), type$.dynamic_Function_String._as(A.core_Uri_decodeComponent$closure()), type$.MappedListIterable_String_dynamic), type$.String);
         _this.___Uri_pathSegments_FI !== $ && A.throwLateFieldADI("pathSegments");
-        _this.set$___Uri_pathSegments_FI(result);
-        value = result;
+        value = _this.___Uri_pathSegments_FI = result;
       }
       return value;
     },
@@ -13131,14 +12638,13 @@
       return value;
     },
     get$queryParameters() {
-      var t1, result, _this = this,
+      var t1, _this = this,
         value = _this.___Uri_queryParameters_FI;
       if (value === $) {
         t1 = _this._query;
-        result = new A.UnmodifiableMapView(A.Uri_splitQueryString(t1 == null ? "" : t1), type$.UnmodifiableMapView_String_String);
+        t1 = A.Uri_splitQueryString(t1 == null ? "" : t1);
         _this.___Uri_queryParameters_FI !== $ && A.throwLateFieldADI("queryParameters");
-        _this.set$___Uri_queryParameters_FI(result);
-        value = result;
+        value = _this.___Uri_queryParameters_FI = new A.UnmodifiableMapView(t1, type$.UnmodifiableMapView_String_String);
       }
       return value;
     },
@@ -13149,7 +12655,7 @@
       var host = this._host;
       if (host == null)
         return "";
-      if (B.JSString_methods.startsWith$1(host, "["))
+      if (B.JSString_methods.startsWith$1(host, "[") && !B.JSString_methods.startsWith$2(host, "v", 1))
         return B.JSString_methods.substring$2(host, 1, host.length - 1);
       return host;
     },
@@ -13206,7 +12712,7 @@
       }
       baseEnd = B.JSString_methods.lastIndexOf$1(base, "/");
       t1 = base.length;
-      while (true) {
+      for (;;) {
         if (!(baseEnd > 0 && backCount > 0))
           break;
         newEnd = B.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1);
@@ -13314,7 +12820,7 @@
         A.throwExpression(A.UnsupportedError$(string$.Cannotn));
       pathSegments = _this.get$pathSegments();
       A._Uri__checkNonWindowsPathReservedCharacters(pathSegments, false);
-      t1 = A.StringBuffer__writeAll(B.JSString_methods.startsWith$1(_this.path, "/") ? "" + "/" : "", pathSegments, "/");
+      t1 = A.StringBuffer__writeAll(B.JSString_methods.startsWith$1(_this.path, "/") ? "/" : "", pathSegments, "/");
       t1 = t1.charCodeAt(0) == 0 ? t1 : t1;
       return t1;
     },
@@ -13352,12 +12858,6 @@
                   }
       return t1;
     },
-    set$___Uri_pathSegments_FI(___Uri_pathSegments_FI) {
-      this.___Uri_pathSegments_FI = type$.List_String._as(___Uri_pathSegments_FI);
-    },
-    set$___Uri_queryParameters_FI(___Uri_queryParameters_FI) {
-      this.___Uri_queryParameters_FI = type$.Map_String_String._as(___Uri_queryParameters_FI);
-    },
     $isUri: 1,
     get$scheme() {
       return this.scheme;
@@ -13368,9 +12868,9 @@
   };
   A._Uri__makePath_closure.prototype = {
     call$1(s) {
-      return A._Uri__uriEncode(B.List_M2I0, A._asString(s), B.C_Utf8Codec, false);
+      return A._Uri__uriEncode(64, A._asString(s), B.C_Utf8Codec, false);
     },
-    $signature: 16
+    $signature: 15
   };
   A.UriData.prototype = {
     get$uri() {
@@ -13385,11 +12885,11 @@
         queryIndex = B.JSString_methods.indexOf$2(t2, "?", t1);
         end = t2.length;
         if (queryIndex >= 0) {
-          query = A._Uri__normalizeOrSubstring(t2, queryIndex + 1, end, B.List_42A, false, false);
+          query = A._Uri__normalizeOrSubstring(t2, queryIndex + 1, end, 256, false, false);
           end = queryIndex;
         } else
           query = _null;
-        t1 = _this._uriCache = new A._DataUri("data", "", _null, _null, A._Uri__normalizeOrSubstring(t2, t1, end, B.List_M2I, false, false), query, _null);
+        t1 = _this._uriCache = new A._DataUri("data", "", _null, _null, A._Uri__normalizeOrSubstring(t2, t1, end, 128, false, false), query, _null);
       }
       return t1;
     },
@@ -13402,51 +12902,6 @@
       return t1[0] === -1 ? "data:" + t2 : t2;
     }
   };
-  A._createTables_build.prototype = {
-    call$2(state, defaultTransition) {
-      var t1 = this.tables;
-      if (!(state < t1.length))
-        return A.ioore(t1, state);
-      t1 = t1[state];
-      B.NativeUint8List_methods.fillRange$3(t1, 0, 96, defaultTransition);
-      return t1;
-    },
-    $signature: 25
-  };
-  A._createTables_setChars.prototype = {
-    call$3(target, chars, transition) {
-      var t1, t2, i, t3;
-      for (t1 = chars.length, t2 = target.$flags | 0, i = 0; i < t1; ++i) {
-        t3 = chars.charCodeAt(i) ^ 96;
-        t2 & 2 && A.throwUnsupportedOperation(target);
-        if (!(t3 < 96))
-          return A.ioore(target, t3);
-        target[t3] = transition;
-      }
-    },
-    $signature: 17
-  };
-  A._createTables_setRange.prototype = {
-    call$3(target, range, transition) {
-      var i, n, t2,
-        t1 = range.length;
-      if (0 >= t1)
-        return A.ioore(range, 0);
-      i = range.charCodeAt(0);
-      if (1 >= t1)
-        return A.ioore(range, 1);
-      n = range.charCodeAt(1);
-      t1 = target.$flags | 0;
-      for (; i <= n; ++i) {
-        t2 = (i ^ 96) >>> 0;
-        t1 & 2 && A.throwUnsupportedOperation(target);
-        if (!(t2 < 96))
-          return A.ioore(target, t2);
-        target[t2] = transition;
-      }
-    },
-    $signature: 17
-  };
   A._SimpleUri.prototype = {
     get$hasAuthority() {
       return this._hostStart > 0;
@@ -13498,7 +12953,7 @@
     get$port() {
       var t1, _this = this;
       if (_this.get$hasPort())
-        return A.int_parse(B.JSString_methods.substring$2(_this._uri, _this._portStart + 1, _this._pathStart), null);
+        return A.int_parse(B.JSString_methods.substring$2(_this._uri, _this._portStart + 1, _this._pathStart));
       t1 = _this._schemeEnd;
       if (t1 === 4 && B.JSString_methods.startsWith$1(_this._uri, "http"))
         return 80;
@@ -13624,7 +13079,7 @@
       baseStart = base._pathStart;
       baseEnd = base._queryStart;
       if (baseStart === baseEnd && base._hostStart > 0) {
-        for (; B.JSString_methods.startsWith$2(t2, "../", refStart);)
+        while (B.JSString_methods.startsWith$2(t2, "../", refStart))
           refStart += 3;
         delta = baseStart - refStart + 1;
         return new A._SimpleUri(B.JSString_methods.substring$2(base._uri, 0, baseStart) + "/" + B.JSString_methods.substring$1(t2, refStart), base._schemeEnd, base._hostStart, base._portStart, baseStart, t1 + delta, ref._fragmentStart + delta, base._schemeCache);
@@ -13637,7 +13092,7 @@
         for (baseStart0 = baseStart; B.JSString_methods.startsWith$2(baseUri, "../", baseStart0);)
           baseStart0 += 3;
       backCount = 0;
-      while (true) {
+      for (;;) {
         refStart0 = refStart + 3;
         if (!(refStart0 <= t1 && B.JSString_methods.startsWith$2(t2, "../", refStart)))
           break;
@@ -13716,6 +13171,12 @@
     $isUri: 1
   };
   A._DataUri.prototype = {};
+  A.NullRejectionException.prototype = {
+    toString$0(_) {
+      return "Promise was rejected with a value of `" + (this.isUndefined ? "undefined" : "null") + "`.";
+    },
+    $isException: 1
+  };
   A.jsify__convert.prototype = {
     call$1(o) {
       var t1, convertedMap, key, convertedList;
@@ -13724,7 +13185,7 @@
       t1 = this._convertedObjects;
       if (t1.containsKey$1(o))
         return t1.$index(0, o);
-      if (type$.Map_of_nullable_Object_and_nullable_Object._is(o)) {
+      if (type$.Map_dynamic_dynamic._is(o)) {
         convertedMap = {};
         t1.$indexSet(0, o, convertedMap);
         for (t1 = o.get$keys(), t1 = t1.get$iterator(t1); t1.moveNext$0();) {
@@ -13732,7 +13193,7 @@
           convertedMap[key] = this.call$1(o.$index(0, key));
         }
         return convertedMap;
-      } else if (type$.Iterable_nullable_Object._is(o)) {
+      } else if (type$.Iterable_dynamic._is(o)) {
         convertedList = [];
         t1.$indexSet(0, o, convertedList);
         B.JSArray_methods.addAll$1(convertedList, J.map$1$1$ax(o, this, type$.dynamic));
@@ -13740,13 +13201,13 @@
       } else
         return o;
     },
-    $signature: 18
+    $signature: 16
   };
   A.promiseToFuture_closure.prototype = {
     call$1(r) {
       return this.completer.complete$1(this.T._eval$1("0/?")._as(r));
     },
-    $signature: 5
+    $signature: 6
   };
   A.promiseToFuture_closure0.prototype = {
     call$1(e) {
@@ -13754,7 +13215,7 @@
         return this.completer.completeError$1(new A.NullRejectionException(e === undefined));
       return this.completer.completeError$1(e);
     },
-    $signature: 5
+    $signature: 6
   };
   A.dartify_convert.prototype = {
     call$1(o) {
@@ -13774,7 +13235,7 @@
       }
       if (o instanceof RegExp)
         throw A.wrapException(A.ArgumentError$("structured clone of RegExp", null));
-      if (typeof Promise != "undefined" && o instanceof Promise)
+      if (o instanceof Promise)
         return A.promiseToFuture(o, type$.nullable_Object);
       proto = Object.getPrototypeOf(o);
       if (proto === Object.prototype || proto === null) {
@@ -13806,13 +13267,7 @@
       }
       return o;
     },
-    $signature: 18
-  };
-  A.NullRejectionException.prototype = {
-    toString$0(_) {
-      return "Promise was rejected with a value of `" + (this.isUndefined ? "undefined" : "null") + "`.";
-    },
-    $isException: 1
+    $signature: 16
   };
   A.NullStreamSink.prototype = {
     addStream$1(stream) {
@@ -13877,10 +13332,10 @@
           parsed.root = t4;
           if (t2.needsSeparator$1(t4))
             B.JSArray_methods.$indexSet(parsed.separators, 0, t2.get$separator());
-          t4 = "" + parsed.toString$0(0);
+          t4 = parsed.toString$0(0);
         } else if (t2.rootLength$1(t5) > 0) {
           isAbsoluteAndNotRootRelative = !t2.isRootRelative$1(t5);
-          t4 = "" + t5;
+          t4 = t5;
         } else {
           t6 = t5.length;
           if (t6 !== 0) {
@@ -13903,7 +13358,8 @@
         t1 = parsed.parts,
         t2 = A._arrayInstanceType(t1),
         t3 = t2._eval$1("WhereIterable<1>");
-      parsed.set$parts(A.List_List$of(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Context_split_closure()), t3), true, t3._eval$1("Iterable.E")));
+      t1 = A.List_List$_of(new A.WhereIterable(t1, t2._eval$1("bool(1)")._as(new A.Context_split_closure()), t3), t3._eval$1("Iterable.E"));
+      parsed.set$parts(t1);
       t1 = parsed.root;
       if (t1 != null)
         B.JSArray_methods.insert$2(parsed.parts, 0, t1);
@@ -13918,7 +13374,7 @@
       return parsed.toString$0(0);
     },
     _needsNormalization$1(path) {
-      var t2, i, start, previous, t3, previousPrevious, codeUnit, t4,
+      var t2, i, start, previous, previousPrevious, codeUnit, t3,
         t1 = this.style,
         root = t1.rootLength$1(path);
       if (root !== 0) {
@@ -13935,20 +13391,20 @@
         start = 0;
         previous = null;
       }
-      for (t2 = new A.CodeUnits(path)._string, t3 = t2.length, i = start, previousPrevious = null; i < t3; ++i, previousPrevious = previous, previous = codeUnit) {
+      for (t2 = path.length, i = start, previousPrevious = null; i < t2; ++i, previousPrevious = previous, previous = codeUnit) {
         if (!(i >= 0))
-          return A.ioore(t2, i);
-        codeUnit = t2.charCodeAt(i);
+          return A.ioore(path, i);
+        codeUnit = path.charCodeAt(i);
         if (t1.isSeparator$1(codeUnit)) {
           if (t1 === $.$get$Style_windows() && codeUnit === 47)
             return true;
           if (previous != null && t1.isSeparator$1(previous))
             return true;
           if (previous === 46)
-            t4 = previousPrevious == null || previousPrevious === 46 || t1.isSeparator$1(previousPrevious);
+            t3 = previousPrevious == null || previousPrevious === 46 || t1.isSeparator$1(previousPrevious);
           else
-            t4 = false;
-          if (t4)
+            t3 = false;
+          if (t3)
             return true;
         }
       }
@@ -14001,7 +13457,7 @@
         t2 = false;
       if (t2)
         return pathParsed.toString$0(0);
-      while (true) {
+      for (;;) {
         t2 = fromParsed.parts;
         t3 = t2.length;
         t4 = false;
@@ -14045,7 +13501,7 @@
       t2 = t1.length;
       if (t2 === 0)
         return ".";
-      if (t2 > 1 && J.$eq$(B.JSArray_methods.get$last(t1), ".")) {
+      if (t2 > 1 && B.JSArray_methods.get$last(t1) === ".") {
         B.JSArray_methods.removeLast$0(pathParsed.parts);
         t1 = pathParsed.separators;
         if (0 >= t1.length)
@@ -14099,7 +13555,7 @@
       A._asStringQ(arg);
       return arg == null ? "null" : '"' + arg + '"';
     },
-    $signature: 30
+    $signature: 23
   };
   A.InternalStyle.prototype = {
     getRoot$1(path) {
@@ -14136,16 +13592,16 @@
     get$hasTrailingSeparator() {
       var t1 = this.parts;
       if (t1.length !== 0)
-        t1 = J.$eq$(B.JSArray_methods.get$last(t1), "") || !J.$eq$(B.JSArray_methods.get$last(this.separators), "");
+        t1 = B.JSArray_methods.get$last(t1) === "" || B.JSArray_methods.get$last(this.separators) !== "";
       else
         t1 = false;
       return t1;
     },
     removeTrailingSeparators$0() {
       var t1, t2, _this = this;
-      while (true) {
+      for (;;) {
         t1 = _this.parts;
-        if (!(t1.length !== 0 && J.$eq$(B.JSArray_methods.get$last(t1), "")))
+        if (!(t1.length !== 0 && B.JSArray_methods.get$last(t1) === ""))
           break;
         B.JSArray_methods.removeLast$0(_this.parts);
         t1 = _this.separators;
@@ -14179,36 +13635,31 @@
         B.JSArray_methods.insertAll$2(newParts, 0, A.List_List$filled(leadingDoubles, "..", false, type$.String));
       if (newParts.length === 0 && _this.root == null)
         B.JSArray_methods.add$1(newParts, ".");
-      _this.set$parts(newParts);
+      _this.parts = newParts;
       t1 = _this.style;
-      _this.set$separators(A.List_List$filled(newParts.length + 1, t1.get$separator(), true, type$.String));
+      _this.separators = A.List_List$filled(newParts.length + 1, t1.get$separator(), true, type$.String);
       t2 = _this.root;
       if (t2 == null || newParts.length === 0 || !t1.needsSeparator$1(t2))
         B.JSArray_methods.$indexSet(_this.separators, 0, "");
       t2 = _this.root;
-      if (t2 != null && t1 === $.$get$Style_windows()) {
-        t2.toString;
+      if (t2 != null && t1 === $.$get$Style_windows())
         _this.root = A.stringReplaceAllUnchecked(t2, "/", "\\");
-      }
       _this.removeTrailingSeparators$0();
     },
     toString$0(_) {
       var t2, t3, t4, t5, i,
         t1 = this.root;
-      t1 = t1 != null ? "" + t1 : "";
+      t1 = t1 != null ? t1 : "";
       for (t2 = this.parts, t3 = t2.length, t4 = this.separators, t5 = t4.length, i = 0; i < t3; ++i) {
         if (!(i < t5))
           return A.ioore(t4, i);
         t1 = t1 + t4[i] + t2[i];
       }
-      t1 += A.S(B.JSArray_methods.get$last(t4));
+      t1 += B.JSArray_methods.get$last(t4);
       return t1.charCodeAt(0) == 0 ? t1 : t1;
     },
     set$parts(parts) {
       this.parts = type$.List_String._as(parts);
-    },
-    set$separators(separators) {
-      this.separators = type$.List_String._as(separators);
     }
   };
   A.PathException.prototype = {
@@ -14508,7 +13959,7 @@
     toString$0(_) {
       var t1 = this.traces,
         t2 = A._arrayInstanceType(t1);
-      return new A.MappedListIterable(t1, t2._eval$1("String(1)")._as(new A.Chain_toString_closure(new A.MappedListIterable(t1, t2._eval$1("int(1)")._as(new A.Chain_toString_closure0()), t2._eval$1("MappedListIterable<1,int>")).fold$1$2(0, 0, B.CONSTANT, type$.int))), t2._eval$1("MappedListIterable<1,String>")).join$1(0, string$.______);
+      return new A.MappedListIterable(t1, t2._eval$1("String(1)")._as(new A.Chain_toString_closure(new A.MappedListIterable(t1, t2._eval$1("int(1)")._as(new A.Chain_toString_closure0()), t2._eval$1("MappedListIterable<1,int>")).fold$1$2(0, 0, B.CONSTANT, type$.int))), t2._eval$1("MappedListIterable<1,String>")).join$1(0, string$.x3d_____);
     },
     $isStackTrace: 1
   };
@@ -14518,11 +13969,23 @@
     },
     $signature: 1
   };
+  A.Chain_Chain$parse_closure0.prototype = {
+    call$1(trace) {
+      return A.Trace$parseVM(A._asString(trace));
+    },
+    $signature: 17
+  };
+  A.Chain_Chain$parse_closure1.prototype = {
+    call$1(trace) {
+      return A.Trace$parseFriendly(A._asString(trace));
+    },
+    $signature: 17
+  };
   A.Chain_toTrace_closure.prototype = {
     call$1(trace) {
       return type$.Trace._as(trace).get$frames();
     },
-    $signature: 31
+    $signature: 25
   };
   A.Chain_toString_closure0.prototype = {
     call$1(trace) {
@@ -14530,13 +13993,13 @@
         t2 = A._arrayInstanceType(t1);
       return new A.MappedListIterable(t1, t2._eval$1("int(1)")._as(new A.Chain_toString__closure0()), t2._eval$1("MappedListIterable<1,int>")).fold$1$2(0, 0, B.CONSTANT, type$.int);
     },
-    $signature: 32
+    $signature: 26
   };
   A.Chain_toString__closure0.prototype = {
     call$1(frame) {
       return type$.Frame._as(frame).get$location().length;
     },
-    $signature: 19
+    $signature: 18
   };
   A.Chain_toString_closure.prototype = {
     call$1(trace) {
@@ -14544,14 +14007,14 @@
         t2 = A._arrayInstanceType(t1);
       return new A.MappedListIterable(t1, t2._eval$1("String(1)")._as(new A.Chain_toString__closure(this.longest)), t2._eval$1("MappedListIterable<1,String>")).join$0(0);
     },
-    $signature: 34
+    $signature: 28
   };
   A.Chain_toString__closure.prototype = {
     call$1(frame) {
       type$.Frame._as(frame);
       return B.JSString_methods.padRight$1(frame.get$location(), this.longest) + "  " + A.S(frame.get$member()) + "\n";
     },
-    $signature: 20
+    $signature: 19
   };
   A.Frame.prototype = {
     get$isCore() {
@@ -14628,59 +14091,43 @@
         return A.ioore(t1, 3);
       lineAndColumn = t1[3].split(":");
       t1 = lineAndColumn.length;
-      line = t1 > 1 ? A.int_parse(lineAndColumn[1], _null) : _null;
-      return new A.Frame(uri, line, t1 > 2 ? A.int_parse(lineAndColumn[2], _null) : _null, member);
+      line = t1 > 1 ? A.int_parse(lineAndColumn[1]) : _null;
+      return new A.Frame(uri, line, t1 > 2 ? A.int_parse(lineAndColumn[2]) : _null, member);
     },
     $signature: 4
   };
   A.Frame_Frame$parseV8_closure.prototype = {
     call$0() {
-      var member, uri, t2, functionOffset, t3, t4, _s4_ = "<fn>",
+      var t2, t3, t4, _s4_ = "<fn>",
         t1 = this.frame,
-        match = $.$get$_v8WasmFrame().firstMatch$1(t1);
-      if (match != null) {
-        member = match.namedGroup$1("member");
-        t1 = match.namedGroup$1("uri");
-        t1.toString;
-        uri = A.Frame__uriOrPathToUri(t1);
-        t1 = match.namedGroup$1("index");
-        t1.toString;
-        t2 = match.namedGroup$1("offset");
+        match = $.$get$_v8Frame().firstMatch$1(t1);
+      if (match == null)
+        return new A.UnparsedFrame(A._Uri__Uri(null, "unparsed", null, null), t1);
+      t1 = new A.Frame_Frame$parseV8_closure_parseLocation(t1);
+      t2 = match._match;
+      t3 = t2.length;
+      if (2 >= t3)
+        return A.ioore(t2, 2);
+      t4 = t2[2];
+      if (t4 != null) {
+        t3 = t4;
+        t3.toString;
+        t2 = t2[1];
         t2.toString;
-        functionOffset = A.int_parse(t2, 16);
-        if (!(member == null))
-          t1 = member;
-        return new A.Frame(uri, 1, functionOffset + 1, t1);
+        t2 = A.stringReplaceAllUnchecked(t2, "<anonymous>", _s4_);
+        t2 = A.stringReplaceAllUnchecked(t2, "Anonymous function", _s4_);
+        return t1.call$2(t3, A.stringReplaceAllUnchecked(t2, "(anonymous function)", _s4_));
+      } else {
+        if (3 >= t3)
+          return A.ioore(t2, 3);
+        t2 = t2[3];
+        t2.toString;
+        return t1.call$2(t2, _s4_);
       }
-      match = $.$get$_v8JsFrame().firstMatch$1(t1);
-      if (match != null) {
-        t1 = new A.Frame_Frame$parseV8_closure_parseJsLocation(t1);
-        t2 = match._match;
-        t3 = t2.length;
-        if (2 >= t3)
-          return A.ioore(t2, 2);
-        t4 = t2[2];
-        if (t4 != null) {
-          t3 = t4;
-          t3.toString;
-          t2 = t2[1];
-          t2.toString;
-          t2 = A.stringReplaceAllUnchecked(t2, "<anonymous>", _s4_);
-          t2 = A.stringReplaceAllUnchecked(t2, "Anonymous function", _s4_);
-          return t1.call$2(t3, A.stringReplaceAllUnchecked(t2, "(anonymous function)", _s4_));
-        } else {
-          if (3 >= t3)
-            return A.ioore(t2, 3);
-          t2 = t2[3];
-          t2.toString;
-          return t1.call$2(t2, _s4_);
-        }
-      }
-      return new A.UnparsedFrame(A._Uri__Uri(null, "unparsed", null, null), t1);
     },
     $signature: 4
   };
-  A.Frame_Frame$parseV8_closure_parseJsLocation.prototype = {
+  A.Frame_Frame$parseV8_closure_parseLocation.prototype = {
     call$2($location, member) {
       var t2, urlMatch, uri, line, columnMatch, _null = null,
         t1 = $.$get$_v8EvalLocation(),
@@ -14695,7 +14142,7 @@
       }
       if ($location === "native")
         return new A.Frame(A.Uri_parse("native"), _null, _null, member);
-      urlMatch = $.$get$_v8JsUrlLocation().firstMatch$1($location);
+      urlMatch = $.$get$_v8UrlLocation().firstMatch$1($location);
       if (urlMatch == null)
         return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), this.frame);
       t1 = urlMatch._match;
@@ -14708,13 +14155,13 @@
         return A.ioore(t1, 2);
       t2 = t1[2];
       t2.toString;
-      line = A.int_parse(t2, _null);
+      line = A.int_parse(t2);
       if (3 >= t1.length)
         return A.ioore(t1, 3);
       columnMatch = t1[3];
-      return new A.Frame(uri, line, columnMatch != null ? A.int_parse(columnMatch, _null) : _null, member);
+      return new A.Frame(uri, line, columnMatch != null ? A.int_parse(columnMatch) : _null, member);
     },
-    $signature: 37
+    $signature: 31
   };
   A.Frame_Frame$_parseFirefoxEval_closure.prototype = {
     call$0() {
@@ -14738,88 +14185,65 @@
         return A.ioore(t1, 3);
       t1 = t1[3];
       t1.toString;
-      line = A.int_parse(t1, _null);
+      line = A.int_parse(t1);
       return new A.Frame(uri, line, _null, member.length === 0 || member === "anonymous" ? "<fn>" : member);
     },
     $signature: 4
   };
   A.Frame_Frame$parseFirefox_closure.prototype = {
     call$0() {
-      var t2, t3, t4, uri, member, line, column, functionOffset, _null = null,
+      var t2, t3, t4, uri, member, line, column, _null = null,
         t1 = this.frame,
-        match = $.$get$_firefoxSafariJSFrame().firstMatch$1(t1);
-      if (match != null) {
-        t2 = match._match;
-        if (3 >= t2.length)
-          return A.ioore(t2, 3);
-        t3 = t2[3];
-        t4 = t3;
-        t4.toString;
-        if (B.JSString_methods.contains$1(t4, " line "))
-          return A.Frame_Frame$_parseFirefoxEval(t1);
-        t1 = t3;
+        match = $.$get$_firefoxSafariFrame().firstMatch$1(t1);
+      if (match == null)
+        return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), t1);
+      t2 = match._match;
+      if (3 >= t2.length)
+        return A.ioore(t2, 3);
+      t3 = t2[3];
+      t4 = t3;
+      t4.toString;
+      if (B.JSString_methods.contains$1(t4, " line "))
+        return A.Frame_Frame$_parseFirefoxEval(t1);
+      t1 = t3;
+      t1.toString;
+      uri = A.Frame__uriOrPathToUri(t1);
+      t1 = t2.length;
+      if (1 >= t1)
+        return A.ioore(t2, 1);
+      member = t2[1];
+      if (member != null) {
+        if (2 >= t1)
+          return A.ioore(t2, 2);
+        t1 = t2[2];
         t1.toString;
-        uri = A.Frame__uriOrPathToUri(t1);
-        t1 = t2.length;
-        if (1 >= t1)
-          return A.ioore(t2, 1);
-        member = t2[1];
-        if (member != null) {
-          if (2 >= t1)
-            return A.ioore(t2, 2);
-          t1 = t2[2];
-          t1.toString;
-          member += B.JSArray_methods.join$0(A.List_List$filled(B.JSString_methods.allMatches$1("/", t1).get$length(0), ".<fn>", false, type$.String));
-          if (member === "")
-            member = "<fn>";
-          member = B.JSString_methods.replaceFirst$2(member, $.$get$_initialDot(), "");
-        } else
+        member += B.JSArray_methods.join$0(A.List_List$filled(B.JSString_methods.allMatches$1("/", t1).get$length(0), ".<fn>", false, type$.String));
+        if (member === "")
           member = "<fn>";
-        if (4 >= t2.length)
-          return A.ioore(t2, 4);
-        t1 = t2[4];
-        if (t1 === "")
-          line = _null;
-        else {
-          t1 = t1;
-          t1.toString;
-          line = A.int_parse(t1, _null);
-        }
-        if (5 >= t2.length)
-          return A.ioore(t2, 5);
-        t1 = t2[5];
-        if (t1 == null || t1 === "")
-          column = _null;
-        else {
-          t1 = t1;
-          t1.toString;
-          column = A.int_parse(t1, _null);
-        }
-        return new A.Frame(uri, line, column, member);
-      }
-      match = $.$get$_firefoxWasmFrame().firstMatch$1(t1);
-      if (match != null) {
-        t1 = match.namedGroup$1("member");
+        member = B.JSString_methods.replaceFirst$2(member, $.$get$_initialDot(), "");
+      } else
+        member = "<fn>";
+      if (4 >= t2.length)
+        return A.ioore(t2, 4);
+      t1 = t2[4];
+      if (t1 === "")
+        line = _null;
+      else {
+        t1 = t1;
         t1.toString;
-        t2 = match.namedGroup$1("uri");
-        t2.toString;
-        uri = A.Frame__uriOrPathToUri(t2);
-        t2 = match.namedGroup$1("index");
-        t2.toString;
-        t3 = match.namedGroup$1("offset");
-        t3.toString;
-        functionOffset = A.int_parse(t3, 16);
-        if (!(t1.length !== 0))
-          t1 = t2;
-        return new A.Frame(uri, 1, functionOffset + 1, t1);
+        line = A.int_parse(t1);
       }
-      match = $.$get$_safariWasmFrame().firstMatch$1(t1);
-      if (match != null) {
-        t1 = match.namedGroup$1("member");
+      if (5 >= t2.length)
+        return A.ioore(t2, 5);
+      t1 = t2[5];
+      if (t1 == null || t1 === "")
+        column = _null;
+      else {
+        t1 = t1;
         t1.toString;
-        return new A.Frame(A._Uri__Uri(_null, "wasm code", _null, _null), _null, _null, t1);
+        column = A.int_parse(t1);
       }
-      return new A.UnparsedFrame(A._Uri__Uri(_null, "unparsed", _null, _null), t1);
+      return new A.Frame(uri, line, column, member);
     },
     $signature: 4
   };
@@ -14853,7 +14277,7 @@
       else {
         t2 = t2;
         t2.toString;
-        line = A.int_parse(t2, _null);
+        line = A.int_parse(t2);
       }
       if (3 >= t1.length)
         return A.ioore(t1, 3);
@@ -14863,7 +14287,7 @@
       else {
         t2 = t2;
         t2.toString;
-        column = A.int_parse(t2, _null);
+        column = A.int_parse(t2);
       }
       if (4 >= t1.length)
         return A.ioore(t1, 4);
@@ -14899,7 +14323,7 @@
     call$0() {
       return this.$this.get$_lazy_trace$_trace().get$terse();
     },
-    $signature: 21
+    $signature: 20
   };
   A.Trace.prototype = {
     get$terse() {
@@ -14916,14 +14340,15 @@
         t3 = t1.__internal$_current;
         if (t3 == null)
           t3 = t2._as(t3);
-        if (t3 instanceof A.UnparsedFrame || !A.boolConversionCheck(_box_0.predicate.call$1(t3)))
+        if (t3 instanceof A.UnparsedFrame || !_box_0.predicate.call$1(t3))
           B.JSArray_methods.add$1(newFrames, t3);
-        else if (newFrames.length === 0 || !A.boolConversionCheck(_box_0.predicate.call$1(B.JSArray_methods.get$last(newFrames))))
+        else if (newFrames.length === 0 || !_box_0.predicate.call$1(B.JSArray_methods.get$last(newFrames)))
           B.JSArray_methods.add$1(newFrames, new A.Frame(t3.get$uri(), t3.get$line(), t3.get$column(), t3.get$member()));
       }
-      t1 = type$.MappedListIterable_Frame_Frame;
-      newFrames = A.List_List$of(new A.MappedListIterable(newFrames, type$.Frame_Function_Frame._as(new A.Trace_foldFrames_closure0(_box_0)), t1), true, t1._eval$1("ListIterable.E"));
-      if (newFrames.length > 1 && A.boolConversionCheck(_box_0.predicate.call$1(B.JSArray_methods.get$first(newFrames))))
+      t1 = type$.Frame_Function_Frame._as(new A.Trace_foldFrames_closure0(_box_0));
+      t2 = type$.MappedListIterable_Frame_Frame;
+      newFrames = A.List_List$_of(new A.MappedListIterable(newFrames, t1, t2), t2._eval$1("ListIterable.E"));
+      if (newFrames.length > 1 && _box_0.predicate.call$1(B.JSArray_methods.get$first(newFrames)))
         B.JSArray_methods.removeAt$1(newFrames, 0);
       return A.Trace$(new A.ReversedListIterable(newFrames, A._arrayInstanceType(newFrames)._eval$1("ReversedListIterable<1>")), this.original._stackTrace);
     },
@@ -14941,7 +14366,7 @@
     call$0() {
       return A.Trace_Trace$parse(this.trace.toString$0(0));
     },
-    $signature: 21
+    $signature: 20
   };
   A.Trace__parseVM_closure.prototype = {
     call$1(line) {
@@ -14949,18 +14374,36 @@
     },
     $signature: 1
   };
+  A.Trace__parseVM_closure0.prototype = {
+    call$1(line) {
+      return A.Frame_Frame$parseVM(A._asString(line));
+    },
+    $signature: 5
+  };
   A.Trace$parseV8_closure.prototype = {
     call$1(line) {
       return !B.JSString_methods.startsWith$1(A._asString(line), $.$get$_v8TraceLine());
     },
     $signature: 1
   };
+  A.Trace$parseV8_closure0.prototype = {
+    call$1(line) {
+      return A.Frame_Frame$parseV8(A._asString(line));
+    },
+    $signature: 5
+  };
   A.Trace$parseJSCore_closure.prototype = {
     call$1(line) {
       return A._asString(line) !== "\tat ";
     },
     $signature: 1
   };
+  A.Trace$parseJSCore_closure0.prototype = {
+    call$1(line) {
+      return A.Frame_Frame$parseV8(A._asString(line));
+    },
+    $signature: 5
+  };
   A.Trace$parseFirefox_closure.prototype = {
     call$1(line) {
       A._asString(line);
@@ -14968,22 +14411,34 @@
     },
     $signature: 1
   };
+  A.Trace$parseFirefox_closure0.prototype = {
+    call$1(line) {
+      return A.Frame_Frame$parseFirefox(A._asString(line));
+    },
+    $signature: 5
+  };
   A.Trace$parseFriendly_closure.prototype = {
     call$1(line) {
       return !B.JSString_methods.startsWith$1(A._asString(line), "=====");
     },
     $signature: 1
   };
+  A.Trace$parseFriendly_closure0.prototype = {
+    call$1(line) {
+      return A.Frame_Frame$parseFriendly(A._asString(line));
+    },
+    $signature: 5
+  };
   A.Trace_terse_closure.prototype = {
     call$1(_) {
       return false;
     },
-    $signature: 22
+    $signature: 21
   };
   A.Trace_foldFrames_closure.prototype = {
     call$1(frame) {
       var t1;
-      if (A.boolConversionCheck(this.oldPredicate.call$1(frame)))
+      if (this.oldPredicate.call$1(frame))
         return true;
       if (frame.get$isCore())
         return true;
@@ -14995,25 +14450,25 @@
         return false;
       return frame.get$line() == null;
     },
-    $signature: 22
+    $signature: 21
   };
   A.Trace_foldFrames_closure0.prototype = {
     call$1(frame) {
       var t1, t2;
       type$.Frame._as(frame);
-      if (frame instanceof A.UnparsedFrame || !A.boolConversionCheck(this._box_0.predicate.call$1(frame)))
+      if (frame instanceof A.UnparsedFrame || !this._box_0.predicate.call$1(frame))
         return frame;
       t1 = frame.get$library();
       t2 = $.$get$_terseRegExp();
       return new A.Frame(A.Uri_parse(A.stringReplaceAllUnchecked(t1, t2, "")), null, null, frame.get$member());
     },
-    $signature: 60
+    $signature: 53
   };
   A.Trace_toString_closure0.prototype = {
     call$1(frame) {
       return type$.Frame._as(frame).get$location().length;
     },
-    $signature: 19
+    $signature: 18
   };
   A.Trace_toString_closure.prototype = {
     call$1(frame) {
@@ -15022,7 +14477,7 @@
         return frame.toString$0(0) + "\n";
       return B.JSString_methods.padRight$1(frame.get$location(), this.longest) + "  " + A.S(frame.get$member()) + "\n";
     },
-    $signature: 20
+    $signature: 19
   };
   A.UnparsedFrame.prototype = {
     toString$0(_) {
@@ -15060,10 +14515,10 @@
         t1 = _this.$ti,
         t2 = t1._eval$1("_GuaranteeSink<1>")._as(new A._GuaranteeSink(innerSink, _this, new A._AsyncCompleter(new A._Future($.Zone__current, type$._Future_dynamic), type$._AsyncCompleter_dynamic), true, $T._eval$1("_GuaranteeSink<0>")));
       _this.__GuaranteeChannel__sink_F !== $ && A.throwLateFieldAI("_sink");
-      _this.set$__GuaranteeChannel__sink_F(t2);
+      _this.__GuaranteeChannel__sink_F = t2;
       t1 = t1._eval$1("StreamController<1>")._as(A.StreamController_StreamController(null, new A.GuaranteeChannel_closure(_box_0, _this, $T), true, $T));
       _this.__GuaranteeChannel__streamController_F !== $ && A.throwLateFieldAI("_streamController");
-      _this.set$__GuaranteeChannel__streamController_F(t1);
+      _this.__GuaranteeChannel__streamController_F = t1;
     },
     _onSinkDisconnected$0() {
       var subscription, t1;
@@ -15074,15 +14529,6 @@
       t1 = this.__GuaranteeChannel__streamController_F;
       t1 === $ && A.throwLateFieldNI("_streamController");
       t1.close$0();
-    },
-    set$__GuaranteeChannel__sink_F(__GuaranteeChannel__sink_F) {
-      this.__GuaranteeChannel__sink_F = this.$ti._eval$1("_GuaranteeSink<1>")._as(__GuaranteeChannel__sink_F);
-    },
-    set$__GuaranteeChannel__streamController_F(__GuaranteeChannel__streamController_F) {
-      this.__GuaranteeChannel__streamController_F = this.$ti._eval$1("StreamController<1>")._as(__GuaranteeChannel__streamController_F);
-    },
-    set$_subscription(_subscription) {
-      this._subscription = this.$ti._eval$1("StreamSubscription<1>?")._as(_subscription);
     }
   };
   A.GuaranteeChannel_closure.prototype = {
@@ -15094,7 +14540,7 @@
       t2 = this._box_0.innerStream;
       t3 = t1.__GuaranteeChannel__streamController_F;
       t3 === $ && A.throwLateFieldNI("_streamController");
-      t1.set$_subscription(t2.listen$3$onDone$onError(this.T._eval$1("~(0)")._as(t3.get$add(t3)), new A.GuaranteeChannel__closure(t1), t3.get$addError()));
+      t1._subscription = t2.listen$3$onDone$onError(this.T._eval$1("~(0)")._as(t3.get$add(t3)), new A.GuaranteeChannel__closure(t1), t3.get$addError());
     },
     $signature: 0
   };
@@ -15125,7 +14571,7 @@
     },
     addError$2(error, stackTrace) {
       var _this = this;
-      type$.Object._as(error);
+      A._asObject(error);
       type$.nullable_StackTrace._as(stackTrace);
       if (_this._closed)
         throw A.wrapException(A.StateError$("Cannot add event after closing."));
@@ -15139,7 +14585,7 @@
       return this.addError$2(error, null);
     },
     _addError$2(error, stackTrace) {
-      this._inner._target.addError$2(type$.Object._as(error), type$.nullable_StackTrace._as(stackTrace));
+      this._inner._target.addError$2(A._asObject(error), type$.nullable_StackTrace._as(stackTrace));
       return;
     },
     _addError$1(error) {
@@ -15158,7 +14604,7 @@
       t2 = new A._SyncCompleter(new A._Future($.Zone__current, type$._Future_dynamic), type$._SyncCompleter_dynamic);
       _this._addStreamCompleter = t2;
       t3 = _this._inner;
-      _this.set$_addStreamSubscription(stream.listen$3$onDone$onError(t1._eval$1("~(1)")._as(t3.get$add(t3)), type$.void_Function_$opt_dynamic._as(t2.get$complete()), _this.get$_addError()));
+      _this._addStreamSubscription = stream.listen$3$onDone$onError(t1._eval$1("~(1)")._as(t3.get$add(t3)), type$.void_Function_$opt_dynamic._as(t2.get$complete()), _this.get$_addError());
       return _this._addStreamCompleter.future.then$1$1(new A._GuaranteeSink_addStream_closure(_this), type$.void);
     },
     close$0() {
@@ -15186,11 +14632,7 @@
       t2 = _this._addStreamCompleter;
       t2.toString;
       t2.complete$1(t1.cancel$0());
-      _this._addStreamCompleter = null;
-      _this.set$_addStreamSubscription(null);
-    },
-    set$_addStreamSubscription(_addStreamSubscription) {
-      this._addStreamSubscription = this.$ti._eval$1("StreamSubscription<1>?")._as(_addStreamSubscription);
+      _this._addStreamSubscription = _this._addStreamCompleter = null;
     },
     $isStreamConsumer: 1,
     $isStreamSink: 1
@@ -15198,10 +14640,9 @@
   A._GuaranteeSink_addStream_closure.prototype = {
     call$1(_) {
       var t1 = this.$this;
-      t1._addStreamCompleter = null;
-      t1.set$_addStreamSubscription(null);
+      t1._addStreamSubscription = t1._addStreamCompleter = null;
     },
-    $signature: 8
+    $signature: 9
   };
   A._MultiChannel.prototype = {
     _MultiChannel$1(inner, $T) {
@@ -15288,10 +14729,8 @@
       t1.close$0();
       _this._innerStreamSubscription._source.cancel$0();
       _this._multi_channel$_inner = null;
-      for (t1 = _this._controllers, t2 = t1.get$values(), t2 = A.List_List$of(t2, false, A._instanceType(t2)._eval$1("Iterable.E")), t3 = t2.length, _i = 0; _i < t3; ++_i) {
-        t4 = t2[_i].__StreamChannelController__local_F;
-        t4 === $ && A.throwLateFieldNI("_local");
-        t4 = t4.__GuaranteeChannel__sink_F;
+      for (t1 = _this._controllers, t2 = A.List_List$from(new A.LinkedHashMapValuesIterable(t1, A._instanceType(t1)._eval$1("LinkedHashMapValuesIterable<2>")), true, type$.dynamic), t3 = t2.length, _i = 0; _i < t3; ++_i) {
+        t4 = t2[_i].get$local().__GuaranteeChannel__sink_F;
         t4 === $ && A.throwLateFieldNI("_sink");
         t4.close$0();
       }
@@ -15322,7 +14761,7 @@
       var t1, id, t2, t3, controller, t4;
       type$.List_dynamic._as(message);
       t1 = J.getInterceptor$asx(message);
-      id = B.JSNumber_methods.toInt$0(A._asNum(t1.$index(message, 0)));
+      id = A._asInt(t1.$index(message, 0));
       t2 = this.$this;
       if (t2._closedIds.contains$1(0, id))
         return;
@@ -15342,7 +14781,7 @@
         t1.close$0();
       }
     },
-    $signature: 41
+    $signature: 36
   };
   A._MultiChannel__closure.prototype = {
     call$0() {
@@ -15374,23 +14813,20 @@
   };
   A.VirtualChannel.prototype = {$isMultiChannel: 1};
   A.StreamChannelController.prototype = {
-    set$__StreamChannelController__local_F(__StreamChannelController__local_F) {
-      this.__StreamChannelController__local_F = this.$ti._eval$1("StreamChannel<1>")._as(__StreamChannelController__local_F);
-    },
-    set$__StreamChannelController__foreign_F(__StreamChannelController__foreign_F) {
-      this.__StreamChannelController__foreign_F = this.$ti._eval$1("StreamChannel<1>")._as(__StreamChannelController__foreign_F);
+    get$local() {
+      var t1 = this.__StreamChannelController__local_F;
+      t1 === $ && A.throwLateFieldNI("_local");
+      return t1;
     }
   };
   A.StreamChannelMixin.prototype = {$isStreamChannel: 1};
-  A.MessagePortExtension_get_postMessage_closure.prototype = {
+  A.MessagePort_get_postMessage_closure.prototype = {
     call$1(message) {
-      var t2,
-        t1 = A._setArrayType([], type$.JSArray_Object);
-      if (message != null) {
-        t2 = A.jsify(message);
-        t1.push(t2 == null ? type$.Object._as(t2) : t2);
-      }
-      return A.callMethod(this._this, "postMessage", t1, type$.void);
+      var t1 = this._this,
+        t2 = [];
+      if (message != null)
+        t2.push(A.jsify(message));
+      return t1.postMessage.apply(t1, t2);
     },
     $signature: 3
   };
@@ -15405,17 +14841,17 @@
       t1 === $ && A.throwLateFieldNI("_streamController");
       new A._ControllerStream(t1, A._instanceType(t1)._eval$1("_ControllerStream<1>")).listen$1(new A.main__closure(serverChannel));
       A.Timer_Timer$periodic(B.Duration_1000000, new A.main__closure0(serverChannel));
-      play = type$.nullable_JavaScriptObject._as(self.document.querySelector("#play"));
+      t1 = init.G;
+      play = A._asJSObjectQ(A._asJSObject(t1.document).querySelector("#play"));
       play.toString;
-      A.EventTargetExtension_addEventListener(play, "click", A.allowInterop(new A.main__closure1(serverChannel), type$.void_Function_JavaScriptObject));
-      t1 = type$.void_Function;
-      self.dartTest = type$.JavaScriptObject._as({resume: A.allowInterop(new A.main__closure2(serverChannel), t1), restartCurrent: A.allowInterop(new A.main__closure3(serverChannel), t1)});
+      A.EventTarget_addEventListener(play, "click", new A.main__closure1(serverChannel));
+      t1.dartTest = {resume: A._functionToJS0(new A.main__closure2(serverChannel)), restartCurrent: A._functionToJS0(new A.main__closure3(serverChannel))};
     },
     $signature: 2
   };
   A.main__closure.prototype = {
     call$1(message) {
-      var _0_4_isSet, _0_3, _0_15, _0_15_isSet, _0_14, _0_14_isSet, channel, url, id, t1, _0_4, _0_3_isSet, t2, _0_9, _0_12, suiteChannel, _0_4_isSet0, _null = null,
+      var _0_4_isSet, _0_3, _0_15, _0_15_isSet, _0_14, _0_14_isSet, channel, url, id, t1, _0_4, _0_3_isSet, t2, _0_9, _0_12, suiteChannel, _null = null,
         _s7_ = "command",
         _s2_ = "id";
       $label0$0: {
@@ -15489,7 +14925,7 @@
         }
         t1 = false;
         if (_0_4_isSet) {
-          if (_0_4 == null) {
+          if (_0_4 == null)
             if (_0_3_isSet)
               t2 = _0_3;
             else {
@@ -15497,19 +14933,18 @@
               t2 = _0_3;
               _0_3_isSet = true;
             }
-            A.boolConversionCheck(t2);
-          } else
+          else
             t2 = true;
           if (t2)
             t1 = "displayPause" === _0_4;
         }
         if (t1) {
-          type$.JavaScriptObject._as(type$.nullable_JavaScriptObject._as(self.document.body).classList).add("paused");
+          A._asJSObject(A._asJSObjectQ(A._asJSObject(init.G.document).body).classList).add("paused");
           break $label0$0;
         }
         t1 = false;
         if (_0_4_isSet) {
-          if (_0_4 == null) {
+          if (_0_4 == null)
             if (_0_3_isSet)
               t2 = _0_3;
             else {
@@ -15517,35 +14952,24 @@
               t2 = _0_3;
               _0_3_isSet = true;
             }
-            A.boolConversionCheck(t2);
-          } else
+          else
             t2 = true;
           if (t2)
             t1 = "resume" === _0_4;
-          _0_4_isSet0 = true;
-        } else
-          _0_4_isSet0 = _0_4_isSet;
+        }
         if (t1) {
-          type$.JavaScriptObject._as(type$.nullable_JavaScriptObject._as(self.document.body).classList).remove("paused");
+          A._asJSObject(A._asJSObjectQ(A._asJSObject(init.G.document).body).classList).remove("paused");
           break $label0$0;
         }
         id = _null;
         t1 = false;
         if (_0_4_isSet) {
-          if (_0_4_isSet0) {
-            t2 = _0_4;
-            _0_4_isSet = _0_4_isSet0;
-          } else {
-            _0_4 = message.$index(0, _s7_);
-            t2 = _0_4;
-            _0_4_isSet = true;
-          }
-          if (t2 == null)
-            t2 = A.boolConversionCheck(_0_3_isSet ? _0_3 : message.containsKey$1(_s7_));
+          if (_0_4 == null)
+            t2 = _0_3_isSet ? _0_3 : message.containsKey$1(_s7_);
           else
             t2 = true;
           if (t2)
-            if ("closeSuite" === (_0_4_isSet ? _0_4 : message.$index(0, _s7_))) {
+            if ("closeSuite" === _0_4) {
               if (_0_15_isSet)
                 t2 = _0_15;
               else {
@@ -15554,35 +14978,36 @@
                 _0_15_isSet = true;
               }
               if (t2 == null)
-                t1 = A.boolConversionCheck(_0_14_isSet ? _0_14 : message.containsKey$1(_s2_));
+                t2 = _0_14_isSet ? _0_14 : message.containsKey$1(_s2_);
               else
-                t1 = true;
-              if (t1)
+                t2 = true;
+              if (t2) {
                 id = _0_15_isSet ? _0_15 : message.$index(0, _s2_);
+                t1 = true;
+              }
             }
         }
         if (t1) {
           t1 = $._iframes.remove$1(0, id);
-          t2 = type$.nullable_JavaScriptObject;
-          if (t2._as(t1.parentNode) != null)
-            type$.JavaScriptObject._as(t2._as(t1.parentNode).removeChild(t1));
+          if (A._asJSObjectQ(t1.parentNode) != null)
+            A._asJSObject(A._asJSObjectQ(t1.parentNode).removeChild(t1));
           t1 = $._subscriptions.remove$1(0, id);
           if (t1 != null)
             t1.cancel$0();
           t1 = $._domSubscriptions.remove$1(0, id);
           if (t1 != null)
-            A.EventTargetExtension_removeEventListener(t1.target, t1.type, t1.listener);
+            A.EventTarget_removeEventListener(t1.target, t1.type, t1.listener);
           break $label0$0;
         }
-        type$.JavaScriptObject._as(self.window.console).warn("Unhandled message from test runner: " + A.S(message));
+        A._asJSObject(A._asJSObject(init.G.window).console).warn("Unhandled message from test runner: " + A.S(message));
       }
     },
-    $signature: 5
+    $signature: 6
   };
   A.main__closure0.prototype = {
-    call$1(_) {
+    call$1(__wc0_formal) {
       var t1, t2;
-      type$.Timer._as(_);
+      type$.Timer._as(__wc0_formal);
       t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F;
       t1 === $ && A.throwLateFieldNI("_foreign");
       t1 = t1.__GuaranteeChannel__sink_F;
@@ -15590,17 +15015,16 @@
       t2 = type$.String;
       return t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "ping"], t2, t2));
     },
-    $signature: 42
+    $signature: 37
   };
   A.main__closure1.prototype = {
-    call$1(_) {
-      var t2,
-        t1 = type$.JavaScriptObject;
-      t1._as(_);
-      t2 = type$.nullable_JavaScriptObject;
-      if (!A._asBool(t1._as(t2._as(self.document.body).classList).contains("paused")))
+    call$1(__wc1_formal) {
+      var t1, t2;
+      A._asJSObject(__wc1_formal);
+      t1 = init.G;
+      if (!A._asBool(A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).contains("paused")))
         return;
-      t1._as(t2._as(self.document.body).classList).remove("paused");
+      A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).remove("paused");
       t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F;
       t1 === $ && A.throwLateFieldNI("_foreign");
       t1 = t1.__GuaranteeChannel__sink_F;
@@ -15608,15 +15032,15 @@
       t2 = type$.String;
       t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "resume"], t2, t2));
     },
-    $signature: 6
+    $signature: 7
   };
   A.main__closure2.prototype = {
     call$0() {
-      var t1 = type$.nullable_JavaScriptObject,
-        t2 = type$.JavaScriptObject;
-      if (!A._asBool(t2._as(t1._as(self.document.body).classList).contains("paused")))
+      var t2,
+        t1 = init.G;
+      if (!A._asBool(A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).contains("paused")))
         return;
-      t2._as(t1._as(self.document.body).classList).remove("paused");
+      A._asJSObject(A._asJSObjectQ(A._asJSObject(t1.document).body).classList).remove("paused");
       t1 = this.serverChannel._mainController.__StreamChannelController__foreign_F;
       t1 === $ && A.throwLateFieldNI("_foreign");
       t1 = t1.__GuaranteeChannel__sink_F;
@@ -15624,7 +15048,7 @@
       t2 = type$.String;
       t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "resume"], t2, t2));
     },
-    $signature: 0
+    $signature: 2
   };
   A.main__closure3.prototype = {
     call$0() {
@@ -15636,27 +15060,27 @@
       t2 = type$.String;
       t1.add$1(0, A.LinkedHashMap_LinkedHashMap$_literal(["command", "restart"], t2, t2));
     },
-    $signature: 0
+    $signature: 2
   };
   A.main_closure0.prototype = {
     call$2(error, stackTrace) {
-      type$.Object._as(error);
+      A._asObject(error);
       type$.StackTrace._as(stackTrace);
-      type$.JavaScriptObject._as(self.window.console).warn(A.S(error) + "\n" + A.Trace_Trace$from(stackTrace).get$terse().toString$0(0));
+      A._asJSObject(A._asJSObject(init.G.window).console).warn(A.S(error) + "\n" + A.Trace_Trace$from(stackTrace).get$terse().toString$0(0));
     },
-    $signature: 9
+    $signature: 10
   };
   A._connectToServer_closure.prototype = {
     call$1(message) {
       var t1;
-      type$.JavaScriptObject._as(message);
+      A._asJSObject(message);
       t1 = this.controller.__StreamChannelController__local_F;
       t1 === $ && A.throwLateFieldNI("_local");
       t1 = t1.__GuaranteeChannel__sink_F;
       t1 === $ && A.throwLateFieldNI("_sink");
       t1.add$1(0, B.C_JsonCodec.decode$2$reviver(A._asString(A.dartify(message.data)), null));
     },
-    $signature: 6
+    $signature: 7
   };
   A._connectToServer_closure0.prototype = {
     call$1(message) {
@@ -15666,11 +15090,11 @@
   };
   A._connectToIframe_closure.prototype = {
     call$1($event) {
-      var t2, _0_0, port, data, _0_6, _0_11, _this = this,
-        _s9_ = "exception",
-        t1 = type$.JavaScriptObject;
-      t1._as($event);
-      if (A._asString($event.origin) !== A._asString(t1._as(self.window.location).origin))
+      var t1, t2, _0_0, port, data, _0_6, _0_11, _this = this,
+        _s9_ = "exception";
+      A._asJSObject($event);
+      t1 = init.G;
+      if (A._asString($event.origin) !== A._asString(A._asJSObject(A._asJSObject(t1.window).location).origin))
         return;
       t2 = $event.source.location;
       t2 = t2 == null ? null : A._asStringQ(t2.href);
@@ -15678,22 +15102,23 @@
         return;
       $event.stopPropagation();
       t2 = _this.windowSubscription._readLocal$0();
-      A.EventTargetExtension_removeEventListener(t2.target, t2.type, t2.listener);
+      A.EventTarget_removeEventListener(t2.target, t2.type, t2.listener);
       $label0$0: {
         _0_0 = A.dartify($event.data);
         if ("port" === _0_0) {
-          t1._as(self.window.console).log("Connecting channel for suite " + _this.suiteUrl.toString$0(0));
-          t1 = J.cast$1$0$ax(type$.List_dynamic._as($event.ports), t1);
+          A._asJSObject(A._asJSObject(t1.window).console).log("Connecting channel for suite " + _this.suiteUrl.toString$0(0));
+          t1 = type$.JSArray_nullable_Object._as($event.ports);
+          t1 = B.JSArray_methods.cast$1$0(t1, type$.JSObject);
           port = t1.get$first(t1);
           t1 = _this.id;
           t2 = _this.controller;
-          $._domSubscriptions.$indexSet(0, t1, A.Subscription$(port, "message", A.allowInterop(new A._connectToIframe__closure(t2), type$.void_Function_JavaScriptObject)));
+          $._domSubscriptions.$indexSet(0, t1, A.Subscription$(port, "message", new A._connectToIframe__closure(t2)));
           port.start();
           t2 = t2.__StreamChannelController__local_F;
           t2 === $ && A.throwLateFieldNI("_local");
           t2 = t2.__GuaranteeChannel__streamController_F;
           t2 === $ && A.throwLateFieldNI("_streamController");
-          $._subscriptions.$indexSet(0, t1, new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$1(A.MessagePortExtension_get_postMessage(port)));
+          $._subscriptions.$indexSet(0, t1, new A._ControllerStream(t2, A._instanceType(t2)._eval$1("_ControllerStream<1>")).listen$1(A.MessagePort_get_postMessage(port)));
           break $label0$0;
         }
         data = null;
@@ -15724,23 +15149,25 @@
         }
       }
     },
-    $signature: 6
+    $signature: 7
   };
   A._connectToIframe__closure.prototype = {
     call$1($event) {
       var t1;
-      type$.JavaScriptObject._as($event);
+      A._asJSObject($event);
       t1 = this.controller.__StreamChannelController__local_F;
       t1 === $ && A.throwLateFieldNI("_local");
       t1 = t1.__GuaranteeChannel__sink_F;
       t1 === $ && A.throwLateFieldNI("_sink");
       t1.add$1(0, A.dartify($event.data));
     },
-    $signature: 6
+    $signature: 7
   };
   (function aliases() {
     var _ = J.LegacyJavaScriptObject.prototype;
     _.super$LegacyJavaScriptObject$toString = _.toString$0;
+    _ = A.ListBase.prototype;
+    _.super$ListBase$setRange = _.setRange$4;
     _ = A.Iterable.prototype;
     _.super$Iterable$skipWhile = _.skipWhile$1;
   })();
@@ -15755,81 +15182,65 @@
       _instance_1_i = hunkHelpers._instance_1i,
       _instance_0_u = hunkHelpers._instance_0u;
     _instance_1_u(A.CastStreamSubscription.prototype, "get$__internal$_onData", "__internal$_onData$1", 3);
-    _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 11);
-    _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 11);
-    _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 11);
+    _static_1(A, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 8);
+    _static_1(A, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 8);
+    _static_1(A, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 8);
     _static_0(A, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0);
-    _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 5);
-    _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 9);
+    _static_1(A, "async___nullDataHandler$closure", "_nullDataHandler", 6);
+    _static_2(A, "async___nullErrorHandler$closure", "_nullErrorHandler", 10);
     _static_0(A, "async___nullDoneHandler$closure", "_nullDoneHandler", 0);
-    _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 45, 0);
+    _static(A, "async___rootHandleUncaughtError$closure", 5, null, ["call$5"], ["_rootHandleUncaughtError"], 40, 0);
     _static(A, "async___rootRun$closure", 4, null, ["call$1$4", "call$4"], ["_rootRun", function($self, $parent, zone, f) {
       return A._rootRun($self, $parent, zone, f, type$.dynamic);
-    }], 46, 1);
+    }], 41, 0);
     _static(A, "async___rootRunUnary$closure", 5, null, ["call$2$5", "call$5"], ["_rootRunUnary", function($self, $parent, zone, f, arg) {
       var t1 = type$.dynamic;
       return A._rootRunUnary($self, $parent, zone, f, arg, t1, t1);
-    }], 47, 1);
-    _static(A, "async___rootRunBinary$closure", 6, null, ["call$3$6", "call$6"], ["_rootRunBinary", function($self, $parent, zone, f, arg1, arg2) {
-      var t1 = type$.dynamic;
-      return A._rootRunBinary($self, $parent, zone, f, arg1, arg2, t1, t1, t1);
-    }], 48, 1);
+    }], 42, 0);
+    _static(A, "async___rootRunBinary$closure", 6, null, ["call$3$6"], ["_rootRunBinary"], 43, 0);
     _static(A, "async___rootRegisterCallback$closure", 4, null, ["call$1$4", "call$4"], ["_rootRegisterCallback", function($self, $parent, zone, f) {
       return A._rootRegisterCallback($self, $parent, zone, f, type$.dynamic);
-    }], 49, 0);
+    }], 44, 0);
     _static(A, "async___rootRegisterUnaryCallback$closure", 4, null, ["call$2$4", "call$4"], ["_rootRegisterUnaryCallback", function($self, $parent, zone, f) {
       var t1 = type$.dynamic;
       return A._rootRegisterUnaryCallback($self, $parent, zone, f, t1, t1);
-    }], 50, 0);
+    }], 45, 0);
     _static(A, "async___rootRegisterBinaryCallback$closure", 4, null, ["call$3$4", "call$4"], ["_rootRegisterBinaryCallback", function($self, $parent, zone, f) {
       var t1 = type$.dynamic;
       return A._rootRegisterBinaryCallback($self, $parent, zone, f, t1, t1, t1);
-    }], 51, 0);
-    _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 52, 0);
-    _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 53, 0);
-    _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 54, 0);
-    _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 55, 0);
-    _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 56, 0);
-    _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 57, 0);
-    _instance(A._SyncCompleter.prototype, "get$complete", 0, 0, function() {
-      return [null];
-    }, ["call$1", "call$0"], ["complete$1", "complete$0"], 24, 0, 0);
-    _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 9);
+    }], 46, 0);
+    _static(A, "async___rootErrorCallback$closure", 5, null, ["call$5"], ["_rootErrorCallback"], 47, 0);
+    _static(A, "async___rootScheduleMicrotask$closure", 4, null, ["call$4"], ["_rootScheduleMicrotask"], 48, 0);
+    _static(A, "async___rootCreateTimer$closure", 5, null, ["call$5"], ["_rootCreateTimer"], 49, 0);
+    _static(A, "async___rootCreatePeriodicTimer$closure", 5, null, ["call$5"], ["_rootCreatePeriodicTimer"], 50, 0);
+    _static(A, "async___rootPrint$closure", 4, null, ["call$4"], ["_rootPrint"], 51, 0);
+    _static(A, "async___rootFork$closure", 5, null, ["call$5"], ["_rootFork"], 52, 0);
+    _instance(A._SyncCompleter.prototype, "get$complete", 0, 0, null, ["call$1", "call$0"], ["complete$1", "complete$0"], 30, 0, 0);
+    _instance_2_u(A._Future.prototype, "get$_completeError", "_completeError$2", 10);
     var _;
     _instance_1_i(_ = A._StreamController.prototype, "get$add", "add$1", 3);
-    _instance(_, "get$addError", 0, 1, function() {
-      return [null];
-    }, ["call$2", "call$1"], ["addError$2", "addError$1"], 10, 0, 0);
+    _instance(_, "get$addError", 0, 1, null, ["call$2", "call$1"], ["addError$2", "addError$1"], 11, 0, 0);
     _instance_1_i(A._StreamSinkWrapper.prototype, "get$add", "add$1", 3);
     _instance_0_u(A._DoneStreamSubscription.prototype, "get$_onMicrotask", "_onMicrotask$0", 0);
-    _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 13);
-    _static_1(A, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 16);
-    _static_1(A, "frame_Frame___parseVM_tearOff$closure", "Frame___parseVM_tearOff", 7);
-    _static_1(A, "frame_Frame___parseV8_tearOff$closure", "Frame___parseV8_tearOff", 7);
-    _static_1(A, "frame_Frame___parseFirefox_tearOff$closure", "Frame___parseFirefox_tearOff", 7);
-    _static_1(A, "frame_Frame___parseFriendly_tearOff$closure", "Frame___parseFriendly_tearOff", 7);
-    _static_1(A, "trace_Trace___parseVM_tearOff$closure", "Trace___parseVM_tearOff", 12);
-    _static_1(A, "trace_Trace___parseFriendly_tearOff$closure", "Trace___parseFriendly_tearOff", 12);
-    _instance(_ = A._GuaranteeSink.prototype, "get$addError", 0, 1, function() {
-      return [null];
-    }, ["call$2", "call$1"], ["addError$2", "addError$1"], 10, 0, 0);
-    _instance(_, "get$_addError", 0, 1, function() {
-      return [null];
-    }, ["call$2", "call$1"], ["_addError$2", "_addError$1"], 10, 0, 0);
+    _static_1(A, "convert___defaultToEncodable$closure", "_defaultToEncodable", 12);
+    _static_1(A, "core_Uri_decodeComponent$closure", "Uri_decodeComponent", 15);
+    _instance(_ = A._GuaranteeSink.prototype, "get$addError", 0, 1, null, ["call$2", "call$1"], ["addError$2", "addError$1"], 11, 0, 0);
+    _instance(_, "get$_addError", 0, 1, null, ["call$2", "call$1"], ["_addError$2", "_addError$1"], 11, 0, 0);
     _instance_0_u(A._MultiChannel.prototype, "get$_closeInnerChannel", "_closeInnerChannel$0", 0);
     _static(A, "math__max$closure", 2, null, ["call$1$2", "call$2"], ["max", function(a, b) {
       return A.max(a, b, type$.num);
-    }], 40, 0);
+    }], 35, 0);
   })();
   (function inheritance() {
     var _mixin = hunkHelpers.mixin,
       _inherit = hunkHelpers.inherit,
       _inheritMany = hunkHelpers.inheritMany;
     _inherit(A.Object, null);
-    _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, J.ArrayIterator, A.Stream, A.CastStreamSubscription, A.Iterable, A.CastIterator, A.Error, A.ListBase, A.Closure, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.ExpandIterator, A.TakeIterator, A.SkipIterator, A.SkipWhileIterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.Symbol, A.MapView, A.ConstantMap, A._KeysOrValuesOrElementsIterator, A.JSInvocationMirror, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A._StackTrace, A._Required, A.MapBase, 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.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A._StreamController, A._SyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._DoneStreamSubscription, A._ZoneFunction, A._ZoneSpecification, A._ZoneDelegate, A._Zone, A._HashMapKeyIterator, A.SetBase, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A.Codec, A.Converter, A._JsonStringifier, A._Utf8Encoder, A._Utf8Decoder, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.NullRejectionException, A.NullStreamSink, A.Context, A.Style, A.ParsedPath, A.PathException, A.Chain, A.Frame, A.LazyTrace, A.Trace, A.UnparsedFrame, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Subscription]);
+    _inheritMany(A.Object, [A.JS_CONST, J.Interceptor, A.SafeToStringHook, J.ArrayIterator, A.Stream, A.CastStreamSubscription, A.Iterable, A.CastIterator, A.Error, A.ListBase, A.Closure, A.SentinelValue, A.ListIterator, A.MappedIterator, A.WhereIterator, A.ExpandIterator, A.TakeIterator, A.SkipIterator, A.SkipWhileIterator, A.EmptyIterator, A.WhereTypeIterator, A.FixedLengthListMixin, A.UnmodifiableListMixin, A.ConstantMap, A._KeysOrValuesOrElementsIterator, A.TypeErrorDecoder, A.NullThrownFromJavaScriptException, A._StackTrace, A.MapBase, A.LinkedHashMapCell, A.LinkedHashMapKeyIterator, A.LinkedHashMapValueIterator, A.JSSyntaxRegExp, A._MatchImplementation, A._AllMatchesIterator, A.StringMatch, A._StringAllMatchesIterator, A._Cell, A.Rti, A._FunctionParameters, A._Type, A._TimerImpl, A.AsyncError, A._Completer, A._FutureListener, A._Future, A._AsyncCallbackEntry, A._StreamController, A._SyncStreamControllerDispatch, A._BufferingStreamSubscription, A._StreamSinkWrapper, A._DelayedEvent, A._DelayedDone, A._PendingEvents, A._DoneStreamSubscription, A._ZoneFunction, A._Zone, A._ZoneDelegate, A._ZoneSpecification, A._HashMapKeyIterator, A.SetBase, A._LinkedHashSetCell, A._LinkedHashSetIterator, A._UnmodifiableMapMixin, A.MapView, A.Codec, A.Converter, A._JsonStringifier, A._Utf8Encoder, A._Utf8Decoder, A.DateTime, A.Duration, A.OutOfMemoryError, A.StackOverflowError, A._Exception, A.FormatException, A.Null, A._StringStackTrace, A.StringBuffer, A._Uri, A.UriData, A._SimpleUri, A.NullRejectionException, A.NullStreamSink, A.Context, A.Style, A.ParsedPath, A.PathException, A.Chain, A.Frame, A.LazyTrace, A.Trace, A.UnparsedFrame, A.StreamChannelMixin, A._GuaranteeSink, A.StreamChannelController, A.Subscription]);
     _inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JavaScriptBigInt, J.JavaScriptSymbol, J.JSNumber, J.JSString]);
     _inheritMany(J.JavaScriptObject, [J.LegacyJavaScriptObject, J.JSArray, A.NativeByteBuffer, A.NativeTypedData]);
     _inheritMany(J.LegacyJavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction]);
+    _inherit(J.JSArraySafeToStringHook, A.SafeToStringHook);
     _inherit(J.JSUnmodifiableArray, J.JSArray);
     _inheritMany(J.JSNumber, [J.JSInt, J.JSNumNotInt]);
     _inheritMany(A.Stream, [A.CastStream, A._StreamImpl, A._EmptyStream]);
@@ -15838,26 +15249,22 @@
     _inherit(A._EfficientLengthCastIterable, A.CastIterable);
     _inherit(A._CastListBase, A.__CastListBase__CastIterableBase_ListMixin);
     _inherit(A.CastList, A._CastListBase);
-    _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A._CyclicInitializationError, A.RuntimeError, A.AssertionError, A._Error, A.JsonUnsupportedObjectError, A.ArgumentError, A.NoSuchMethodError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError]);
+    _inheritMany(A.Error, [A.LateError, A.TypeError, A.JsNoSuchMethodError, A.UnknownJsTypeError, A.RuntimeError, A._Error, A.JsonUnsupportedObjectError, A.AssertionError, A.ArgumentError, A.UnsupportedError, A.UnimplementedError, A.StateError, A.ConcurrentModificationError]);
     _inherit(A.UnmodifiableListBase, A.ListBase);
     _inherit(A.CodeUnits, A.UnmodifiableListBase);
-    _inheritMany(A.Closure, [A.Closure0Args, A.Instantiation, A.Closure2Args, A.TearOffClosure, A.JsLinkedHashMap_values_closure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._Future__chainForeignFuture_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A.Stream_pipe_closure, A.Stream_length_closure, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._Uri__makePath_closure, A._createTables_setChars, A._createTables_setRange, A.jsify__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.dartify_convert, A.Context_joinAll_closure, A.Context_split_closure, A._validateArgList_closure, A.WindowsStyle_absolutePathToUri_closure, A.Chain_Chain$parse_closure, A.Chain_toTrace_closure, A.Chain_toString_closure0, A.Chain_toString__closure0, A.Chain_toString_closure, A.Chain_toString__closure, A.Trace__parseVM_closure, A.Trace$parseV8_closure, A.Trace$parseJSCore_closure, A.Trace$parseFirefox_closure, A.Trace$parseFriendly_closure, A.Trace_terse_closure, A.Trace_foldFrames_closure, A.Trace_foldFrames_closure0, A.Trace_toString_closure0, A.Trace_toString_closure, A._GuaranteeSink_addStream_closure, A._MultiChannel_closure, A._MultiChannel_closure1, A._MultiChannel_virtualChannel_closure, A.MessagePortExtension_get_postMessage_closure, A.main__closure, A.main__closure0, A.main__closure1, A._connectToServer_closure, A._connectToServer_closure0, A._connectToIframe_closure, A._connectToIframe__closure]);
-    _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainForeignFuture_closure1, A._Future__chainCoreFutureAsync_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteError_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A.Stream_length_closure0, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._AddStreamState_cancel_closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A._Utf8Decoder__decoder_closure, A._Utf8Decoder__decoderNonfatal_closure, A.NullStreamSink_addStream_closure, A.Frame_Frame$parseVM_closure, A.Frame_Frame$parseV8_closure, A.Frame_Frame$_parseFirefoxEval_closure, A.Frame_Frame$parseFirefox_closure, A.Frame_Frame$parseFriendly_closure, A.LazyTrace_terse_closure, A.Trace_Trace$from_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A._MultiChannel_closure0, A._MultiChannel__closure, A._MultiChannel_virtualChannel_closure0, A.main_closure, A.main__closure2, A.main__closure3]);
-    _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeyIterable, A._HashMapKeyIterable]);
+    _inheritMany(A.Closure, [A.Closure0Args, A.Instantiation, A.Closure2Args, A.TearOffClosure, A.initHooks_closure, A.initHooks_closure1, A._AsyncRun__initializeScheduleImmediate_internalCallback, A._AsyncRun__initializeScheduleImmediate_closure, A._Future__propagateToListeners_handleWhenCompleteCallback_closure, A.Stream_pipe_closure, A.Stream_length_closure, A._CustomZone_bindUnaryCallback_closure, A._CustomZone_bindUnaryCallbackGuarded_closure, A._RootZone_bindUnaryCallback_closure, A._RootZone_bindUnaryCallbackGuarded_closure, A.runZonedGuarded_closure, A._Uri__makePath_closure, A.jsify__convert, A.promiseToFuture_closure, A.promiseToFuture_closure0, A.dartify_convert, A.Context_joinAll_closure, A.Context_split_closure, A._validateArgList_closure, A.WindowsStyle_absolutePathToUri_closure, A.Chain_Chain$parse_closure, A.Chain_Chain$parse_closure0, A.Chain_Chain$parse_closure1, A.Chain_toTrace_closure, A.Chain_toString_closure0, A.Chain_toString__closure0, A.Chain_toString_closure, A.Chain_toString__closure, A.Trace__parseVM_closure, A.Trace__parseVM_closure0, A.Trace$parseV8_closure, A.Trace$parseV8_closure0, A.Trace$parseJSCore_closure, A.Trace$parseJSCore_closure0, A.Trace$parseFirefox_closure, A.Trace$parseFirefox_closure0, A.Trace$parseFriendly_closure, A.Trace$parseFriendly_closure0, A.Trace_terse_closure, A.Trace_foldFrames_closure, A.Trace_foldFrames_closure0, A.Trace_toString_closure0, A.Trace_toString_closure, A._GuaranteeSink_addStream_closure, A._MultiChannel_closure, A._MultiChannel_closure1, A._MultiChannel_virtualChannel_closure, A.MessagePort_get_postMessage_closure, A.main__closure, A.main__closure0, A.main__closure1, A._connectToServer_closure, A._connectToServer_closure0, A._connectToIframe_closure, A._connectToIframe__closure]);
+    _inheritMany(A.Closure0Args, [A.nullFuture_closure, A._AsyncRun__scheduleImmediateJsOverride_internalCallback, A._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, A._TimerImpl_internalCallback, A._TimerImpl$periodic_closure, A._Future__addListener_closure, A._Future__prependListeners_closure, A._Future__chainCoreFuture_closure, A._Future__asyncCompleteWithValue_closure, A._Future__asyncCompleteErrorObject_closure, A._Future__propagateToListeners_handleWhenCompleteCallback, A._Future__propagateToListeners_handleValueCallback, A._Future__propagateToListeners_handleError, A.Stream_length_closure0, A._StreamController__subscribe_closure, A._StreamController__recordCancel_complete, A._AddStreamState_cancel_closure, A._BufferingStreamSubscription__sendError_sendError, A._BufferingStreamSubscription__sendDone_sendDone, A._PendingEvents_schedule_closure, A._CustomZone_bindCallback_closure, A._CustomZone_bindCallbackGuarded_closure, A._RootZone_bindCallback_closure, A._RootZone_bindCallbackGuarded_closure, A._rootHandleError_closure, A._Utf8Decoder__decoder_closure, A._Utf8Decoder__decoderNonfatal_closure, A.NullStreamSink_addStream_closure, A.Frame_Frame$parseVM_closure, A.Frame_Frame$parseV8_closure, A.Frame_Frame$_parseFirefoxEval_closure, A.Frame_Frame$parseFirefox_closure, A.Frame_Frame$parseFriendly_closure, A.LazyTrace_terse_closure, A.Trace_Trace$from_closure, A.GuaranteeChannel_closure, A.GuaranteeChannel__closure, A._MultiChannel_closure0, A._MultiChannel__closure, A._MultiChannel_virtualChannel_closure0, A.main_closure, A.main__closure2, A.main__closure3]);
+    _inheritMany(A.EfficientLengthIterable, [A.ListIterable, A.EmptyIterable, A.LinkedHashMapKeysIterable, A.LinkedHashMapValuesIterable, A._HashMapKeyIterable]);
     _inheritMany(A.ListIterable, [A.SubListIterable, A.MappedListIterable, A.ReversedListIterable, A._JsonMapKeyIterable]);
     _inherit(A.EfficientLengthMappedIterable, A.MappedIterable);
     _inherit(A.EfficientLengthTakeIterable, A.TakeIterable);
     _inherit(A.EfficientLengthSkipIterable, A.SkipIterable);
-    _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView);
-    _inherit(A.UnmodifiableMapView, A._UnmodifiableMapView_MapView__UnmodifiableMapMixin);
-    _inherit(A.ConstantMapView, A.UnmodifiableMapView);
     _inherit(A.ConstantStringMap, A.ConstantMap);
     _inherit(A.Instantiation1, A.Instantiation);
-    _inheritMany(A.Closure2Args, [A.Primitives_functionNoSuchMethod_closure, A.initHooks_closure0, A._Future__chainForeignFuture_closure0, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A.NoSuchMethodError_toString_closure, A.Uri_splitQueryString_closure, A.Uri__parseIPv4Address_error, A.Uri_parseIPv6Address_error, A.Uri_parseIPv6Address_parseHex, A._createTables_build, A.Frame_Frame$parseV8_closure_parseJsLocation, A.main_closure0]);
     _inherit(A.NullError, A.TypeError);
     _inheritMany(A.TearOffClosure, [A.StaticClosure, A.BoundClosure]);
-    _inherit(A._AssertionError, A.AssertionError);
     _inheritMany(A.MapBase, [A.JsLinkedHashMap, A._HashMap, A._JsonMap]);
+    _inheritMany(A.Closure2Args, [A.initHooks_closure0, A._Future__propagateToListeners_handleWhenCompleteCallback_closure0, A.MapBase_mapToString_closure, A._JsonStringifier_writeMap_closure, A.Uri_splitQueryString_closure, A.Uri_parseIPv6Address_error, A.Frame_Frame$parseV8_closure_parseLocation, A.main_closure0]);
     _inheritMany(A.NativeTypedData, [A.NativeByteData, A.NativeTypedArray]);
     _inheritMany(A.NativeTypedArray, [A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin, A._NativeTypedArrayOfInt_NativeTypedArray_ListMixin]);
     _inherit(A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin, A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin);
@@ -15876,6 +15283,8 @@
     _inherit(A._IdentityHashMap, A._HashMap);
     _inherit(A._SetBase, A.SetBase);
     _inherit(A._LinkedHashSet, A._SetBase);
+    _inherit(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A.MapView);
+    _inherit(A.UnmodifiableMapView, A._UnmodifiableMapView_MapView__UnmodifiableMapMixin);
     _inheritMany(A.Codec, [A.Encoding, A.Base64Codec, A._FusedCodec, A.JsonCodec]);
     _inheritMany(A.Encoding, [A.AsciiCodec, A.Utf8Codec]);
     _inheritMany(A.Converter, [A._UnicodeSubsetEncoder, A.Base64Encoder, A.JsonEncoder, A.JsonDecoder, A.Utf8Encoder, A.Utf8Decoder]);
@@ -15897,18 +15306,20 @@
     _mixin(A._UnmodifiableMapView_MapView__UnmodifiableMapMixin, A._UnmodifiableMapMixin);
   })();
   var init = {
+    G: typeof self != "undefined" ? self : globalThis,
     typeUniverse: {eC: new Map(), tR: {}, eT: {}, tPV: {}, sEA: []},
-    mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List", Object: "Object", Map: "Map"},
+    mangledGlobalNames: {int: "int", double: "double", num: "num", String: "String", bool: "bool", Null: "Null", List: "List", Object: "Object", Map: "Map", JSObject: "JSObject"},
     mangledNames: {},
-    types: ["~()", "bool(String)", "Null()", "~(Object?)", "Frame()", "~(@)", "~(JavaScriptObject)", "Frame(String)", "Null(@)", "~(Object,StackTrace)", "~(Object[StackTrace?])", "~(~())", "Trace(String)", "@(@)", "~(Object?,Object?)", "@()", "String(String)", "~(Uint8List,String,int)", "Object?(Object?)", "int(Frame)", "String(Frame)", "Trace()", "bool(Frame)", "Map<String,String>(Map<String,String>,String)", "~([Object?])", "Uint8List(@,@)", "@(String)", "Null(Object,StackTrace)", "_Future<@>(@)", "Future<@>(@)", "String(String?)", "List<Frame>(Trace)", "int(Trace)", "~(String,@)", "String(Trace)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "Null(~())", "Frame(String,String)", "Future<~>()", "~(Symbol0,@)", "0^(0^,0^)<num>", "~(List<@>)", "~(Timer)", "@(@,String)", "~(String,int)", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())<Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)<Object?,Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>", "0^()(Zone,ZoneDelegate,Zone,0^())<Object?>", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map<Object?,Object?>?)", "~(String,int?)", "int(int,int)", "Frame(Frame)"],
+    types: ["~()", "bool(String)", "Null()", "~(Object?)", "Frame()", "Frame(String)", "~(@)", "~(JSObject)", "~(~())", "Null(@)", "~(Object,StackTrace)", "~(Object[StackTrace?])", "@(@)", "~(Object?,Object?)", "@()", "String(String)", "Object?(Object?)", "Trace(String)", "int(Frame)", "String(Frame)", "Trace()", "bool(Frame)", "Map<String,String>(Map<String,String>,String)", "String(String?)", "~(Zone,ZoneDelegate,Zone,Object,StackTrace)", "List<Frame>(Trace)", "int(Trace)", "@(@,String)", "String(Trace)", "@(String)", "~([Object?])", "Frame(String,String)", "0&(String,int?)", "Future<~>()", "Null(Object,StackTrace)", "0^(0^,0^)<num>", "~(List<@>)", "~(Timer)", "Future<@>(@)", "Null(~())", "~(Zone?,ZoneDelegate?,Zone,Object,StackTrace)", "0^(Zone?,ZoneDelegate?,Zone,0^())<Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^),1^)<Object?,Object?>", "0^(Zone?,ZoneDelegate?,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>", "0^()(Zone,ZoneDelegate,Zone,0^())<Object?>", "0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>", "0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>", "AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)", "~(Zone?,ZoneDelegate?,Zone,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~())", "Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))", "~(Zone,ZoneDelegate,Zone,String)", "Zone(Zone?,ZoneDelegate?,Zone,ZoneSpecification?,Map<Object?,Object?>?)", "Frame(Frame)"],
     interceptorsByTag: null,
     leafTags: null,
     arrayRti: Symbol("$ti")
   };
-  A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"LegacyJavaScriptObject":{"JavaScriptObject":[]},"JSArray":{"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"JavaScriptObject":[],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[]},"JSInt":{"double":[],"int":[],"num":[],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Pattern":[],"TrustedGetRuntimeType":[]},"CastStream":{"Stream":["2"],"Stream.T":"2"},"CastStreamSubscription":{"StreamSubscription":["2"]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"LateError":{"Error":[]},"CodeUnits":{"ListBase":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListBase.E":"int","UnmodifiableListMixin.E":"int"},"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"]},"ExpandIterable":{"Iterable":["2"],"Iterable.E":"2"},"ExpandIterator":{"Iterator":["2"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"SkipWhileIterable":{"Iterable":["1"],"Iterable.E":"1"},"SkipWhileIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"Symbol":{"Symbol0":[]},"ConstantMapView":{"UnmodifiableMapView":["1","2"],"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"JSInvocationMirror":{"Invocation":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"NullThrownFromJavaScriptException":{"Exception":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"_CyclicInitializationError":{"Error":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"LinkedHashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JavaScriptObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JavaScriptObject":[]},"NativeByteData":{"JavaScriptObject":[],"ByteData":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JavaScriptObject":[]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"Float32List":[],"ListBase":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double"},"NativeFloat64List":{"Float64List":[],"ListBase":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"JavaScriptObject":[],"EfficientLengthIterable":["double"],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double"},"NativeInt16List":{"Int16List":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeInt32List":{"Int32List":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeInt8List":{"Int8List":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint16List":{"Uint16List":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint32List":{"Uint32List":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint8ClampedList":{"Uint8ClampedList":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint8List":{"Uint8List":[],"ListBase":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"JavaScriptObject":[],"EfficientLengthIterable":["int"],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_TimerImpl":{"Timer":[]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"StreamConsumer":["1"],"_StreamControllerLifecycle":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"StreamConsumer":["1"],"_StreamControllerLifecycle":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"],"StreamConsumer":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_DoneStreamSubscription":{"StreamSubscription":["1"]},"_EmptyStream":{"Stream":["1"],"Stream.T":"1"},"_ZoneSpecification":{"ZoneSpecification":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_HashMap":{"MapBase":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedHashSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"AsciiCodec":{"Codec":["String","List<int>"]},"_UnicodeSubsetEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"AsciiEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Base64Codec":{"Codec":["List<int>","String"]},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"_FusedCodec":{"Codec":["1","3"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List<int>"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"]},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Utf8Codec":{"Codec":["String","List<int>"]},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Utf8Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"double":{"num":[]},"int":{"num":[]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"RegExpMatch":{"Match":[]},"String":{"Pattern":[]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"NoSuchMethodError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"_Exception":{"Exception":[]},"FormatException":{"Exception":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"NullRejectionException":{"Exception":[]},"NullStreamSink":{"StreamSink":["1"],"StreamConsumer":["1"]},"PathException":{"Exception":[]},"PosixStyle":{"InternalStyle":[]},"UrlStyle":{"InternalStyle":[]},"WindowsStyle":{"InternalStyle":[]},"Chain":{"StackTrace":[]},"LazyTrace":{"Trace":[],"StackTrace":[]},"Trace":{"StackTrace":[]},"UnparsedFrame":{"Frame":[]},"GuaranteeChannel":{"StreamChannelMixin":["1"],"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"],"StreamConsumer":["1"]},"_MultiChannel":{"StreamChannelMixin":["1"],"MultiChannel":["1"],"StreamChannel":["1"]},"VirtualChannel":{"StreamChannelMixin":["1"],"MultiChannel":["1"],"StreamChannel":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]}}'));
+  A._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"LegacyJavaScriptObject","UnknownJavaScriptObject":"LegacyJavaScriptObject","JavaScriptFunction":"LegacyJavaScriptObject","NativeArrayBuffer":"NativeByteBuffer","JSArray":{"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"JSBool":{"bool":[],"TrustedGetRuntimeType":[]},"JSNull":{"Null":[],"TrustedGetRuntimeType":[]},"JavaScriptObject":{"JSObject":[]},"LegacyJavaScriptObject":{"JSObject":[]},"JSArraySafeToStringHook":{"SafeToStringHook":[]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"EfficientLengthIterable":["1"],"JSObject":[],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"double":[],"num":[]},"JSInt":{"double":[],"int":[],"num":[],"TrustedGetRuntimeType":[]},"JSNumNotInt":{"double":[],"num":[],"TrustedGetRuntimeType":[]},"JSString":{"String":[],"Pattern":[],"TrustedGetRuntimeType":[]},"CastStream":{"Stream":["2"],"Stream.T":"2"},"CastStreamSubscription":{"StreamSubscription":["2"]},"_CastIterableBase":{"Iterable":["2"]},"CastIterator":{"Iterator":["2"]},"CastIterable":{"_CastIterableBase":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"_EfficientLengthCastIterable":{"CastIterable":["1","2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"Iterable.E":"2"},"_CastListBase":{"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"]},"CastList":{"_CastListBase":["1","2"],"ListBase":["2"],"List":["2"],"_CastIterableBase":["1","2"],"EfficientLengthIterable":["2"],"Iterable":["2"],"ListBase.E":"2","Iterable.E":"2"},"LateError":{"Error":[]},"CodeUnits":{"ListBase":["int"],"UnmodifiableListMixin":["int"],"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"],"ListBase.E":"int","UnmodifiableListMixin.E":"int"},"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"]},"ExpandIterable":{"Iterable":["2"],"Iterable.E":"2"},"ExpandIterator":{"Iterator":["2"]},"TakeIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthTakeIterable":{"TakeIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"TakeIterator":{"Iterator":["1"]},"SkipIterable":{"Iterable":["1"],"Iterable.E":"1"},"EfficientLengthSkipIterable":{"SkipIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"SkipIterator":{"Iterator":["1"]},"SkipWhileIterable":{"Iterable":["1"],"Iterable.E":"1"},"SkipWhileIterator":{"Iterator":["1"]},"EmptyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"EmptyIterator":{"Iterator":["1"]},"WhereTypeIterable":{"Iterable":["1"],"Iterable.E":"1"},"WhereTypeIterator":{"Iterator":["1"]},"UnmodifiableListBase":{"ListBase":["1"],"UnmodifiableListMixin":["1"],"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"ReversedListIterable":{"ListIterable":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"],"ListIterable.E":"1","Iterable.E":"1"},"ConstantMap":{"Map":["1","2"]},"ConstantStringMap":{"ConstantMap":["1","2"],"Map":["1","2"]},"_KeysOrValues":{"Iterable":["1"],"Iterable.E":"1"},"_KeysOrValuesOrElementsIterator":{"Iterator":["1"]},"Instantiation":{"Closure":[],"Function":[]},"Instantiation1":{"Closure":[],"Function":[]},"NullError":{"TypeError":[],"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"NullThrownFromJavaScriptException":{"Exception":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"Closure0Args":{"Closure":[],"Function":[]},"Closure2Args":{"Closure":[],"Function":[]},"TearOffClosure":{"Closure":[],"Function":[]},"StaticClosure":{"Closure":[],"Function":[]},"BoundClosure":{"Closure":[],"Function":[]},"RuntimeError":{"Error":[]},"JsLinkedHashMap":{"MapBase":["1","2"],"LinkedHashMap":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"LinkedHashMapKeysIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"LinkedHashMapValuesIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapValueIterator":{"Iterator":["1"]},"JSSyntaxRegExp":{"RegExp":[],"Pattern":[]},"_MatchImplementation":{"RegExpMatch":[],"Match":[]},"_AllMatchesIterable":{"Iterable":["RegExpMatch"],"Iterable.E":"RegExpMatch"},"_AllMatchesIterator":{"Iterator":["RegExpMatch"]},"StringMatch":{"Match":[]},"_StringAllMatchesIterable":{"Iterable":["Match"],"Iterable.E":"Match"},"_StringAllMatchesIterator":{"Iterator":["Match"]},"NativeByteBuffer":{"JSObject":[],"ByteBuffer":[],"TrustedGetRuntimeType":[]},"NativeTypedData":{"JSObject":[]},"NativeByteData":{"ByteData":[],"JSObject":[],"TrustedGetRuntimeType":[]},"NativeTypedArray":{"JavaScriptIndexingBehavior":["1"],"JSObject":[]},"NativeTypedArrayOfDouble":{"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"Iterable":["double"],"FixedLengthListMixin":["double"]},"NativeTypedArrayOfInt":{"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"]},"NativeFloat32List":{"Float32List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double"},"NativeFloat64List":{"Float64List":[],"ListBase":["double"],"NativeTypedArray":["double"],"List":["double"],"JavaScriptIndexingBehavior":["double"],"EfficientLengthIterable":["double"],"JSObject":[],"Iterable":["double"],"FixedLengthListMixin":["double"],"TrustedGetRuntimeType":[],"ListBase.E":"double"},"NativeInt16List":{"NativeTypedArrayOfInt":[],"Int16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeInt32List":{"NativeTypedArrayOfInt":[],"Int32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeInt8List":{"NativeTypedArrayOfInt":[],"Int8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint16List":{"NativeTypedArrayOfInt":[],"Uint16List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint32List":{"NativeTypedArrayOfInt":[],"Uint32List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint8ClampedList":{"NativeTypedArrayOfInt":[],"Uint8ClampedList":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"NativeUint8List":{"NativeTypedArrayOfInt":[],"Uint8List":[],"ListBase":["int"],"NativeTypedArray":["int"],"List":["int"],"JavaScriptIndexingBehavior":["int"],"EfficientLengthIterable":["int"],"JSObject":[],"Iterable":["int"],"FixedLengthListMixin":["int"],"TrustedGetRuntimeType":[],"ListBase.E":"int"},"_Error":{"Error":[]},"_TypeError":{"TypeError":[],"Error":[]},"AsyncError":{"Error":[]},"_TimerImpl":{"Timer":[]},"_Completer":{"Completer":["1"]},"_AsyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_SyncCompleter":{"_Completer":["1"],"Completer":["1"]},"_Future":{"Future":["1"]},"_StreamController":{"StreamController":["1"],"StreamSink":["1"],"StreamConsumer":["1"],"_StreamControllerLifecycle":["1"],"_EventDispatch":["1"]},"_SyncStreamController":{"_SyncStreamControllerDispatch":["1"],"_StreamController":["1"],"StreamController":["1"],"StreamSink":["1"],"StreamConsumer":["1"],"_StreamControllerLifecycle":["1"],"_EventDispatch":["1"]},"_ControllerStream":{"_StreamImpl":["1"],"Stream":["1"],"Stream.T":"1"},"_ControllerSubscription":{"_BufferingStreamSubscription":["1"],"StreamSubscription":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamSinkWrapper":{"StreamSink":["1"],"StreamConsumer":["1"]},"_BufferingStreamSubscription":{"StreamSubscription":["1"],"_EventDispatch":["1"],"_BufferingStreamSubscription.T":"1"},"_StreamImpl":{"Stream":["1"]},"_DelayedData":{"_DelayedEvent":["1"]},"_DelayedError":{"_DelayedEvent":["@"]},"_DelayedDone":{"_DelayedEvent":["@"]},"_DoneStreamSubscription":{"StreamSubscription":["1"]},"_EmptyStream":{"Stream":["1"],"Stream.T":"1"},"_Zone":{"Zone":[]},"_CustomZone":{"_Zone":[],"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"_ZoneDelegate":{"ZoneDelegate":[]},"_ZoneSpecification":{"ZoneSpecification":[]},"_HashMap":{"MapBase":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_IdentityHashMap":{"_HashMap":["1","2"],"MapBase":["1","2"],"Map":["1","2"],"MapBase.K":"1","MapBase.V":"2"},"_HashMapKeyIterable":{"EfficientLengthIterable":["1"],"Iterable":["1"],"Iterable.E":"1"},"_HashMapKeyIterator":{"Iterator":["1"]},"_LinkedHashSet":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_LinkedHashSetIterator":{"Iterator":["1"]},"ListBase":{"List":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"MapBase":{"Map":["1","2"]},"MapView":{"Map":["1","2"]},"UnmodifiableMapView":{"_UnmodifiableMapView_MapView__UnmodifiableMapMixin":["1","2"],"MapView":["1","2"],"_UnmodifiableMapMixin":["1","2"],"Map":["1","2"]},"SetBase":{"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_SetBase":{"SetBase":["1"],"Set":["1"],"EfficientLengthIterable":["1"],"Iterable":["1"]},"_JsonMap":{"MapBase":["String","@"],"Map":["String","@"],"MapBase.K":"String","MapBase.V":"@"},"_JsonMapKeyIterable":{"ListIterable":["String"],"EfficientLengthIterable":["String"],"Iterable":["String"],"ListIterable.E":"String","Iterable.E":"String"},"AsciiCodec":{"Codec":["String","List<int>"]},"_UnicodeSubsetEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"AsciiEncoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Base64Codec":{"Codec":["List<int>","String"]},"Base64Encoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"_FusedCodec":{"Codec":["1","3"]},"Converter":{"StreamTransformer":["1","2"]},"Encoding":{"Codec":["String","List<int>"]},"JsonUnsupportedObjectError":{"Error":[]},"JsonCyclicError":{"Error":[]},"JsonCodec":{"Codec":["Object?","String"]},"JsonEncoder":{"Converter":["Object?","String"],"StreamTransformer":["Object?","String"]},"JsonDecoder":{"Converter":["String","Object?"],"StreamTransformer":["String","Object?"]},"Utf8Codec":{"Codec":["String","List<int>"]},"Utf8Encoder":{"Converter":["String","List<int>"],"StreamTransformer":["String","List<int>"]},"Utf8Decoder":{"Converter":["List<int>","String"],"StreamTransformer":["List<int>","String"]},"double":{"num":[]},"int":{"num":[]},"List":{"EfficientLengthIterable":["1"],"Iterable":["1"]},"RegExpMatch":{"Match":[]},"String":{"Pattern":[]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"StateError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"OutOfMemoryError":{"Error":[]},"StackOverflowError":{"Error":[]},"_Exception":{"Exception":[]},"FormatException":{"Exception":[]},"_StringStackTrace":{"StackTrace":[]},"StringBuffer":{"StringSink":[]},"_Uri":{"Uri":[]},"_SimpleUri":{"Uri":[]},"_DataUri":{"Uri":[]},"NullRejectionException":{"Exception":[]},"NullStreamSink":{"StreamSink":["1"],"StreamConsumer":["1"]},"PathException":{"Exception":[]},"PosixStyle":{"InternalStyle":[]},"UrlStyle":{"InternalStyle":[]},"WindowsStyle":{"InternalStyle":[]},"Chain":{"StackTrace":[]},"LazyTrace":{"Trace":[],"StackTrace":[]},"Trace":{"StackTrace":[]},"UnparsedFrame":{"Frame":[]},"GuaranteeChannel":{"StreamChannelMixin":["1"],"StreamChannel":["1"]},"_GuaranteeSink":{"StreamSink":["1"],"StreamConsumer":["1"]},"_MultiChannel":{"StreamChannelMixin":["1"],"MultiChannel":["1"],"StreamChannel":["1"]},"VirtualChannel":{"StreamChannelMixin":["1"],"MultiChannel":["1"],"StreamChannel":["1"]},"StreamChannelMixin":{"StreamChannel":["1"]},"Int8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint8ClampedList":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint16List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Int32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Uint32List":{"List":["int"],"EfficientLengthIterable":["int"],"Iterable":["int"]},"Float32List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]},"Float64List":{"List":["double"],"EfficientLengthIterable":["double"],"Iterable":["double"]}}'));
   A._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"UnmodifiableListBase":1,"__CastListBase__CastIterableBase_ListMixin":2,"NativeTypedArray":1,"_DelayedEvent":1,"_SetBase":1}'));
   var string$ = {
-    ______: "===== asynchronous gap ===========================\n",
+    x00_____: "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\u03f6\x00\u0404\u03f4 \u03f4\u03f6\u01f6\u01f6\u03f6\u03fc\u01f4\u03ff\u03ff\u0584\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u05d4\u01f4\x00\u01f4\x00\u0504\u05c4\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0400\x00\u0400\u0200\u03f7\u0200\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u03ff\u0200\u0200\u0200\u03f7\x00",
+    x3d_____: "===== asynchronous gap ===========================\n",
     Cannotff: "Cannot extract a file path from a URI with a fragment component",
     Cannotfq: "Cannot extract a file path from a URI with a query component",
     Cannotn: "Cannot extract a non-Windows file path from a file URI with an authority",
@@ -15921,7 +15332,6 @@
       AsyncError: findType("AsyncError"),
       ByteBuffer: findType("ByteBuffer"),
       ByteData: findType("ByteData"),
-      ConstantMapView_Symbol_dynamic: findType("ConstantMapView<Symbol0,@>"),
       Duration: findType("Duration"),
       EfficientLengthIterable_dynamic: findType("EfficientLengthIterable<@>"),
       Error: findType("Error"),
@@ -15932,37 +15342,33 @@
       Frame_Function_Frame: findType("Frame(Frame)"),
       Frame_Function_String: findType("Frame(String)"),
       Function: findType("Function"),
-      Future_dynamic: findType("Future<@>"),
       Int16List: findType("Int16List"),
       Int32List: findType("Int32List"),
       Int8List: findType("Int8List"),
-      Invocation: findType("Invocation"),
       Iterable_String: findType("Iterable<String>"),
       Iterable_dynamic: findType("Iterable<@>"),
-      Iterable_nullable_Object: findType("Iterable<Object?>"),
+      Iterable_int: findType("Iterable<int>"),
       JSArray_Frame: findType("JSArray<Frame>"),
-      JSArray_Object: findType("JSArray<Object>"),
       JSArray_String: findType("JSArray<String>"),
       JSArray_Trace: findType("JSArray<Trace>"),
-      JSArray_Uint8List: findType("JSArray<Uint8List>"),
       JSArray_dynamic: findType("JSArray<@>"),
       JSArray_int: findType("JSArray<int>"),
+      JSArray_nullable_Object: findType("JSArray<Object?>"),
       JSArray_nullable_String: findType("JSArray<String?>"),
       JSNull: findType("JSNull"),
+      JSObject: findType("JSObject"),
       JavaScriptFunction: findType("JavaScriptFunction"),
       JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"),
-      JavaScriptObject: findType("JavaScriptObject"),
-      JsLinkedHashMap_Symbol_dynamic: findType("JsLinkedHashMap<Symbol0,@>"),
       List_String: findType("List<String>"),
       List_dynamic: findType("List<@>"),
       List_int: findType("List<int>"),
       Map_String_String: findType("Map<String,String>"),
       Map_dynamic_dynamic: findType("Map<@,@>"),
-      Map_of_nullable_Object_and_nullable_Object: findType("Map<Object?,Object?>"),
       MappedIterable_String_Frame: findType("MappedIterable<String,Frame>"),
       MappedListIterable_Frame_Frame: findType("MappedListIterable<Frame,Frame>"),
       MappedListIterable_String_Trace: findType("MappedListIterable<String,Trace>"),
       MappedListIterable_String_dynamic: findType("MappedListIterable<String,@>"),
+      NativeTypedArrayOfInt: findType("NativeTypedArrayOfInt"),
       NativeUint8List: findType("NativeUint8List"),
       Null: findType("Null"),
       Object: findType("Object"),
@@ -15970,7 +15376,6 @@
       RegExpMatch: findType("RegExpMatch"),
       StackTrace: findType("StackTrace"),
       String: findType("String"),
-      Symbol: findType("Symbol0"),
       Timer: findType("Timer"),
       Trace: findType("Trace"),
       Trace_Function_String: findType("Trace(String)"),
@@ -16005,26 +15410,29 @@
       dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"),
       dynamic_Function_String: findType("@(String)"),
       int: findType("int"),
-      legacy_Never: findType("0&*"),
-      legacy_Object: findType("Object*"),
       nullable_Future_Null: findType("Future<Null>?"),
-      nullable_JavaScriptObject: findType("JavaScriptObject?"),
+      nullable_JSObject: findType("JSObject?"),
+      nullable_JavaScriptFunction: findType("JavaScriptFunction?"),
       nullable_List_dynamic: findType("List<@>?"),
       nullable_Map_of_nullable_Object_and_nullable_Object: findType("Map<Object?,Object?>?"),
       nullable_Object: findType("Object?"),
       nullable_StackTrace: findType("StackTrace?"),
+      nullable_String: findType("String?"),
       nullable_Zone: findType("Zone?"),
       nullable_ZoneDelegate: findType("ZoneDelegate?"),
       nullable_ZoneSpecification: findType("ZoneSpecification?"),
       nullable__DelayedEvent_dynamic: findType("_DelayedEvent<@>?"),
       nullable__FutureListener_dynamic_dynamic: findType("_FutureListener<@,@>?"),
       nullable__LinkedHashSetCell: findType("_LinkedHashSetCell?"),
+      nullable_bool: findType("bool?"),
+      nullable_double: findType("double?"),
+      nullable_int: findType("int?"),
+      nullable_num: findType("num?"),
       nullable_void_Function: findType("~()?"),
       num: findType("num"),
       void: findType("~"),
       void_Function: findType("~()"),
       void_Function_$opt_dynamic: findType("~([@])"),
-      void_Function_JavaScriptObject: findType("~(JavaScriptObject)"),
       void_Function_Object: findType("~(Object)"),
       void_Function_Object_StackTrace: findType("~(Object,StackTrace)"),
       void_Function_String_dynamic: findType("~(String,@)"),
@@ -16180,42 +15588,31 @@
     B.C_Utf8Codec = new A.Utf8Codec();
     B.C_Utf8Encoder = new A.Utf8Encoder();
     B.C__DelayedDone = new A._DelayedDone();
-    B.C__Required = new A._Required();
     B.C__RootZone = new A._RootZone();
     B.Duration_0 = new A.Duration(0);
     B.Duration_1000000 = new A.Duration(1000000);
     B.JsonDecoder_null = new A.JsonDecoder(null);
     B.JsonEncoder_null = new A.JsonEncoder(null);
-    B.List_2jN = A._setArrayType(makeConstList([0, 0, 32722, 12287, 65534, 34815, 65534, 18431]), type$.JSArray_int);
-    B.List_42A = A._setArrayType(makeConstList([0, 0, 65490, 45055, 65535, 34815, 65534, 18431]), type$.JSArray_int);
-    B.List_4AN = A._setArrayType(makeConstList([0, 0, 32754, 11263, 65534, 34815, 65534, 18431]), type$.JSArray_int);
-    B.List_GVy = A._setArrayType(makeConstList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047]), type$.JSArray_int);
-    B.List_M2I0 = A._setArrayType(makeConstList([0, 0, 32722, 12287, 65535, 34815, 65534, 18431]), type$.JSArray_int);
-    B.List_M2I = A._setArrayType(makeConstList([0, 0, 65490, 12287, 65535, 34815, 65534, 18431]), type$.JSArray_int);
-    B.List_VOY = A._setArrayType(makeConstList([0, 0, 32776, 33792, 1, 10240, 0, 0]), type$.JSArray_int);
-    B.List_empty = A._setArrayType(makeConstList([]), type$.JSArray_String);
-    B.List_empty0 = A._setArrayType(makeConstList([]), type$.JSArray_dynamic);
-    B.List_piR = A._setArrayType(makeConstList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431]), type$.JSArray_int);
+    B.List_empty = makeConstList([], type$.JSArray_String);
     B.Object_empty = {};
     B.Map_empty = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap<String,String>"));
-    B.Map_empty0 = new A.ConstantStringMap(B.Object_empty, [], A.findType("ConstantStringMap<Symbol0,@>"));
-    B.Symbol_call = new A.Symbol("call");
-    B.Type_ByteBuffer_EOZ = A.typeLiteral("ByteBuffer");
-    B.Type_ByteData_mF8 = A.typeLiteral("ByteData");
-    B.Type_Float32List_Ymk = A.typeLiteral("Float32List");
-    B.Type_Float64List_Ymk = A.typeLiteral("Float64List");
-    B.Type_Int16List_cot = A.typeLiteral("Int16List");
-    B.Type_Int32List_m1p = A.typeLiteral("Int32List");
-    B.Type_Int8List_woc = A.typeLiteral("Int8List");
-    B.Type_Object_QJv = A.typeLiteral("Object");
-    B.Type_Uint16List_2mh = A.typeLiteral("Uint16List");
-    B.Type_Uint32List_2mh = A.typeLiteral("Uint32List");
-    B.Type_Uint8ClampedList_9Bb = A.typeLiteral("Uint8ClampedList");
-    B.Type_Uint8List_CSc = A.typeLiteral("Uint8List");
+    B.Type_ByteBuffer_rqD = A.typeLiteral("ByteBuffer");
+    B.Type_ByteData_9dB = A.typeLiteral("ByteData");
+    B.Type_Float32List_9Kz = A.typeLiteral("Float32List");
+    B.Type_Float64List_9Kz = A.typeLiteral("Float64List");
+    B.Type_Int16List_s5h = A.typeLiteral("Int16List");
+    B.Type_Int32List_O8Z = A.typeLiteral("Int32List");
+    B.Type_Int8List_rFV = A.typeLiteral("Int8List");
+    B.Type_Object_A4p = A.typeLiteral("Object");
+    B.Type_Uint16List_kmP = A.typeLiteral("Uint16List");
+    B.Type_Uint32List_kmP = A.typeLiteral("Uint32List");
+    B.Type_Uint8ClampedList_04U = A.typeLiteral("Uint8ClampedList");
+    B.Type_Uint8List_8Eb = A.typeLiteral("Uint8List");
     B.Utf8Decoder_false = new A.Utf8Decoder(false);
-    B._StringStackTrace_uwd = new A._StringStackTrace("");
-    B._ZoneFunction_NIe = new A._ZoneFunction(B.C__RootZone, A.async___rootHandleUncaughtError$closure(), type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace);
-    B._ZoneFunction_QOa = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterUnaryCallback$closure(), A.findType("_ZoneFunction<0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>>"));
+    B._StringStackTrace_OdL = new A._StringStackTrace("");
+    B._ZoneFunction_KjJ = new A._ZoneFunction(B.C__RootZone, A.async___rootHandleUncaughtError$closure(), type$._ZoneFunction_of_void_Function_Zone_ZoneDelegate_Zone_Object_StackTrace);
+    B._ZoneFunction_PAY = new A._ZoneFunction(B.C__RootZone, A.async___rootCreatePeriodicTimer$closure(), A.findType("_ZoneFunction<Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))>"));
+    B._ZoneFunction_Xkh = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterUnaryCallback$closure(), A.findType("_ZoneFunction<0^(1^)(Zone,ZoneDelegate,Zone,0^(1^))<Object?,Object?>>"));
     B._ZoneFunction__RootZone__rootCreateTimer = new A._ZoneFunction(B.C__RootZone, A.async___rootCreateTimer$closure(), A.findType("_ZoneFunction<Timer(Zone,ZoneDelegate,Zone,Duration,~())>"));
     B._ZoneFunction__RootZone__rootErrorCallback = new A._ZoneFunction(B.C__RootZone, A.async___rootErrorCallback$closure(), A.findType("_ZoneFunction<AsyncError?(Zone,ZoneDelegate,Zone,Object,StackTrace?)>"));
     B._ZoneFunction__RootZone__rootFork = new A._ZoneFunction(B.C__RootZone, A.async___rootFork$closure(), A.findType("_ZoneFunction<Zone(Zone,ZoneDelegate,Zone,ZoneSpecification?,Map<Object?,Object?>?)>"));
@@ -16225,12 +15622,11 @@
     B._ZoneFunction__RootZone__rootRunBinary = new A._ZoneFunction(B.C__RootZone, A.async___rootRunBinary$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^(1^,2^),1^,2^)<Object?,Object?,Object?>>"));
     B._ZoneFunction__RootZone__rootRunUnary = new A._ZoneFunction(B.C__RootZone, A.async___rootRunUnary$closure(), A.findType("_ZoneFunction<0^(Zone,ZoneDelegate,Zone,0^(1^),1^)<Object?,Object?>>"));
     B._ZoneFunction__RootZone__rootScheduleMicrotask = new A._ZoneFunction(B.C__RootZone, A.async___rootScheduleMicrotask$closure(), A.findType("_ZoneFunction<~(Zone,ZoneDelegate,Zone,~())>"));
-    B._ZoneFunction_kWM = new A._ZoneFunction(B.C__RootZone, A.async___rootCreatePeriodicTimer$closure(), A.findType("_ZoneFunction<Timer(Zone,ZoneDelegate,Zone,Duration,~(Timer))>"));
-    B._ZoneFunction_qxw = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterBinaryCallback$closure(), A.findType("_ZoneFunction<0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>>"));
+    B._ZoneFunction_e9o = new A._ZoneFunction(B.C__RootZone, A.async___rootRegisterBinaryCallback$closure(), A.findType("_ZoneFunction<0^(1^,2^)(Zone,ZoneDelegate,Zone,0^(1^,2^))<Object?,Object?,Object?>>"));
   })();
   (function staticFields() {
     $._JS_INTEROP_INTERCEPTOR_TAG = null;
-    $.toStringVisiting = A._setArrayType([], type$.JSArray_Object);
+    $._toStringVisiting = A._setArrayType([], A.findType("JSArray<Object>"));
     $.Primitives__identityHashCodeProperty = null;
     $.BoundClosure__receiverFieldNameCache = null;
     $.BoundClosure__interceptorFieldNameCache = null;
@@ -16250,14 +15646,16 @@
     $.Uri__cachedBaseUri = null;
     $._currentUriBase = null;
     $._current = null;
-    $._iframes = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.JavaScriptObject);
+    $._iframes = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, type$.JSObject);
     $._subscriptions = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, A.findType("StreamSubscription<~>"));
     $._domSubscriptions = A.LinkedHashMap_LinkedHashMap$_empty(type$.int, A.findType("Subscription"));
   })();
   (function lazyInitializers() {
     var _lazyFinal = hunkHelpers.lazyFinal;
     _lazyFinal($, "DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure"));
+    _lazyFinal($, "DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME", "$get$DART_CLOSURE_DART_JSINTEROP_PROPERTY_NAME", () => A.getIsolateAffinityTag("_$dart_dartClosure_dartJSInterop"));
     _lazyFinal($, "nullFuture", "$get$nullFuture", () => B.C__RootZone.run$1$1(new A.nullFuture_closure(), A.findType("Future<~>")));
+    _lazyFinal($, "_safeToStringHooks", "$get$_safeToStringHooks", () => A._setArrayType([new J.JSArraySafeToStringHook()], A.findType("JSArray<SafeToStringHook>")));
     _lazyFinal($, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethodPattern", () => A.TypeErrorDecoder_extractPattern(A.TypeErrorDecoder_provokeCallErrorOn({
       toString: function() {
         return "$receiver$";
@@ -16313,8 +15711,7 @@
     _lazyFinal($, "_Utf8Decoder__decoderNonfatal", "$get$_Utf8Decoder__decoderNonfatal", () => new A._Utf8Decoder__decoderNonfatal_closure().call$0());
     _lazyFinal($, "_Base64Decoder__inverseAlphabet", "$get$_Base64Decoder__inverseAlphabet", () => A.NativeInt8List__create1(A._ensureNativeList(A._setArrayType([-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -1, -2, -2, -2, -2, -2, 62, -2, 62, -2, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -2, -2, -2, -1, -2, -2, -2, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -2, -2, -2, -2, 63, -2, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -2, -2, -2, -2, -2], type$.JSArray_int))));
     _lazyFinal($, "_Uri__needsNoEncoding", "$get$_Uri__needsNoEncoding", () => A.RegExp_RegExp("^[\\-\\.0-9A-Z_a-z~]*$", false));
-    _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_QJv));
-    _lazyFinal($, "_scannerTables", "$get$_scannerTables", () => A._createTables());
+    _lazyFinal($, "_hashSeed", "$get$_hashSeed", () => A.objectHashCode(B.Type_Object_A4p));
     _lazyFinal($, "windows", "$get$windows", () => A.Context_Context($.$get$Style_windows()));
     _lazyFinal($, "context", "$get$context", () => new A.Context($.$get$Style_platform(), null));
     _lazyFinal($, "Style_posix", "$get$Style_posix", () => new A.PosixStyle(A.RegExp_RegExp("/", false), A.RegExp_RegExp("[^/]$", false), A.RegExp_RegExp("^/", false)));
@@ -16322,14 +15719,11 @@
     _lazyFinal($, "Style_url", "$get$Style_url", () => new A.UrlStyle(A.RegExp_RegExp("/", false), A.RegExp_RegExp("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$", false), A.RegExp_RegExp("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*", false), A.RegExp_RegExp("^/", false)));
     _lazyFinal($, "Style_platform", "$get$Style_platform", () => A.Style__getPlatformStyle());
     _lazyFinal($, "_vmFrame", "$get$_vmFrame", () => A.RegExp_RegExp("^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$", false));
-    _lazyFinal($, "_v8JsFrame", "$get$_v8JsFrame", () => A.RegExp_RegExp("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$", false));
-    _lazyFinal($, "_v8JsUrlLocation", "$get$_v8JsUrlLocation", () => A.RegExp_RegExp("^(.*?):(\\d+)(?::(\\d+))?$|native$", false));
-    _lazyFinal($, "_v8WasmFrame", "$get$_v8WasmFrame", () => A.RegExp_RegExp("^\\s*at (?:(?<member>.+) )?(?:\\(?(?:(?<uri>\\S+):wasm-function\\[(?<index>\\d+)\\]\\:0x(?<offset>[0-9a-fA-F]+))\\)?)$", false));
+    _lazyFinal($, "_v8Frame", "$get$_v8Frame", () => A.RegExp_RegExp("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$", false));
+    _lazyFinal($, "_v8UrlLocation", "$get$_v8UrlLocation", () => A.RegExp_RegExp("^(.*?):(\\d+)(?::(\\d+))?$|native$", false));
     _lazyFinal($, "_v8EvalLocation", "$get$_v8EvalLocation", () => A.RegExp_RegExp("^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$", false));
     _lazyFinal($, "_firefoxEvalLocation", "$get$_firefoxEvalLocation", () => A.RegExp_RegExp("(\\S+)@(\\S+) line (\\d+) >.* (Function|eval):\\d+:\\d+", false));
-    _lazyFinal($, "_firefoxSafariJSFrame", "$get$_firefoxSafariJSFrame", () => A.RegExp_RegExp("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$", false));
-    _lazyFinal($, "_firefoxWasmFrame", "$get$_firefoxWasmFrame", () => A.RegExp_RegExp("^(?<member>.*?)@(?:(?<uri>\\S+).*?:wasm-function\\[(?<index>\\d+)\\]:0x(?<offset>[0-9a-fA-F]+))$", false));
-    _lazyFinal($, "_safariWasmFrame", "$get$_safariWasmFrame", () => A.RegExp_RegExp("^.*?wasm-function\\[(?<member>.*)\\]@\\[wasm code\\]$", false));
+    _lazyFinal($, "_firefoxSafariFrame", "$get$_firefoxSafariFrame", () => A.RegExp_RegExp("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$", false));
     _lazyFinal($, "_friendlyFrame", "$get$_friendlyFrame", () => A.RegExp_RegExp("^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d].*)$", false));
     _lazyFinal($, "_asyncBody", "$get$_asyncBody", () => A.RegExp_RegExp("<(<anonymous closure>|[^>]+)_async_body>", false));
     _lazyFinal($, "_initialDot", "$get$_initialDot", () => A.RegExp_RegExp("^\\.", false));
@@ -16342,7 +15736,10 @@
     _lazyFinal($, "_firefoxSafariTrace", "$get$_firefoxSafariTrace", () => A.RegExp_RegExp("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$", true));
     _lazyFinal($, "_friendlyTrace", "$get$_friendlyTrace", () => A.RegExp_RegExp("^[^\\s<][^\\s]*( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$", true));
     _lazyFinal($, "vmChainGap", "$get$vmChainGap", () => A.RegExp_RegExp("^<asynchronous suspension>\\n?$", true));
-    _lazyFinal($, "_currentUrl", "$get$_currentUrl", () => A.Uri_parse(A.getProperty(A.getProperty(self.window, "location", type$.JavaScriptObject), "href", type$.String)));
+    _lazyFinal($, "_currentUrl", "$get$_currentUrl", () => {
+      var t1 = type$.JSObject;
+      return A.Uri_parse(A.getProperty(A.getProperty(A.getProperty(A.staticInteropGlobalContext(), "window", t1), "location", t1), "href", type$.String));
+    });
   })();
   (function nativeSupport() {
     !function() {
@@ -16367,8 +15764,8 @@
       }
       init.dispatchPropertyName = init.getIsolateTag("dispatch_record");
     }();
-    hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List});
-    hunkHelpers.setOrUpdateLeafTags({ArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false});
+    hunkHelpers.setOrUpdateInterceptorsByTag({ArrayBuffer: A.NativeByteBuffer, SharedArrayBuffer: A.NativeByteBuffer, ArrayBufferView: A.NativeTypedData, DataView: A.NativeByteData, Float32Array: A.NativeFloat32List, Float64Array: A.NativeFloat64List, Int16Array: A.NativeInt16List, Int32Array: A.NativeInt32List, Int8Array: A.NativeInt8List, Uint16Array: A.NativeUint16List, Uint32Array: A.NativeUint32List, Uint8ClampedArray: A.NativeUint8ClampedList, CanvasPixelArray: A.NativeUint8ClampedList, Uint8Array: A.NativeUint8List});
+    hunkHelpers.setOrUpdateLeafTags({ArrayBuffer: true, SharedArrayBuffer: true, ArrayBufferView: false, DataView: true, Float32Array: true, Float64Array: true, Int16Array: true, Int32Array: true, Int8Array: true, Uint16Array: true, Uint32Array: true, Uint8ClampedArray: true, CanvasPixelArray: true, Uint8Array: false});
     A.NativeTypedArray.$nativeSuperclassTag = "ArrayBufferView";
     A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin.$nativeSuperclassTag = "ArrayBufferView";
     A._NativeTypedArrayOfDouble_NativeTypedArray_ListMixin_FixedLengthListMixin.$nativeSuperclassTag = "ArrayBufferView";
@@ -16380,12 +15777,12 @@
   Function.prototype.call$1 = function(a) {
     return this(a);
   };
-  Function.prototype.call$0 = function() {
-    return this();
-  };
   Function.prototype.call$2 = function(a, b) {
     return this(a, b);
   };
+  Function.prototype.call$0 = function() {
+    return this();
+  };
   Function.prototype.call$1$1 = function(a) {
     return this(a);
   };
@@ -16428,9 +15825,6 @@
   Function.prototype.call$1$2 = function(a, b) {
     return this(a, b);
   };
-  Function.prototype.call$1$0 = function() {
-    return this();
-  };
   Function.prototype.call$2$3 = function(a, b, c) {
     return this(a, b, c);
   };