Version 1.22.0-dev.10.5

Cherry-pick 15527f136f984af2707ef52969ea5391aa6b49fc to dev
Cherry-pick ac85576979a199b3d9307448077a2792eec7acff to dev
Cherry-pick a3b4366f11bee47b818b263b75adf0617f319563 to dev
Cherry-pick 5817ba47e26469fa276c3a87bfdbcd6996894b96 to dev
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 26c1a02..800b6e3 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -33,7 +33,7 @@
 import 'package:analyzer/src/generated/utilities_dart.dart';
 import 'package:analyzer/src/task/dart.dart';
 import 'package:analyzer/src/task/strong/checker.dart' as checker
-    show isKnownFunction;
+    show hasStrictArrow;
 
 /**
  * A visitor used to traverse an AST structure looking for additional errors and
@@ -2298,7 +2298,9 @@
             return;
           }
         }
-      } else if (expectedReturnType.isDynamic || expectedReturnType.isVoid) {
+      } else if (expectedReturnType.isDynamic ||
+          expectedReturnType.isVoid ||
+          expectedReturnType.isDartCoreNull) {
         return;
       }
       _hasReturnWithoutValue = true;
@@ -2505,7 +2507,6 @@
       DartType actualStaticType,
       DartType expectedStaticType,
       ErrorCode errorCode) {
-    // TODO(leafp): Move the Downcast functionality here.
     if (!_expressionIsAssignableAtType(
         expression, actualStaticType, expectedStaticType)) {
       _errorReporter.reportTypeErrorForNode(
@@ -6234,11 +6235,10 @@
 
   bool _expressionIsAssignableAtType(Expression expression,
       DartType actualStaticType, DartType expectedStaticType) {
-    bool concrete = _options.strongMode && checker.isKnownFunction(expression);
+    bool concrete = _options.strongMode && checker.hasStrictArrow(expression);
     if (concrete && actualStaticType is FunctionType) {
       actualStaticType =
           _typeSystem.functionTypeToConcreteType(actualStaticType);
-      // TODO(leafp): Move the Downcast functionality here.
     }
     return _typeSystem.isAssignableTo(actualStaticType, expectedStaticType);
   }
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 973ef70..56e59c5 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -4189,9 +4189,6 @@
     if (_returnStack.isNotEmpty && _inferredReturn.isNotEmpty) {
       DartType context = _returnStack.removeLast() ?? DynamicTypeImpl.instance;
       DartType inferred = _inferredReturn.removeLast();
-      if (inferred.isBottom || inferred.isDartCoreNull) {
-        return;
-      }
 
       if (_typeSystem.isSubtypeOf(inferred, context)) {
         setType(node, inferred);
@@ -4206,7 +4203,7 @@
    */
   void pushReturnContext(BlockFunctionBody node) {
     _returnStack.add(getContext(node));
-    _inferredReturn.add(BottomTypeImpl.instance);
+    _inferredReturn.add(_typeProvider.nullType);
   }
 
   /**
@@ -5217,8 +5214,26 @@
   }
 
   /**
+   * Returns true if this method is `Future.then` or an override thereof.
+   *
+   * If so we will apply special typing rules in strong mode, to handle the
+   * implicit union of `S | Future<S>`
+   */
+  // TODO(leafp): Eliminate this when code is switched to using FutureOr
+  bool isFutureThen(Element element) {
+    // If we are a method named then
+    if (element is MethodElement && element.name == 'then') {
+      DartType type = element.enclosingElement.type;
+      // On Future or a subtype, then we're good.
+      return (type.isDartAsyncFuture || isSubtypeOfFuture(type));
+    }
+    return false;
+  }
+
+  /**
    * Returns true if this type is any subtype of the built in Future type.
    */
+  // TODO(leafp): Eliminate this when code is switched to using FutureOr
   bool isSubtypeOfFuture(DartType type) =>
       typeSystem.isSubtypeOf(type, typeProvider.futureDynamicType);
 
@@ -6059,8 +6074,27 @@
               matchFunctionTypeParameters(node.typeParameters, functionType);
           if (functionType is FunctionType) {
             _inferFormalParameterList(node.parameters, functionType);
-            InferenceContext.setType(
-                node.body, _computeReturnOrYieldType(functionType.returnType));
+            DartType returnType;
+            ParameterElement parameterElement =
+                resolutionMap.staticParameterElementForExpression(node);
+            if (isFutureThen(parameterElement?.enclosingElement)) {
+              var futureThenType =
+                  InferenceContext.getContext(node.parent) as FunctionType;
+
+              // TODO(leafp): Get rid of this once code has been updated to use
+              // FutureOr
+              // Introduce FutureOr<T> for backwards compatibility if it was
+              // missing in old code.
+              if (futureThenType.parameters.isNotEmpty) {
+                if (!futureThenType.parameters[0].type.isDartAsyncFutureOr) {
+                  var typeParamS =
+                      futureThenType.returnType.flattenFutures(typeSystem);
+                  returnType = _createFutureOr(typeParamS);
+                }
+              }
+            }
+            returnType ??= _computeReturnOrYieldType(functionType.returnType);
+            InferenceContext.setType(node.body, returnType);
           }
         }
         super.visitFunctionExpression(node);
@@ -9029,6 +9063,11 @@
   InterfaceType get futureNullType;
 
   /**
+   * Return the type representing 'FutureOr<Null>'.
+   */
+  InterfaceType get futureOrNullType;
+
+  /**
    * Return the type representing the built-in type 'FutureOr'.
    */
   InterfaceType get futureOrType;
@@ -9222,6 +9261,11 @@
   InterfaceType _futureNullType;
 
   /**
+   * The type representing 'FutureOr<Null>'.
+   */
+  InterfaceType _futureOrNullType;
+
+  /**
    * The type representing the built-in type 'FutureOr'.
    */
   InterfaceType _futureOrType;
@@ -9357,6 +9401,9 @@
   InterfaceType get futureNullType => _futureNullType;
 
   @override
+  InterfaceType get futureOrNullType => _futureOrNullType;
+
+  @override
   InterfaceType get futureOrType => _futureOrType;
 
   @override
@@ -9461,6 +9508,7 @@
     _undefinedType = UndefinedTypeImpl.instance;
     _futureDynamicType = _futureType.instantiate(<DartType>[_dynamicType]);
     _futureNullType = _futureType.instantiate(<DartType>[_nullType]);
+    _futureOrNullType = _futureOrType.instantiate(<DartType>[_nullType]);
     _iterableDynamicType = _iterableType.instantiate(<DartType>[_dynamicType]);
     _streamDynamicType = _streamType.instantiate(<DartType>[_dynamicType]);
   }
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index a2aeae1..b0d106c 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -1967,6 +1967,45 @@
           argTypes.add(argumentList.arguments[i].staticType);
         }
       }
+
+      // TODO(leafp): remove this again after code has been updated to
+      // use FutureOr on classes that implement Future
+      // Special case Future<T>.then upwards inference. It has signature:
+      //
+      //     <S>(T -> (S | Future<S>)) -> Future<S>
+      //
+      // Based on the first argument type, we'll pick one of these signatures:
+      //
+      //     <S>(T -> S) -> Future<S>
+      //     <S>(T -> Future<S>) -> Future<S>
+      //
+      // ... and finish the inference using that.
+      if (argTypes.isNotEmpty && _resolver.isFutureThen(fnType.element)) {
+        var firstArgType = argTypes[0];
+        var firstParamType = paramTypes[0];
+        if (firstArgType is FunctionType &&
+            firstParamType is FunctionType &&
+            !firstParamType.returnType.isDartAsyncFutureOr) {
+          var argReturnType = firstArgType.returnType;
+          // Skip the inference if we have the top type. It can only lead to
+          // worse inference. For example, this happens when the lambda returns
+          // S or Future<S> in a conditional.
+          if (!argReturnType.isObject && !argReturnType.isDynamic) {
+            DartType paramReturnType = _typeProvider.futureOrType
+                .instantiate([fnType.typeFormals[0].type]);
+
+            // Adjust the expected parameter type to have this return type.
+            var function = new FunctionElementImpl(firstParamType.name, -1)
+              ..isSynthetic = true
+              ..shareParameters(firstParamType.parameters)
+              ..returnType = paramReturnType;
+            function.type = new FunctionTypeImpl(function);
+            // Use this as the expected 1st parameter type.
+            paramTypes[0] = function.type;
+          }
+        }
+      }
+
       return ts.inferGenericFunctionCall(fnType, paramTypes, argTypes,
           fnType.returnType, InferenceContext.getContext(node),
           errorReporter: _resolver.errorReporter, errorNode: errorNode);
diff --git a/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart b/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
index 8460484..cb70a53 100644
--- a/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
+++ b/pkg/analyzer/lib/src/generated/testing/test_type_provider.dart
@@ -66,6 +66,11 @@
   /**
    * The type representing the built-in type 'FutureOr'
    */
+  InterfaceType _futureOrNullType;
+
+  /**
+   * The type representing the built-in type 'FutureOr'
+   */
   InterfaceType _futureOrType;
 
   /**
@@ -267,6 +272,14 @@
   }
 
   @override
+  InterfaceType get futureOrNullType {
+    if (_futureOrNullType == null) {
+      _futureOrNullType = futureOrType.instantiate(<DartType>[nullType]);
+    }
+    return _futureOrNullType;
+  }
+
+  @override
   InterfaceType get futureOrType {
     if (_futureOrType == null) {
       Source asyncSource = _context.sourceFactory.forUri(DartSdk.DART_ASYNC);
diff --git a/pkg/analyzer/lib/src/generated/type_system.dart b/pkg/analyzer/lib/src/generated/type_system.dart
index bcf8ad5..1e1d182 100644
--- a/pkg/analyzer/lib/src/generated/type_system.dart
+++ b/pkg/analyzer/lib/src/generated/type_system.dart
@@ -1554,7 +1554,6 @@
         lowerBound = bound.upper;
         upperBound = bound.lower;
       }
-
       inferredTypes[i] =
           variance.passedIn && !upperBound.isDynamic || lowerBound.isBottom
               ? upperBound
diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
index 486ddc3..22725aa 100644
--- a/pkg/analyzer/lib/src/summary/link.dart
+++ b/pkg/analyzer/lib/src/summary/link.dart
@@ -4683,6 +4683,7 @@
   InterfaceType _functionType;
   InterfaceType _futureDynamicType;
   InterfaceType _futureNullType;
+  InterfaceType _futureOrNullType;
   InterfaceType _futureOrType;
   InterfaceType _futureType;
   InterfaceType _intType;
@@ -4733,6 +4734,10 @@
       _futureNullType ??= futureType.instantiate(<DartType>[nullType]);
 
   @override
+  InterfaceType get futureOrNullType =>
+      _futureOrNullType ??= futureOrType.instantiate(<DartType>[nullType]);
+
+  @override
   InterfaceType get futureOrType =>
       _futureOrType ??= _buildInterfaceType(_linker.asyncLibrary, 'FutureOr');
 
diff --git a/pkg/analyzer/lib/src/summary/summary_sdk.dart b/pkg/analyzer/lib/src/summary/summary_sdk.dart
index b178fdc..fcdc232 100644
--- a/pkg/analyzer/lib/src/summary/summary_sdk.dart
+++ b/pkg/analyzer/lib/src/summary/summary_sdk.dart
@@ -123,6 +123,7 @@
   InterfaceType _functionType;
   InterfaceType _futureDynamicType;
   InterfaceType _futureNullType;
+  InterfaceType _futureOrNullType;
   InterfaceType _futureOrType;
   InterfaceType _futureType;
   InterfaceType _intType;
@@ -190,6 +191,13 @@
   }
 
   @override
+  InterfaceType get futureOrNullType {
+    assert(_asyncLibrary != null);
+    _futureOrNullType ??= futureOrType.instantiate(<DartType>[nullType]);
+    return _futureOrNullType;
+  }
+
+  @override
   InterfaceType get futureOrType {
     assert(_asyncLibrary != null);
     _futureOrType ??= _getType(_asyncLibrary, "FutureOr");
diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart
index 7ccdcc9..491b50a 100644
--- a/pkg/analyzer/lib/src/task/strong/checker.dart
+++ b/pkg/analyzer/lib/src/task/strong/checker.dart
@@ -36,21 +36,13 @@
   DartType type = expression.staticType ?? DynamicTypeImpl.instance;
   if (typeSystem is StrongTypeSystemImpl &&
       type is FunctionType &&
-      _hasStrictArrow(expression)) {
+      hasStrictArrow(expression)) {
     // Remove fuzzy arrow if possible.
     return typeSystem.functionTypeToConcreteType(type);
   }
   return type;
 }
 
-bool isKnownFunction(Expression expression) {
-  var element = _getKnownElement(expression);
-  // First class functions and static methods, where we know the original
-  // declaration, will have an exact type, so we know a downcast will fail.
-  return element is FunctionElement ||
-      element is MethodElement && element.isStatic;
-}
-
 DartType _elementType(Element e) {
   if (e == null) {
     // Malformed code - just return dynamic.
@@ -61,9 +53,10 @@
 
 Element _getKnownElement(Expression expression) {
   if (expression is ParenthesizedExpression) {
-    expression = (expression as ParenthesizedExpression).expression;
-  }
-  if (expression is FunctionExpression) {
+    return _getKnownElement(expression.expression);
+  } else if (expression is NamedExpression) {
+    return _getKnownElement(expression.expression);
+  } else if (expression is FunctionExpression) {
     return expression.element;
   } else if (expression is PropertyAccess) {
     return expression.propertyName.staticElement;
@@ -105,7 +98,7 @@
 FunctionType _getMemberType(InterfaceType type, ExecutableElement member) =>
     _memberTypeGetter(member)(type);
 
-bool _hasStrictArrow(Expression expression) {
+bool hasStrictArrow(Expression expression) {
   var element = _getKnownElement(expression);
   return element is FunctionElement || element is MethodElement;
 }
@@ -1002,7 +995,7 @@
     // a dynamic parameter type requires a dynamic call in general.
     // However, as an optimization, if we have an original definition, we know
     // dynamic is reified as Object - in this case a regular call is fine.
-    if (_hasStrictArrow(call.function)) {
+    if (hasStrictArrow(call.function)) {
       return false;
     }
     return rules.anyParameterType(ft, (pt) => pt.isDynamic);
@@ -1090,8 +1083,8 @@
       }
     }
 
-    if (isKnownFunction(expr)) {
-      Element e = _getKnownElement(expr);
+    Element e = _getKnownElement(expr);
+    if (e is FunctionElement || e is MethodElement && e.isStatic) {
       _recordMessage(
           expr,
           e is MethodElement
diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart
index bc5bd88..838f146 100644
--- a/pkg/analyzer/test/generated/strong_mode_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_test.dart
@@ -39,8 +39,10 @@
   Asserter<DartType> _isDynamic;
   Asserter<InterfaceType> _isFutureOfDynamic;
   Asserter<InterfaceType> _isFutureOfInt;
+  Asserter<InterfaceType> _isFutureOfNull;
   Asserter<InterfaceType> _isFutureOrOfInt;
   Asserter<DartType> _isInt;
+  Asserter<DartType> _isNull;
   Asserter<DartType> _isNum;
   Asserter<DartType> _isObject;
   Asserter<DartType> _isString;
@@ -69,6 +71,7 @@
       _hasElement = _assertions.hasElement;
       _isInstantiationOf = _assertions.isInstantiationOf;
       _isInt = _assertions.isInt;
+      _isNull = _assertions.isNull;
       _isNum = _assertions.isNum;
       _isObject = _assertions.isObject;
       _isString = _assertions.isString;
@@ -82,6 +85,7 @@
           _isInstantiationOf(_hasElementOf(typeProvider.futureOrType));
       _isFutureOfDynamic = _isFutureOf([_isDynamic]);
       _isFutureOfInt = _isFutureOf([_isInt]);
+      _isFutureOfNull = _isFutureOf([_isNull]);
       _isFutureOrOfInt = _isFutureOrOf([_isInt]);
       _isStreamOf = _isInstantiationOf(_hasElementOf(typeProvider.streamType));
     }
@@ -1113,6 +1117,39 @@
     _isDynamic(invoke.staticType);
   }
 
+  test_futureOr_no_return() async {
+    MethodInvocation invoke = await _testFutureOr(r'''
+    FutureOr<T> mk<T>(Future<T> x) => x;
+    Future<int> f;
+    test() => f.then((int x) {});
+    ''');
+    _isFunction2Of(_isInt, _isNull)(
+        invoke.argumentList.arguments[0].staticType);
+    _isFutureOfDynamic(invoke.staticType);
+  }
+
+  test_futureOr_no_return_value() async {
+    MethodInvocation invoke = await _testFutureOr(r'''
+    FutureOr<T> mk<T>(Future<T> x) => x;
+    Future<int> f;
+    test() => f.then((int x) {return;});
+    ''');
+    _isFunction2Of(_isInt, _isNull)(
+        invoke.argumentList.arguments[0].staticType);
+    _isFutureOfDynamic(invoke.staticType);
+  }
+
+  test_futureOr_return_null() async {
+    MethodInvocation invoke = await _testFutureOr(r'''
+    FutureOr<T> mk<T>(Future<T> x) => x;
+    Future<int> f;
+    test() => f.then((int x) {});
+    ''');
+    _isFunction2Of(_isInt, _isNull)(
+        invoke.argumentList.arguments[0].staticType);
+    _isFutureOfDynamic(invoke.staticType);
+  }
+
   test_futureOr_upwards1() async {
     // Test that upwards inference correctly prefers to instantiate type
     // variables with the "smaller" solution when both are possible.
@@ -1135,6 +1172,39 @@
     _isFutureOf([_isObject])(invoke.staticType);
   }
 
+  test_futureOrNull_no_return_value() async {
+    MethodInvocation invoke = await _testFutureOr(r'''
+    FutureOr<T> mk<T>(Future<T> x) => x;
+    Future<int> f;
+    test() => f.then<Null>((int x) {return;});
+    ''');
+    _isFunction2Of(_isInt, _isNull)(
+        invoke.argumentList.arguments[0].staticType);
+    _isFutureOfNull(invoke.staticType);
+  }
+
+  test_futureOrNull_no_return() async {
+    MethodInvocation invoke = await _testFutureOr(r'''
+    FutureOr<T> mk<T>(Future<T> x) => x;
+    Future<int> f;
+    test() => f.then<Null>((int x) {});
+    ''');
+    _isFunction2Of(_isInt, _isNull)(
+        invoke.argumentList.arguments[0].staticType);
+    _isFutureOfNull(invoke.staticType);
+  }
+
+  test_futureOrNull_return_null() async {
+    MethodInvocation invoke = await _testFutureOr(r'''
+    FutureOr<T> mk<T>(Future<T> x) => x;
+    Future<int> f;
+    test() => f.then<Null>((int x) {});
+    ''');
+    _isFunction2Of(_isInt, _isNull)(
+        invoke.argumentList.arguments[0].staticType);
+    _isFutureOfNull(invoke.staticType);
+  }
+
   test_inference_hints() async {
     Source source = addSource(r'''
       void main () {
diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
index e185566..266f772 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_ast_test.dart
@@ -107,14 +107,26 @@
 
   @override
   @failingTest
-  void test_blockBodiedLambdas_doesNotInferBottom_asyncStar_topLevel() {
-    super.test_blockBodiedLambdas_doesNotInferBottom_asyncStar_topLevel();
+  void test_blockBodiedLambdas_inferBottom_async_topLevel() {
+    super.test_blockBodiedLambdas_inferBottom_async_topLevel();
   }
 
   @override
   @failingTest
-  void test_blockBodiedLambdas_doesNotInferBottom_syncStar_topLevel() {
-    super.test_blockBodiedLambdas_doesNotInferBottom_syncStar_topLevel();
+  void test_blockBodiedLambdas_inferBottom_asyncStar_topLevel() {
+    super.test_blockBodiedLambdas_inferBottom_asyncStar_topLevel();
+  }
+
+  @override
+  @failingTest
+  void test_blockBodiedLambdas_inferBottom_sync_topLevel() {
+    super.test_blockBodiedLambdas_inferBottom_sync_topLevel();
+  }
+
+  @override
+  @failingTest
+  void test_blockBodiedLambdas_inferBottom_syncStar_topLevel() {
+    super.test_blockBodiedLambdas_inferBottom_syncStar_topLevel();
   }
 
   @override
@@ -553,6 +565,18 @@
 
   @override
   @failingTest
+  void test_inferredType_blockBodiedClosure_noArguments() {
+    super.test_inferredType_blockBodiedClosure_noArguments();
+  }
+
+  @override
+  @failingTest
+  void test_inferredType_blockClosure_noArgs_noReturn() {
+    super.test_inferredType_blockClosure_noArgs_noReturn();
+  }
+
+  @override
+  @failingTest
   void test_inferredType_opAssignToProperty_prefixedIdentifier() {
     super.test_inferredType_opAssignToProperty_prefixedIdentifier();
   }
diff --git a/pkg/analyzer/test/src/task/strong/checker_test.dart b/pkg/analyzer/test/src/task/strong/checker_test.dart
index c38122e..0d95689 100644
--- a/pkg/analyzer/test/src/task/strong/checker_test.dart
+++ b/pkg/analyzer/test/src/task/strong/checker_test.dart
@@ -2389,12 +2389,12 @@
   void test_implicitDynamic_return() {
     addFile(r'''
 // function
-/*error:IMPLICIT_DYNAMIC_RETURN*/f0() {}
+/*error:IMPLICIT_DYNAMIC_RETURN*/f0() {return f0();}
 dynamic f1() { return 42; }
 
 // nested function
 void main() {
-  /*error:IMPLICIT_DYNAMIC_RETURN*/g0() {}
+  /*error:IMPLICIT_DYNAMIC_RETURN*/g0() {return g0();}
   dynamic g1() { return 42; }
 }
 
@@ -3231,8 +3231,10 @@
     // Regression test for https://github.com/dart-lang/sdk/issues/26155
     checkFile(r'''
 void takesF(void f(int x)) {
-  takesF(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/([x]) { bool z = x.isEven; });
-  takesF(/*info:INFERRED_TYPE_CLOSURE*/(y) { bool z = y.isEven; });
+  takesF(/*info:INFERRED_TYPE_CLOSURE,
+           info:INFERRED_TYPE_CLOSURE*/([x]) { bool z = x.isEven; });
+  takesF(/*info:INFERRED_TYPE_CLOSURE,
+           info:INFERRED_TYPE_CLOSURE*/(y) { bool z = y.isEven; });
 }
     ''');
   }
@@ -3663,6 +3665,61 @@
 ''');
   }
 
+  void test_tearOffTreatedConsistentlyAsStrictArrow() {
+    checkFile(r'''
+void foo(void f(String x)) {}
+
+class A {
+  Null bar1(dynamic x) => null;
+  void bar2(dynamic x) => null;
+  Null bar3(String x) => null;
+  void test() {
+    foo(bar1);
+    foo(bar2);
+    foo(bar3);
+  }
+}
+
+
+Null baz1(dynamic x) => null;
+void baz2(dynamic x) => null;
+Null baz3(String x) => null;
+void test() {
+  foo(baz1);
+  foo(baz2);
+  foo(baz3);
+}
+    ''');
+  }
+
+  void test_tearOffTreatedConsistentlyAsStrictArrowNamedParam() {
+    checkFile(r'''
+typedef void Handler(String x);
+void foo({Handler f}) {}
+
+class A {
+  Null bar1(dynamic x) => null;
+  void bar2(dynamic x) => null;
+  Null bar3(String x) => null;
+  void test() {
+    foo(f: bar1);
+    foo(f: bar2);
+    foo(f: bar3);
+  }
+}
+
+
+Null baz1(dynamic x) => null;
+void baz2(dynamic x) => null;
+Null baz3(String x) => null;
+void test() {
+  foo(f: baz1);
+  foo(f: baz2);
+  foo(f: baz3);
+}
+    ''');
+  }
+
   void test_ternaryOperator() {
     checkFile('''
 abstract class Comparable<T> {
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index 6077b7c..048d414 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
@@ -247,113 +247,6 @@
 ''');
   }
 
-  void test_blockBodiedLambdas_doesNotInferBottom_async() {
-    if (!mayCheckTypesOfLocals) {
-      return;
-    }
-    var mainUnit = checkFile(r'''
-import 'dart:async';
-main() async {
-  var f = () async { return null; };
-  Future y = f();
-  Future<String> z = /*warning:DOWN_CAST_COMPOSITE*/f();
-  String s = /*info:DYNAMIC_CAST*/await f();
-}
-''');
-    var f = mainUnit.functions[0].localVariables[0];
-    expect(f.type.toString(), '() → Future<dynamic>');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_async_topLevel() {
-    var mainUnit = checkFile(r'''
-import 'dart:async';
-var f = /*warning:UNSAFE_BLOCK_CLOSURE_INFERENCE,info:INFERRED_TYPE_CLOSURE*/() async { return null; };
-''');
-    var f = mainUnit.topLevelVariables[0];
-    expect(f.type.toString(), '() → Future<dynamic>');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_asyncStar() {
-    if (!mayCheckTypesOfLocals) {
-      return;
-    }
-    var mainUnit = checkFile(r'''
-import 'dart:async';
-main() async {
-  var f = () async* { yield null; };
-  Stream y = f();
-  Stream<String> z = /*warning:DOWN_CAST_COMPOSITE*/f();
-  String s = /*info:DYNAMIC_CAST*/await f().first;
-}
-''');
-    var f = mainUnit.functions[0].localVariables[0];
-    expect(f.type.toString(), '() → Stream<dynamic>');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_asyncStar_topLevel() {
-    var mainUnit = checkFile(r'''
-import 'dart:async';
-var f = /*warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/() async* { yield null; };
-''');
-    var f = mainUnit.topLevelVariables[0];
-    expect(f.type.toString(), '() → Stream<dynamic>');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_sync() {
-    if (!mayCheckTypesOfLocals) {
-      return;
-    }
-    var mainUnit = checkFile(r'''
-var h = null;
-void foo(int f(Object _)) {}
-
-main() {
-  var f = (Object x) { return null; };
-  String y = /*info:DYNAMIC_CAST*/f(42);
-
-  f = /*info:INFERRED_TYPE_CLOSURE*/(x) => 'hello';
-
-  foo(/*info:INFERRED_TYPE_CLOSURE*/(x) { return null; });
-  foo(/*info:INFERRED_TYPE_CLOSURE*/(x) { throw "not implemented"; });
-}
-''');
-
-    var f = mainUnit.functions[1].localVariables[0];
-    expect(f.type.toString(), '(Object) → dynamic');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_sync_topLevel() {
-    var mainUnit = checkFile(r'''
-var f = (Object x) { return null; };
-''');
-    var f = mainUnit.topLevelVariables[0];
-    expect(f.type.toString(), '(Object) → dynamic');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_syncStar() {
-    if (!mayCheckTypesOfLocals) {
-      return;
-    }
-    var mainUnit = checkFile(r'''
-main() {
-  var f = () sync* { yield null; };
-  Iterable y = f();
-  Iterable<String> z = /*warning:DOWN_CAST_COMPOSITE*/f();
-  String s = /*info:DYNAMIC_CAST*/f().first;
-}
-''');
-    var f = mainUnit.functions[0].localVariables[0];
-    expect(f.type.toString(), '() → Iterable<dynamic>');
-  }
-
-  void test_blockBodiedLambdas_doesNotInferBottom_syncStar_topLevel() {
-    var mainUnit = checkFile(r'''
-var f = /*warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/() sync* { yield null; };
-''');
-    var f = mainUnit.topLevelVariables[0];
-    expect(f.type.toString(), '() → Iterable<dynamic>');
-  }
-
   void test_blockBodiedLambdas_downwardsIncompatibleWithUpwardsInference() {
     if (!mayCheckTypesOfLocals) {
       return;
@@ -379,6 +272,115 @@
     expect(f.type.toString(), '() → String');
   }
 
+  void test_blockBodiedLambdas_inferBottom_async() {
+    if (!mayCheckTypesOfLocals) {
+      return;
+    }
+    var mainUnit = checkFile(r'''
+import 'dart:async';
+main() async {
+  var f = /*info:INFERRED_TYPE_CLOSURE*/() async { return null; };
+  Future y = f();
+  Future<String> z = f();
+  String s = await f();
+}
+''');
+    var f = mainUnit.functions[0].localVariables[0];
+    expect(f.type.toString(), '() → Future<Null>');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_async_topLevel() {
+    var mainUnit = checkFile(r'''
+import 'dart:async';
+var f = /*warning:UNSAFE_BLOCK_CLOSURE_INFERENCE,info:INFERRED_TYPE_CLOSURE*/() async { return null; };
+''');
+    var f = mainUnit.topLevelVariables[0];
+    expect(f.type.toString(), '() → Future<Null>');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_asyncStar() {
+    if (!mayCheckTypesOfLocals) {
+      return;
+    }
+    var mainUnit = checkFile(r'''
+import 'dart:async';
+main() async {
+  var f = /*info:INFERRED_TYPE_CLOSURE*/() async* { yield null; };
+  Stream y = f();
+  Stream<String> z = f();
+  String s = await f().first;
+}
+''');
+    var f = mainUnit.functions[0].localVariables[0];
+    expect(f.type.toString(), '() → Stream<Null>');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_asyncStar_topLevel() {
+    var mainUnit = checkFile(r'''
+import 'dart:async';
+var f = /*info:INFERRED_TYPE_CLOSURE, warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/() async* { yield null; };
+''');
+    var f = mainUnit.topLevelVariables[0];
+    expect(f.type.toString(), '() → Stream<Null>');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_sync() {
+    if (!mayCheckTypesOfLocals) {
+      return;
+    }
+    var mainUnit = checkFile(r'''
+var h = null;
+void foo(int f(Object _)) {}
+
+main() {
+  var f = /*info:INFERRED_TYPE_CLOSURE*/(Object x) { return null; };
+  String y = f(42);
+
+  f = /*error:INVALID_CAST_FUNCTION_EXPR, info:INFERRED_TYPE_CLOSURE*/(x) => 'hello';
+
+  foo(/*info:INFERRED_TYPE_CLOSURE,
+        info:INFERRED_TYPE_CLOSURE*/(x) { return null; });
+  foo(/*info:INFERRED_TYPE_CLOSURE,
+        info:INFERRED_TYPE_CLOSURE*/(x) { throw "not implemented"; });
+}
+''');
+
+    var f = mainUnit.functions[1].localVariables[0];
+    expect(f.type.toString(), '(Object) → Null');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_sync_topLevel() {
+    var mainUnit = checkFile(r'''
+var f = /*info:INFERRED_TYPE_CLOSURE,warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/(Object x) { return null; };
+''');
+    var f = mainUnit.topLevelVariables[0];
+    expect(f.type.toString(), '(Object) → Null');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_syncStar() {
+    if (!mayCheckTypesOfLocals) {
+      return;
+    }
+    var mainUnit = checkFile(r'''
+main() {
+  var f = /*info:INFERRED_TYPE_CLOSURE*/() sync* { yield null; };
+  Iterable y = f();
+  Iterable<String> z = f();
+  String s = f().first;
+}
+''');
+    var f = mainUnit.functions[0].localVariables[0];
+    expect(f.type.toString(), '() → Iterable<Null>');
+  }
+
+  void test_blockBodiedLambdas_inferBottom_syncStar_topLevel() {
+    var mainUnit = checkFile(r'''
+var f = /*info:INFERRED_TYPE_CLOSURE,warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/() sync* { yield null; };
+''');
+    var f = mainUnit.topLevelVariables[0];
+    expect(f.type.toString(), '() → Iterable<Null>');
+  }
+
   void test_blockBodiedLambdas_LUB() {
     checkFile(r'''
 import 'dart:math' show Random;
@@ -447,7 +449,7 @@
     var mainUnit = checkFile(r'''
 test1() {
   List<int> o;
-  var y = o.map(/*info:INFERRED_TYPE_CLOSURE*/(x) { });
+  var y = o.map(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) { });
   Iterable<int> z = /*warning:DOWN_CAST_COMPOSITE*/y;
 }
 ''');
@@ -458,7 +460,7 @@
   void test_blockBodiedLambdas_noReturn_topLevel() {
     var mainUnit = checkFile(r'''
 final List<int> o = <int>[];
-var y = o.map((x) { });
+var y = o.map(/*info:INFERRED_TYPE_CLOSURE, warning:UNSAFE_BLOCK_CLOSURE_INFERENCE*/(x) { });
 ''');
     var f = mainUnit.topLevelVariables[1];
     expect(f.type.toString(), 'Iterable<dynamic>');
@@ -1695,6 +1697,48 @@
     ''');
   }
 
+  void test_futureThen_deprecated() {
+// Tests the deprecated ad hoc future inference for classes which implement
+// Future but haven't been updated to use FutureOr
+    String build({String declared, String downwards, String upwards}) => '''
+import 'dart:async';
+class MyFuture<T> implements Future<T> {
+  MyFuture() {}
+  MyFuture.value(T x) {}
+  dynamic noSuchMethod(invocation);
+  MyFuture<S> then<S>(dynamic f(T x), {Function onError}) => null;
+}
+
+void main() {
+  $declared f;
+  $downwards<int> t1 = f.then((_) async => await new $upwards<int>.value(3));
+  $downwards<int> t2 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
+     return await new $upwards<int>.value(3);});
+  $downwards<int> t3 = f.then((_) async => 3);
+  $downwards<int> t4 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
+    return 3;});
+  $downwards<int> t5 = f.then((_) => new $upwards<int>.value(3));
+  $downwards<int> t6 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) {return new $upwards<int>.value(3);});
+  $downwards<int> t7 = f.then((_) async => new $upwards<int>.value(3));
+  $downwards<int> t8 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
+    return new $upwards<int>.value(3);});
+}
+''';
+
+    checkFile(
+        build(declared: "MyFuture", downwards: "Future", upwards: "Future"));
+    checkFile(
+        build(declared: "MyFuture", downwards: "Future", upwards: "MyFuture"));
+    checkFile(
+        build(declared: "MyFuture", downwards: "MyFuture", upwards: "Future"));
+    checkFile(build(
+        declared: "MyFuture", downwards: "MyFuture", upwards: "MyFuture"));
+    checkFile(
+        build(declared: "Future", downwards: "Future", upwards: "MyFuture"));
+    checkFile(
+        build(declared: "Future", downwards: "Future", upwards: "Future"));
+  }
+
   void test_futureThen() {
     String build({String declared, String downwards, String upwards}) => '''
 import 'dart:async';
@@ -1735,32 +1779,30 @@
         build(declared: "Future", downwards: "Future", upwards: "Future"));
   }
 
-  void test_futureThen_comment() {
+  void test_futureThen_conditional_deprecated() {
+// Tests the deprecated ad hoc future inference for classes which implement
+// Future but haven't been updated to use FutureOr
     String build({String declared, String downwards, String upwards}) => '''
 import 'dart:async';
 class MyFuture<T> implements Future<T> {
   MyFuture() {}
   MyFuture.value(T x) {}
   dynamic noSuchMethod(invocation);
-  MyFuture/*<S>*/ then/*<S>*/(dynamic f(T x), {Function onError}) => null;
+  MyFuture<S> then<S>(dynamic f(T x), {Function onError}) => null;
 }
 
 void main() {
-  $declared f;
-  $downwards<int> t1 = f.then((_) async => await new $upwards<int>.value(3));
-  $downwards<int> t2 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
-     return await new $upwards<int>.value(3);});
-  $downwards<int> t3 = f.then((_) async => 3);
-  $downwards<int> t4 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
-    return 3;});
-  $downwards<int> t5 = f.then((_) => new $upwards<int>.value(3));
-  $downwards<int> t6 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) {return new $upwards<int>.value(3);});
-  $downwards<int> t7 = f.then((_) async => new $upwards<int>.value(3));
-  $downwards<int> t8 = f.then(/*info:INFERRED_TYPE_CLOSURE*/(_) async {
-    return new $upwards<int>.value(3);});
+  $declared<bool> f;
+  $downwards<int> t1 = f.then(/*info:INFERRED_TYPE_CLOSURE*/
+      (x) async => x ? 2 : await new $upwards<int>.value(3));
+  $downwards<int> t2 = f.then(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/(x) async { // TODO(leafp): Why the duplicate here?
+    return await x ? 2 : new $upwards<int>.value(3);});
+  $downwards<int> t5 = f.then(/*info:INFERRED_TYPE_CLOSURE*/
+      (x) => x ? 2 : new $upwards<int>.value(3));
+  $downwards<int> t6 = f.then(/*info:INFERRED_TYPE_CLOSURE,info:INFERRED_TYPE_CLOSURE*/
+      (x) {return /*warning:DOWN_CAST_COMPOSITE*/x ? 2 : new $upwards<int>.value(3);});
 }
 ''';
-
     checkFile(
         build(declared: "MyFuture", downwards: "Future", upwards: "Future"));
     checkFile(
@@ -1769,10 +1811,6 @@
         build(declared: "MyFuture", downwards: "MyFuture", upwards: "Future"));
     checkFile(build(
         declared: "MyFuture", downwards: "MyFuture", upwards: "MyFuture"));
-    checkFile(
-        build(declared: "Future", downwards: "Future", upwards: "MyFuture"));
-    checkFile(
-        build(declared: "Future", downwards: "Future", upwards: "Future"));
   }
 
   void test_futureThen_conditional() {
@@ -1819,7 +1857,7 @@
   Future<int> f;
   Future<List<int>> b = /*info:ASSIGNMENT_CAST should be pass*/f
       .then(/*info:INFERRED_TYPE_CLOSURE*/(x) => [])
-      .whenComplete(/*pass should be info:INFERRED_TYPE_LITERAL*/() {});
+      .whenComplete(/*info:INFERRED_TYPE_CLOSURE*/() {});
   b = f.then(/*info:INFERRED_TYPE_CLOSURE*/(x) => /*info:INFERRED_TYPE_LITERAL*/[]);
 }
     ''');
@@ -1830,7 +1868,9 @@
 import "dart:async";
 m1() {
   Future<int> f;
-  var x = f.then<Future<List<int>>>(/*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/(x) => []);
+  var x = f.then<Future<List<int>>>(/*info:INFERRED_TYPE_CLOSURE,
+                                      error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/
+                                    (x) => /*info:INFERRED_TYPE_LITERAL*/[]);
   Future<List<int>> y = x;
 }
 m2() {
@@ -1841,6 +1881,38 @@
     ''');
   }
 
+  void test_futureThen_upwards_deprecated() {
+    // Tests the deprecated ad hoc future inference for classes which implement
+    // Future but haven't been updated to use FutureOr
+    // Regression test for https://github.com/dart-lang/sdk/issues/27088.
+    String build({String declared, String downwards, String upwards}) => '''
+import 'dart:async';
+class MyFuture<T> implements Future<T> {
+  MyFuture() {}
+  MyFuture.value(T x) {}
+  dynamic noSuchMethod(invocation);
+  MyFuture<S> then<S>(dynamic f(T x), {Function onError}) => null;
+}
+
+void main() {
+  var f = foo().then((_) => 2.3);
+  $downwards<int> f2 = /*error:INVALID_ASSIGNMENT*/f;
+
+  // The unnecessary cast is to illustrate that we inferred <double> for
+  // the generic type args, even though we had a return type context.
+  $downwards<num> f3 = /*info:UNNECESSARY_CAST*/foo().then(
+      (_) => 2.3) as $upwards<double>;
+}
+$declared foo() => new $declared<int>.value(1);
+    ''';
+    checkFile(
+        build(declared: "MyFuture", downwards: "Future", upwards: "Future"));
+    checkFile(build(
+        declared: "MyFuture", downwards: "MyFuture", upwards: "MyFuture"));
+    checkFile(
+        build(declared: "Future", downwards: "Future", upwards: "Future"));
+  }
+
   void test_futureThen_upwards() {
     // Regression test for https://github.com/dart-lang/sdk/issues/27088.
     String build({String declared, String downwards, String upwards}) => '''
@@ -1885,6 +1957,31 @@
     ''');
   }
 
+  void test_futureUnion_asyncConditional_deprecated() {
+    // Tests the deprecated ad hoc future inference for classes which implement
+    // Future but haven't been updated to use FutureOr
+    String build({String declared, String downwards, String upwards}) => '''
+import 'dart:async';
+class MyFuture<T> implements Future<T> {
+  MyFuture() {}
+  MyFuture.value(x) {}
+  dynamic noSuchMethod(invocation);
+  MyFuture<S> then<S>(dynamic f(T x), {Function onError}) => null;
+}
+
+$downwards<int> g1(bool x) async {
+  return x ? 42 : /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(42); }
+$downwards<int> g2(bool x) async =>
+  x ? 42 : /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(42);
+$downwards<int> g3(bool x) async {
+  var y = x ? 42 : new $upwards.value(42);
+  return y;
+}
+    ''';
+    checkFile(build(downwards: "Future", upwards: "Future"));
+    checkFile(build(downwards: "Future", upwards: "MyFuture"));
+  }
+
   void test_futureUnion_asyncConditional() {
     String build({String declared, String downwards, String upwards}) => '''
 import 'dart:async';
@@ -1908,27 +2005,46 @@
     checkFile(build(downwards: "Future", upwards: "MyFuture"));
   }
 
-  void test_futureUnion_asyncConditional_comment() {
-    String build({String declared, String downwards, String upwards}) => '''
+  void test_futureUnion_downwards_deprecated() {
+    // Tests the deprecated ad hoc future inference for classes which implement
+    // Future but haven't been updated to use FutureOr
+    String build({String declared, String downwards, String upwards}) {
+      // TODO(leafp): The use of matchTypes in visitInstanceCreationExpression
+      // in the resolver visitor isn't powerful enough to catch this for the
+      // subclass.  See the TODO there.
+      var allocInfo =
+          (upwards == "Future") ? "/*info:INFERRED_TYPE_ALLOCATION*/" : "";
+      return '''
 import 'dart:async';
 class MyFuture<T> implements Future<T> {
   MyFuture() {}
-  MyFuture.value(x) {}
+  MyFuture.value([x]) {}
   dynamic noSuchMethod(invocation);
-  MyFuture/*<S>*/ then/*<S>*/(dynamic f(T x), {Function onError}) => null;
+  MyFuture<S> then<S>(dynamic f(T x), {Function onError}) => null;
 }
 
-$downwards<int> g1(bool x) async {
-  return x ? 42 : /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(42); }
-$downwards<int> g2(bool x) async =>
-  x ? 42 : /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(42);
-$downwards<int> g3(bool x) async {
-  var y = x ? 42 : new $upwards.value(42);
-  return y;
-}
-    ''';
-    checkFile(build(downwards: "Future", upwards: "Future"));
-    checkFile(build(downwards: "Future", upwards: "MyFuture"));
+$declared f;
+// Instantiates Future<int>
+$downwards<int> t1 = f.then((_) =>
+   ${allocInfo}new $upwards.value('hi'));
+
+// Instantiates List<int>
+$downwards<List<int>> t2 = f.then((_) => /*info:INFERRED_TYPE_LITERAL*/[3]);
+$downwards<List<int>> g2() async { return /*info:INFERRED_TYPE_LITERAL*/[3]; }
+$downwards<List<int>> g3() async {
+  return /*info:INFERRED_TYPE_ALLOCATION*/new $upwards.value(
+      /*info:INFERRED_TYPE_LITERAL*/[3]); }
+''';
+    }
+
+    checkFile(
+        build(declared: "MyFuture", downwards: "Future", upwards: "Future"));
+    checkFile(
+        build(declared: "MyFuture", downwards: "Future", upwards: "MyFuture"));
+    checkFile(
+        build(declared: "Future", downwards: "Future", upwards: "Future"));
+    checkFile(
+        build(declared: "Future", downwards: "Future", upwards: "MyFuture"));
   }
 
   void test_futureUnion_downwards() {
@@ -3437,19 +3553,21 @@
   void test_inferredType_blockBodiedClosure_noArguments() {
     var mainUnit = checkFile('''
 class C {
-  static final v = () {};
+  static final v = /*warning:UNSAFE_BLOCK_CLOSURE_INFERENCE,
+                     info:INFERRED_TYPE_CLOSURE*/() {};
 }
 ''');
     var v = mainUnit.getType('C').fields[0];
-    expect(v.type.toString(), '() → dynamic');
+    expect(v.type.toString(), '() → Null');
   }
 
   void test_inferredType_blockClosure_noArgs_noReturn() {
     var mainUnit = checkFile('''
-var f = () {};
+var f = /*warning:UNSAFE_BLOCK_CLOSURE_INFERENCE,
+                     info:INFERRED_TYPE_CLOSURE*/() {};
 ''');
     var f = mainUnit.topLevelVariables[0];
-    expect(f.type.toString(), '() → dynamic');
+    expect(f.type.toString(), '() → Null');
   }
 
   void test_inferredType_customBinaryOp() {
diff --git a/pkg/analyzer/test/utils.dart b/pkg/analyzer/test/utils.dart
index 4d1314e..154a266 100644
--- a/pkg/analyzer/test/utils.dart
+++ b/pkg/analyzer/test/utils.dart
@@ -229,6 +229,11 @@
   Asserter<DartType> get isMap => hasElementOf(_typeProvider.mapType);
 
   /**
+   * Primitive assertion for the Null type
+   */
+  Asserter<DartType> get isNull => isType(_typeProvider.nullType);
+
+  /**
    * Primitive assertion for the num type
    */
   Asserter<DartType> get isNum => isType(_typeProvider.numType);
diff --git a/pkg/dev_compiler/lib/js/amd/dart_sdk.js b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
index bfa802af..b612e9f 100644
--- a/pkg/dev_compiler/lib/js/amd/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/amd/dart_sdk.js
@@ -549,6 +549,7 @@
   let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))();
   let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
   let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))();
+  let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
   let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html$.ProgressEvent])))();
   let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
   let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))();
@@ -654,13 +655,12 @@
   let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))();
   let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))();
   let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
-  let intAnddynamicTovoid = () => (intAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, dart.dynamic])))();
+  let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
   let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
   let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
   let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
-  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
-  let StringAndObjectTovoid = () => (StringAndObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Object])))();
-  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
+  let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
+  let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
   let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
   let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
   let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -674,19 +674,22 @@
   let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
   let StringAndStringToString$ = () => (StringAndStringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
   let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
+  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
   let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
   let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
   let StringTovoid$ = () => (StringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
   let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
   let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
   let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
+  let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
+  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
   let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
-  let ListToFutureOr = () => (ListToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [core.List])))();
-  let StringTodynamic = () => (StringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String])))();
-  let dynamicToFutureOr$ = () => (dynamicToFutureOr$ = dart.constFn(dart.definiteFunctionType(async.FutureOr, [dart.dynamic])))();
-  let TimerTovoid$ = () => (TimerTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [async.Timer])))();
+  let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
+  let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
+  let dynamicToNull$ = () => (dynamicToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
+  let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
   let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
-  let boolTodynamic = () => (boolTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.bool])))();
+  let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
   let dynamicAndStackTraceTovoid = () => (dynamicAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])))();
   let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
   let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
@@ -729,7 +732,7 @@
   let dynamicToSymbol = () => (dynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic])))();
   let dynamicToMapOfSymbol$dynamic = () => (dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [dart.dynamic])))();
   let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
-  let SymbolAnddynamicTovoid = () => (SymbolAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Symbol, dart.dynamic])))();
+  let SymbolAnddynamicToNull = () => (SymbolAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.Symbol, dart.dynamic])))();
   let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
   let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
   let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -742,11 +745,12 @@
   let VoidToObject$ = () => (VoidToObject$ = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
   let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
   let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
-  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [dart.dynamic])))();
+  let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
   let dynamicTo_Future = () => (dynamicTo_Future = dart.constFn(dart.definiteFunctionType(async._Future, [dart.dynamic])))();
   let _AsyncCallbackTovoid = () => (_AsyncCallbackTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._AsyncCallback])))();
+  let FnToNull = () => (FnToNull = dart.constFn(dart.definiteFunctionType(core.Null, [VoidTovoid()])))();
   let _NotificationHandlerToFuture = () => (_NotificationHandlerToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [async._NotificationHandler])))();
-  let dynamicAndStackTraceTodynamic = () => (dynamicAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.StackTrace])))();
+  let dynamicAndStackTraceToNull = () => (dynamicAndStackTraceToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, core.StackTrace])))();
   let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace])))();
   let FnAndFnAndFnTodynamic = () => (FnAndFnAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [VoidTodynamic(), dynamicTodynamic(), ZoneBinaryCallbackOfdynamic$dynamic$StackTrace()])))();
   let StreamSubscriptionAnd_FutureAnddynamic__Tovoid = () => (StreamSubscriptionAnd_FutureAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace])))();
@@ -787,10 +791,11 @@
   let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
   let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
   let StringAndStringTovoid$ = () => (StringAndStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
-  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
+  let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
   let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
   let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
   let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
+  let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
   let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
   let String__Tovoid$ = () => (String__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
   let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
@@ -815,10 +820,10 @@
   let dynamicToFutureOrOfString = () => (dynamicToFutureOrOfString = dart.constFn(dart.definiteFunctionType(FutureOrOfString(), [dart.dynamic])))();
   let dynamicToFutureOrOfbool = () => (dynamicToFutureOrOfbool = dart.constFn(dart.definiteFunctionType(FutureOrOfbool(), [dart.dynamic])))();
   let dynamicToFutureOrOfint = () => (dynamicToFutureOrOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfint(), [dart.dynamic])))();
-  let ListOfintToFutureOr = () => (ListOfintToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [ListOfint()])))();
+  let ListOfintToNull = () => (ListOfintToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfint()])))();
   let RandomAccessFileTovoid = () => (RandomAccessFileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.RandomAccessFile])))();
   let RandomAccessFileToFutureOr = () => (RandomAccessFileToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RandomAccessFile])))();
-  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+  let RandomAccessFileToNull = () => (RandomAccessFileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RandomAccessFile])))();
   let RandomAccessFileToFutureOfRandomAccessFile = () => (RandomAccessFileToFutureOfRandomAccessFile = dart.constFn(dart.definiteFunctionType(FutureOfRandomAccessFile(), [io.RandomAccessFile])))();
   let dynamicTo_File = () => (dynamicTo_File = dart.constFn(dart.definiteFunctionType(io._File, [dart.dynamic])))();
   let FileSystemEntityTo_File = () => (FileSystemEntityTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.FileSystemEntity])))();
@@ -835,7 +840,8 @@
   let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
   let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
   let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
-  let StringAndListOfStringTovoid$ = () => (StringAndListOfStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, ListOfString()])))();
+  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+  let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
   let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
   let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
   let _HttpClientRequestToFutureOfHttpClientResponse = () => (_HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io._HttpClientRequest])))();
@@ -846,15 +852,14 @@
   let _CredentialsTovoid = () => (_CredentialsTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._Credentials])))();
   let _AuthenticationSchemeAndStringToFuture = () => (_AuthenticationSchemeAndStringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [io._AuthenticationScheme, core.String])))();
   let dynamicToFutureOrOfHttpClientResponse = () => (dynamicToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [dart.dynamic])))();
-  let CookieTovoid = () => (CookieTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.Cookie])))();
+  let CookieToNull = () => (CookieToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Cookie])))();
   let ListToFutureOrOfHttpClientResponse = () => (ListToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [core.List])))();
   let HttpClientResponseTovoid = () => (HttpClientResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpClientResponse])))();
   let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
   let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
   let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
-  let dynamic__Todynamic$ = () => (dynamic__Todynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [core.StackTrace])))();
-  let _HttpIncomingTovoid$ = () => (_HttpIncomingTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpIncoming])))();
-  let _HttpIncomingToFutureOr = () => (_HttpIncomingToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._HttpIncoming])))();
+  let dynamic__ToNull$ = () => (dynamic__ToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
+  let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
   let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
   let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
   let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
@@ -871,8 +876,8 @@
   let _SiteCredentialsAnd_CredentialsTo_SiteCredentials = () => (_SiteCredentialsAnd_CredentialsTo_SiteCredentials = dart.constFn(dart.definiteFunctionType(io._SiteCredentials, [io._SiteCredentials, io._Credentials])))();
   let ServerSocketTo_HttpServer = () => (ServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.ServerSocket])))();
   let SecureServerSocketTo_HttpServer = () => (SecureServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.SecureServerSocket])))();
-  let SocketTodynamic = () => (SocketTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [io.Socket])))();
-  let _HttpConnectionTovoid = () => (_HttpConnectionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpConnection])))();
+  let SocketToNull = () => (SocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Socket])))();
+  let _HttpConnectionToNull = () => (_HttpConnectionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpConnection])))();
   let _HttpConnectionToMap = () => (_HttpConnectionToMap = dart.constFn(dart.definiteFunctionType(core.Map, [io._HttpConnection])))();
   let _FileResourceInfoToMapOfString$String = () => (_FileResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._FileResourceInfo])))();
   let _ProcessResourceInfoToMapOfString$String = () => (_ProcessResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._ProcessResourceInfo])))();
@@ -886,22 +891,22 @@
   let RawSecureSocketToSecureSocket = () => (RawSecureSocketToSecureSocket = dart.constFn(dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])))();
   let dynamicToFutureOfRawSecureSocket = () => (dynamicToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [dart.dynamic])))();
   let RawServerSocketToRawSecureServerSocket = () => (RawServerSocketToRawSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket])))();
-  let RawSecureSocketToFutureOr = () => (RawSecureSocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RawSecureSocket])))();
+  let RawSecureSocketToNull = () => (RawSecureSocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RawSecureSocket])))();
   let RawSocketToFutureOfRawSecureSocket = () => (RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [io.RawSocket])))();
-  let _FilterStatusToFutureOr = () => (_FilterStatusToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._FilterStatus])))();
+  let _FilterStatusToNull = () => (_FilterStatusToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._FilterStatus])))();
   let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
   let dynamicTo_FilterStatus = () => (dynamicTo_FilterStatus = dart.constFn(dart.definiteFunctionType(io._FilterStatus, [dart.dynamic])))();
   let ListOfintAndStringTovoid = () => (ListOfintAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint(), core.String])))();
   let dynamicToStdioType = () => (dynamicToStdioType = dart.constFn(dart.definiteFunctionType(io.StdioType, [dart.dynamic])))();
   let EventSinkTo_WebSocketProtocolTransformer = () => (EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketProtocolTransformer, [async.EventSink])))();
   let WebSocketTovoid = () => (WebSocketTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.WebSocket])))();
-  let HttpRequestTovoid$ = () => (HttpRequestTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpRequest])))();
+  let HttpRequestToNull = () => (HttpRequestToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.HttpRequest])))();
   let SocketTo_WebSocketImpl = () => (SocketTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [io.Socket])))();
   let StringToFuture = () => (StringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [core.String])))();
   let EventSinkOfListOfintTo_WebSocketOutgoingTransformer = () => (EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [EventSinkOfListOfint()])))();
   let dynamicTo_WebSocketImpl = () => (dynamicTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic])))();
-  let SocketToFutureOr = () => (SocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.Socket])))();
   let HttpClientResponseToFutureOfWebSocket = () => (HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.definiteFunctionType(FutureOfWebSocket(), [io.HttpClientResponse])))();
+  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
   let HttpClientRequestToFutureOfHttpClientResponse = () => (HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io.HttpClientRequest])))();
   let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
   let ListToIsolate = () => (ListToIsolate = dart.constFn(dart.definiteFunctionType(isolate.Isolate, [core.List])))();
@@ -920,36 +925,35 @@
   let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
   let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
   let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
-  let EventTovoid$ = () => (EventTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Event])))();
+  let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Event])))();
   let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
   let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
-  let EventToFutureOr = () => (EventToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [html$.Event])))();
   let NodeTobool$ = () => (NodeTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Node])))();
   let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
   let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
   let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
-  let FileSystemTovoid = () => (FileSystemTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileSystem])))();
-  let FileErrorTovoid = () => (FileErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileError])))();
-  let EntryTovoid = () => (EntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Entry])))();
+  let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileSystem])))();
+  let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileError])))();
+  let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Entry])))();
   let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html$.CssStyleDeclaration, [dart.dynamic])))();
   let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.CssStyleDeclaration])))();
-  let MetadataTovoid = () => (MetadataTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Metadata])))();
-  let ListOfEntryTovoid = () => (ListOfEntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfEntry()])))();
+  let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Metadata])))();
+  let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
   let ElementTobool$ = () => (ElementTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Element])))();
-  let FileWriterTovoid = () => (FileWriterTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileWriter])))();
-  let FileTovoid = () => (FileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.File])))();
-  let GeopositionTovoid = () => (GeopositionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Geoposition])))();
-  let PositionErrorTovoid = () => (PositionErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.PositionError])))();
+  let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileWriter])))();
+  let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.File])))();
+  let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Geoposition])))();
+  let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.PositionError])))();
   let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html$.HttpRequest])))();
-  let ProgressEventTovoid$ = () => (ProgressEventTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.ProgressEvent])))();
-  let ListOfSourceInfoTovoid = () => (ListOfSourceInfoTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfSourceInfo()])))();
-  let MediaStreamTovoid = () => (MediaStreamTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.MediaStream])))();
-  let NavigatorUserMediaErrorTovoid = () => (NavigatorUserMediaErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.NavigatorUserMediaError])))();
-  let RtcSessionDescriptionTovoid = () => (RtcSessionDescriptionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription])))();
-  let RtcStatsResponseTovoid = () => (RtcStatsResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.RtcStatsResponse])))();
+  let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.ProgressEvent])))();
+  let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
+  let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.MediaStream])))();
+  let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.NavigatorUserMediaError])))();
+  let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcSessionDescription])))();
+  let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcStatsResponse])))();
   let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.OptionElement])))();
-  let numTovoid = () => (numTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.num])))();
-  let BeforeUnloadEventTovoid = () => (BeforeUnloadEventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.BeforeUnloadEvent])))();
+  let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
+  let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.BeforeUnloadEvent])))();
   let ElementTovoid$ = () => (ElementTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Element])))();
   let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html$.CssClassSet, [html$.Element])))();
   let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
@@ -976,9 +980,9 @@
   let Map__Todynamic = () => (Map__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Map], [dynamicTovoid()])))();
   let ListOfStringToList = () => (ListOfStringToList = dart.constFn(dart.definiteFunctionType(core.List, [ListOfString()])))();
   let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
-  let dynamic__Todynamic$0 = () => (dynamic__Todynamic$0 = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
+  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
   let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [html$.Node])))();
-  let AudioBufferTovoid = () => (AudioBufferTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [web_audio.AudioBuffer])))();
+  let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
   dart.mixin = function(base, ...mixins) {
     class Mixin extends base {}
     for (let m of mixins) {
@@ -1705,10 +1709,7 @@
         return null;
       }
     }
-    if (ret2 === dart.void) return true;
-    if (ret1 === dart.void) {
-      return ret2 === dart.dynamic || ret2 === async.FutureOr;
-    }
+    if (ret1 === dart.void) return dart._isTop(ret2);
     if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
     return true;
   };
@@ -1729,13 +1730,13 @@
     };
   };
   dart._isBottom = function(type) {
-    return type == dart.bottom;
+    return type == dart.bottom || type == core.Null;
   };
   dart._isTop = function(type) {
     if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
       return dart._isTop(dart.getGenericArgs(type)[0]);
     }
-    return type == core.Object || type == dart.dynamic;
+    return type == core.Object || type == dart.dynamic || type == dart.void;
   };
   dart._isSubtype = function(t1, t2, isCovariant) {
     if (t1 === t2) return true;
@@ -2182,6 +2183,9 @@
     return false;
   };
   dart.is = function(obj, type) {
+    if (obj == null) {
+      return type == core.Null || dart._isTop(type);
+    }
     let result = dart.strongInstanceOf(obj, type);
     if (result !== null) return result;
     let actual = dart.getReifiedType(obj);
@@ -3292,7 +3296,7 @@
       if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
         this.asMap()[dartx.forEach](dart.fn((i, element) => {
           children[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
-        }, intAnddynamicTovoid()));
+        }, intAnddynamicToNull()));
       } else {
         for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
           let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
@@ -3693,14 +3697,14 @@
         } else {
           nonGenericProperties._set(core.String._check(name), value);
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
       nonGenericProperties.forEach(dart.fn((name, value) => {
         if (core.Type.is(value)) {
           children.add(_debugger.NameValuePair._check(this.classChild(name, value)));
         } else {
           children.add(new _debugger.NameValuePair({name: name, value: value}));
         }
-      }, StringAndObjectTovoid()));
+      }, StringAndObjectToNull()));
       return children.toList();
     }
     recordGenericParameters(name, genericTypeConstructor) {
@@ -3769,7 +3773,7 @@
       map[dartx.forEach](dart.fn((key, value) => {
         let entryWrapper = new _debugger.MapEntry({key: key, value: value});
         entries.add(new _debugger.NameValuePair({name: dart.toString(entries.length), value: entryWrapper}));
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       _debugger.addMetadataChildren(object, entries);
       return entries.toList();
     }
@@ -9205,11 +9209,11 @@
     if (_isolate_helper._MainFunctionArgs.is(entry)) {
       rootContext.eval(dart.fn(() => {
         dart.dcall(entry, args);
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     } else if (_isolate_helper._MainFunctionArgsMessage.is(entry)) {
       rootContext.eval(dart.fn(() => {
         dart.dcall(entry, args, null);
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     } else {
       rootContext.eval(core.Function._check(entry));
     }
@@ -9651,7 +9655,7 @@
           if (!dart.test(this.runIteration())) return;
           async.Timer.run(next);
         }).bind(this);
-        dart.fn(next, VoidTodynamic$());
+        dart.fn(next, VoidToNull());
         next();
       } else {
         while (dart.test(this.runIteration())) {
@@ -9804,7 +9808,7 @@
           let context = new _isolate_helper._IsolateContext();
           _isolate_helper._globalState.topEventLoop.enqueue(context, dart.fn(() => {
             _isolate_helper.IsolateNatives._startIsolate(entryPoint, ListOfString()._check(args), message, core.bool._check(isSpawnUri), core.bool._check(startPaused), isolate.SendPort._check(replyTo));
-          }, VoidTodynamic$()), 'worker-start');
+          }, VoidToNull()), 'worker-start');
           _isolate_helper._globalState.currentContext = context;
           _isolate_helper._globalState.topEventLoop.run();
           break;
@@ -9854,9 +9858,9 @@
       let replyPort = dart.dindex(msg, 'replyPort');
       _isolate_helper.IsolateNatives.spawn(core.String._check(dart.dindex(msg, 'functionName')), core.String._check(dart.dindex(msg, 'uri')), ListOfString()._check(dart.dindex(msg, 'args')), dart.dindex(msg, 'msg'), false, core.bool._check(dart.dindex(msg, 'isSpawnUri')), core.bool._check(dart.dindex(msg, 'startPaused'))).then(dart.dynamic)(dart.fn(msg => {
         dart.dsend(replyPort, 'send', msg);
-      }, ListToFutureOr()), {onError: dart.fn(errorMessage => {
+      }, ListToNull()), {onError: dart.fn(errorMessage => {
           dart.dsend(replyPort, 'send', JSArrayOfString().of([_isolate_helper._SPAWN_FAILED_SIGNAL, errorMessage]));
-        }, StringTodynamic())});
+        }, StringToNull())});
     }
     static _log(msg) {
       if (dart.test(_isolate_helper._globalState.isWorker)) {
@@ -9913,7 +9917,7 @@
           dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
           completer.completeError(dart.dindex(msg, 1));
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
       let signalReply = port.sendPort;
       if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
         _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid$()));
@@ -9939,7 +9943,7 @@
       _isolate_helper._globalState.topEventLoop.enqueue(new _isolate_helper._IsolateContext(), dart.fn(() => {
         let func = _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName);
         _isolate_helper.IsolateNatives._startIsolate(core.Function._check(func), args, message, isSpawnUri, startPaused, replyPort);
-      }, VoidTodynamic$()), 'nonworker start');
+      }, VoidToNull()), 'nonworker start');
     }
     static get currentIsolate() {
       let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
@@ -10084,7 +10088,7 @@
         if (!dart.test(this[_receivePort][_isClosed])) {
           this[_receivePort][_add](msg);
         }
-      }, VoidTodynamic$()), dart.str`receive ${message}`);
+      }, VoidToNull()), dart.str`receive ${message}`);
     }
     ['=='](other) {
       return _isolate_helper._NativeJsSendPort.is(other) && dart.equals(this[_receivePort], other[_receivePort]);
@@ -10218,13 +10222,11 @@
     let _EmptyStreamOfT = () => (_EmptyStreamOfT = dart.constFn(async._EmptyStream$(T)))();
     let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
     let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
     let _GeneratedStreamImplOfT = () => (_GeneratedStreamImplOfT = dart.constFn(async._GeneratedStreamImpl$(T)))();
     let _IterablePendingEventsOfT = () => (_IterablePendingEventsOfT = dart.constFn(async._IterablePendingEvents$(T)))();
     let _BoundSinkStreamOfdynamic$T = () => (_BoundSinkStreamOfdynamic$T = dart.constFn(async._BoundSinkStream$(dart.dynamic, T)))();
     let _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
     let _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
     let _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
     let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
     let TAndTToT = () => (TAndTToT = dart.constFn(dart.functionType(T, [T, T])))();
@@ -10239,12 +10241,14 @@
     let _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
     let _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
     let _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
+    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
     let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
     let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
     let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
     let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
     let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
     let TTobool = () => (TTobool = dart.constFn(dart.functionType(core.bool, [T])))();
+    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
     let TAndTTobool = () => (TAndTTobool = dart.constFn(dart.functionType(core.bool, [T, T])))();
     let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
     let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
@@ -10252,11 +10256,10 @@
     let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
     let intToT = () => (intToT = dart.constFn(dart.functionType(T, [core.int])))();
     let EventSinkOfTToEventSink = () => (EventSinkOfTToEventSink = dart.constFn(dart.functionType(async.EventSink, [EventSinkOfT()])))();
-    let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
-    let TTodynamic$ = () => (TTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [T])))();
+    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
     let VoidTo_IterablePendingEventsOfT = () => (VoidTo_IterablePendingEventsOfT = dart.constFn(dart.definiteFunctionType(_IterablePendingEventsOfT(), [])))();
-    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
     let VoidToT = () => (VoidToT = dart.constFn(dart.definiteFunctionType(T, [])))();
+    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
     class Stream extends core.Object {
       new() {
       }
@@ -10270,10 +10273,10 @@
         future.then(dart.dynamic)(dart.fn(value => {
           controller[_add$](value);
           controller[_closeUnchecked]();
-        }, TToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+        }, TToNull()), {onError: dart.fn((error, stackTrace) => {
             controller[_addError](error, core.StackTrace._check(stackTrace));
             controller[_closeUnchecked]();
-          }, dynamicAnddynamicTodynamic$())});
+          }, dynamicAnddynamicToNull())});
         return controller.stream;
       }
       static fromFutures(futures) {
@@ -10284,13 +10287,13 @@
             controller[_add$](value);
             if (--count == 0) controller[_closeUnchecked]();
           }
-        }, TTodynamic$());
+        }, TToNull());
         let onError = dart.fn((error, stack) => {
           if (!dart.test(controller.isClosed)) {
             controller[_addError](error, core.StackTrace._check(stack));
             if (--count == 0) controller[_closeUnchecked]();
           }
-        }, dynamicAnddynamicTodynamic$());
+        }, dynamicAnddynamicToNull());
         for (let future of futures) {
           count++;
           future.then(dart.dynamic)(onValue, {onError: onError});
@@ -10327,17 +10330,17 @@
           dart.assert(timer == null);
           timer = async.Timer.periodic(period, dart.fn(timer => {
             sendEvent();
-          }, TimerTovoid$()));
+          }, TimerToNull()));
         }
         dart.fn(startPeriodicTimer, VoidTovoid$());
         controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
             watch.start();
             startPeriodicTimer();
-          }, VoidTovoid$()), onPause: dart.fn(() => {
+          }, VoidToNull()), onPause: dart.fn(() => {
             timer.cancel();
             timer = null;
             watch.stop();
-          }, VoidTovoid$()), onResume: dart.fn(() => {
+          }, VoidToNull()), onResume: dart.fn(() => {
             dart.assert(timer == null);
             let elapsed = watch.elapsed;
             watch.start();
@@ -10345,11 +10348,11 @@
               timer = null;
               startPeriodicTimer();
               sendEvent();
-            }, VoidTovoid$()));
-          }, VoidTovoid$()), onCancel: dart.fn(() => {
+            }, VoidToNull()));
+          }, VoidToNull()), onCancel: dart.fn(() => {
             if (timer != null) timer.cancel();
             timer = null;
-          }, VoidTodynamic$())});
+          }, VoidToNull())});
         return controller.stream;
       }
       static eventTransformed(source, mapSink) {
@@ -10396,21 +10399,21 @@
               } else {
                 controller.add(E.as(newValue));
               }
-            }, TTovoid$()), {onError: addError, onDone: dart.bind(controller, 'close')});
+            }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
           }).bind(this);
           dart.fn(onListen, VoidTovoid$());
           if (dart.test(this.isBroadcast)) {
             controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTovoid$()), sync: true});
+              }, VoidToNull()), sync: true});
           } else {
             controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
                 subscription.pause();
-              }, VoidTovoid$()), onResume: dart.fn(() => {
+              }, VoidToNull()), onResume: dart.fn(() => {
                 subscription.resume();
-              }, VoidTovoid$()), onCancel: dart.fn(() => {
+              }, VoidToNull()), onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTodynamic$()), sync: true});
+              }, VoidToNull()), sync: true});
           }
           return controller.stream;
         };
@@ -10436,21 +10439,21 @@
                 subscription.pause();
                 controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
               }
-            }, TTovoid$()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
+            }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
           }).bind(this);
           dart.fn(onListen, VoidTovoid$());
           if (dart.test(this.isBroadcast)) {
             controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTovoid$()), sync: true});
+              }, VoidToNull()), sync: true});
           } else {
             controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
                 subscription.pause();
-              }, VoidTovoid$()), onResume: dart.fn(() => {
+              }, VoidToNull()), onResume: dart.fn(() => {
                 subscription.resume();
-              }, VoidTovoid$()), onCancel: dart.fn(() => {
+              }, VoidToNull()), onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTodynamic$()), sync: true});
+              }, VoidToNull()), sync: true});
           }
           return controller.stream;
         };
@@ -10484,12 +10487,12 @@
           if (seenFirst) {
             async._runUserCode(dart.fn(() => combine(value, element), VoidToT()), dart.fn(newValue => {
               value = newValue;
-            }, TTodynamic$()), async._cancelAndErrorClosure(subscription, result));
+            }, TToNull()), async._cancelAndErrorClosure(subscription, result));
           } else {
             value = element;
             seenFirst = true;
           }
-        }, TTovoid$()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
             if (!seenFirst) {
               try {
                 dart.throw(_internal.IterableElementError.noElement());
@@ -10501,7 +10504,7 @@
             } else {
               result[_complete](value);
             }
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       }
       fold(S) {
@@ -10512,12 +10515,12 @@
           subscription = this.listen(dart.fn(element => {
             async._runUserCode(dart.fn(() => combine(value, element), dart.definiteFunctionType(S, [])), dart.fn(newValue => {
               value = newValue;
-            }, dart.definiteFunctionType(dart.dynamic, [S])), async._cancelAndErrorClosure(subscription, result));
-          }, TTovoid$()), {onError: dart.fn((e, st) => {
+            }, dart.definiteFunctionType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
+          }, TToNull()), {onError: dart.fn((e, st) => {
               result[_completeError](e, core.StackTrace._check(st));
-            }, dynamicAnddynamicTodynamic$()), onDone: dart.fn(() => {
+            }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
               result[_complete](value);
-            }, VoidTovoid$()), cancelOnError: true});
+            }, VoidToNull()), cancelOnError: true});
           return result;
         };
       }
@@ -10539,11 +10542,11 @@
             async._cancelAndErrorWithReplacement(subscription, result, e, s);
           }
 
-        }, TTovoid$()), {onError: dart.fn(e => {
+        }, TToNull()), {onError: dart.fn(e => {
             result[_completeError](e);
-          }, dynamicTodynamic$()), onDone: dart.fn(() => {
+          }, dynamicToNull$()), onDone: dart.fn(() => {
             result[_complete](buffer.toString());
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       }
       contains(needle) {
@@ -10554,10 +10557,10 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, true);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](false);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       forEach(action) {
@@ -10565,10 +10568,10 @@
         let subscription = null;
         subscription = this.listen(dart.fn(element => {
           async._runUserCode(dart.fn(() => action(element), VoidTovoid$()), dart.fn(_ => {
-          }, dynamicTodynamic$()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, dynamicToNull$()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](null);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       every(test) {
@@ -10579,10 +10582,10 @@
             if (!dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, false);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](true);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       any(test) {
@@ -10593,10 +10596,10 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, true);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](false);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get length() {
@@ -10604,9 +10607,9 @@
         let count = 0;
         this.listen(dart.fn(_ => {
           count++;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](count);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get isEmpty() {
@@ -10614,9 +10617,9 @@
         let subscription = null;
         subscription = this.listen(dart.fn(_ => {
           async._cancelAndValue(subscription, future, false);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](true);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       toList() {
@@ -10624,9 +10627,9 @@
         let future = new (_FutureOfListOfT())();
         this.listen(dart.fn(data => {
           result[dartx.add](data);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](result);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       toSet() {
@@ -10634,9 +10637,9 @@
         let future = new (_FutureOfSetOfT())();
         this.listen(dart.fn(data => {
           result.add(data);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](result);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       drain(E) {
@@ -10666,7 +10669,7 @@
         let subscription = null;
         subscription = this.listen(dart.fn(value => {
           async._cancelAndValue(subscription, future, value);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             try {
               dart.throw(_internal.IterableElementError.noElement());
             } catch (e) {
@@ -10674,7 +10677,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get last() {
@@ -10684,7 +10687,7 @@
         this.listen(dart.fn(value => {
           foundResult = true;
           result = value;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10696,7 +10699,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get single() {
@@ -10717,7 +10720,7 @@
           }
           foundResult = true;
           result = value;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10729,7 +10732,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       firstWhere(test, opts) {
@@ -10741,8 +10744,8 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, value);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (defaultValue != null) {
               async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
               return;
@@ -10754,7 +10757,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       lastWhere(test, opts) {
@@ -10769,8 +10772,8 @@
               foundResult = true;
               result = value;
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10786,7 +10789,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       singleWhere(test) {
@@ -10810,8 +10813,8 @@
               foundResult = true;
               result = value;
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10823,7 +10826,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       elementAt(index) {
@@ -10837,9 +10840,9 @@
             return;
           }
           elementIndex = elementIndex + 1;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       timeout(timeLimit, opts) {
@@ -10873,7 +10876,7 @@
           if (onTimeout == null) {
             timeout = dart.fn(() => {
               controller.addError(new async.TimeoutException("No stream event", timeLimit), null);
-            }, VoidTovoid$());
+            }, VoidToNull());
           } else {
             let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfT())(onTimeout);
             let wrapper = new async._ControllerEventSinkWrapper(null);
@@ -10881,7 +10884,7 @@
               wrapper[_sink] = controller;
               zone.runUnaryGuarded(dart.dynamic, EventSinkOfT())(registeredOnTimeout, wrapper);
               wrapper[_sink] = null;
-            }, VoidTovoid$());
+            }, VoidToNull());
           }
           subscription = this.listen(onData, {onError: onError, onDone: onDone});
           timer = zone.createTimer(timeLimit, timeout);
@@ -10897,10 +10900,10 @@
         controller = dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_SyncStreamControllerOfT())(onListen, dart.fn(() => {
           timer.cancel();
           subscription.pause();
-        }, VoidTovoid$()), dart.fn(() => {
+        }, VoidToNull()), dart.fn(() => {
           subscription.resume();
           timer = zone.createTimer(timeLimit, timeout);
-        }, VoidTovoid$()), onCancel);
+        }, VoidToNull()), onCancel);
         return controller.stream;
       }
     }
@@ -11047,7 +11050,7 @@
         _isolate_helper.enterJsAsync();
         this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
           callback(this);
-        }, VoidTodynamic$()), milliseconds);
+        }, VoidToNull()), milliseconds);
       } else {
         dart.throw(new core.UnsupportedError("Periodic timer."));
       }
@@ -12478,14 +12481,14 @@
     let LinkedHashMapKeyIterableOfK = () => (LinkedHashMapKeyIterableOfK = dart.constFn(_js_helper.LinkedHashMapKeyIterable$(K)))();
     let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
     let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
     let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
     let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class JsLinkedHashMap extends core.Object {
       new() {
         this[_length$0] = 0;
@@ -12540,7 +12543,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
@@ -13810,7 +13813,7 @@
     let obj = {};
     map[dartx.forEach](dart.fn((key, value) => {
       obj[_js_mirrors.getName(key)] = value;
-    }, SymbolAnddynamicTovoid()));
+    }, SymbolAnddynamicToNull()));
     return obj;
   };
   dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
@@ -14025,7 +14028,7 @@
         constructors[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         if (dart.test(constructors[dartx.isEmpty])) {
           let name = 'new';
           let ft = _js_mirrors._defaultConstructorType(_js_mirrors._unwrap(this[_cls]));
@@ -14040,23 +14043,23 @@
             t = dart.dindex(t, 0);
           }
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let methods = _js_mirrors._getMethods(unwrapped);
         methods[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let getters = _js_mirrors._getGetters(unwrapped);
         getters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let setters = _js_mirrors._getSetters(unwrapped);
         setters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = dart.notNull(_js_mirrors.getName(symbol)) + '=';
           symbol = new _internal.Symbol.es6(name, _js_mirrors._getESSymbol(symbol));
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticFields = _js_mirrors._getStaticFields(unwrapped);
         staticFields[dartx.forEach](dart.fn((symbol, t) => {
           let name = _js_mirrors.getName(symbol);
@@ -14066,22 +14069,22 @@
             t = dart.dindex(t, 0);
           }
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let statics = _js_mirrors._getStatics(unwrapped);
         statics[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticGetters = _js_mirrors._getStaticGetters(unwrapped);
         staticGetters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticSetters = _js_mirrors._getStaticSetters(unwrapped);
         staticSetters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         this[_declarations] = MapOfSymbol$DeclarationMirror().unmodifiable(this[_declarations]);
       }
       return this[_declarations];
@@ -17931,11 +17934,11 @@
           let result = new (async._Future$(E))();
           this[_onDone] = dart.fn(() => {
             result[_complete](futureValue);
-          }, VoidTovoid$());
+          }, VoidToNull());
           this[_onError] = dart.fn((error, stackTrace) => {
             this.cancel();
             result[_completeError](error, core.StackTrace._check(stackTrace));
-          }, dynamicAnddynamicTodynamic$());
+          }, dynamicAnddynamicToNull());
           return result;
         };
       }
@@ -18611,7 +18614,7 @@
   async._SyncBroadcastStreamController$ = dart.generic(T => {
     let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
     let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
-    let _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
+    let _BufferingStreamSubscriptionOfTToNull = () => (_BufferingStreamSubscriptionOfTToNull = dart.constFn(dart.definiteFunctionType(core.Null, [_BufferingStreamSubscriptionOfT()])))();
     class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
       new(onListen, onCancel) {
         super.new(onListen, onCancel);
@@ -18640,19 +18643,19 @@
         }
         this[_forEachListener](dart.fn(subscription => {
           subscription[_add$](data);
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       }
       [_sendError](error, stackTrace) {
         if (dart.test(this[_isEmpty])) return;
         this[_forEachListener](dart.fn(subscription => {
           subscription[_addError](error, stackTrace);
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       }
       [_sendDone]() {
         if (!dart.test(this[_isEmpty])) {
           this[_forEachListener](dart.fn(subscription => {
             subscription[_close$]();
-          }, _BufferingStreamSubscriptionOfTTovoid()));
+          }, _BufferingStreamSubscriptionOfTToNull()));
         } else {
           dart.assert(this[_doneFuture] != null);
           dart.assert(this[_doneFuture][_mayComplete]);
@@ -18903,7 +18906,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static microtask(computation) {
@@ -18916,7 +18919,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static sync(computation) {
@@ -18956,7 +18959,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static wait(T) {
@@ -18976,7 +18979,7 @@
                   if (value != null) {
                     async.Future.sync(dart.fn(() => {
                       cleanUp(value);
-                    }, VoidTodynamic$()));
+                    }, VoidToNull()));
                   }
                 }
               }
@@ -19006,13 +19009,13 @@
                   if (cleanUp != null && value != null) {
                     async.Future.sync(dart.fn(() => {
                       cleanUp(value);
-                    }, VoidTodynamic$()));
+                    }, VoidToNull()));
                   }
                   if (remaining == 0 && !dart.test(eagerError)) {
                     result[_completeError](error, stackTrace);
                   }
                 }
-              }, dart.definiteFunctionType(async.FutureOr, [T])), {onError: handleError});
+              }, dart.definiteFunctionType(core.Null, [T])), {onError: handleError});
               remaining++;
             }
             if (remaining == 0) {
@@ -19037,10 +19040,10 @@
           let completer = async.Completer$(T).sync();
           let onValue = dart.fn(value => {
             if (!dart.test(completer.isCompleted)) completer.complete(value);
-          }, dart.definiteFunctionType(dart.dynamic, [T]));
+          }, dart.definiteFunctionType(core.Null, [T]));
           let onError = dart.fn((error, stack) => {
             if (!dart.test(completer.isCompleted)) completer.completeError(error, core.StackTrace._check(stack));
-          }, dynamicAnddynamicTodynamic$());
+          }, dynamicAnddynamicToNull());
           for (let future of futures) {
             future.then(dart.dynamic)(onValue, {onError: onError});
           }
@@ -19063,7 +19066,7 @@
           } else {
             doneSignal[_complete](null);
           }
-        }, boolTodynamic()), {runGuarded: true});
+        }, boolToNull()), {runGuarded: true});
         dart.dcall(nextIteration, true);
         return doneSignal;
       }
@@ -19416,7 +19419,7 @@
     let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
     let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
     let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
-    let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
+    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
     class _Future extends core.Object {
       new() {
         this[_zone] = async.Zone.current;
@@ -19554,7 +19557,7 @@
           dart.assert(this[_isComplete]);
           this[_zone].scheduleMicrotask(dart.fn(() => {
             async._Future._propagateToListeners(this, listener);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       [_prependListeners](listeners) {
@@ -19582,7 +19585,7 @@
           listeners = this[_reverseListeners](listeners);
           this[_zone].scheduleMicrotask(dart.fn(() => {
             async._Future._propagateToListeners(this, listeners);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       [_removeListeners]() {
@@ -19611,16 +19614,16 @@
             dart.assert(target[_isPendingComplete]);
             target[_clearPendingComplete]();
             target[_complete](value);
-          }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
               if (stackTrace === void 0) stackTrace = null;
               dart.assert(target[_isPendingComplete]);
               target[_completeError](error, core.StackTrace._check(stackTrace));
-            }, dynamic__Todynamic())});
+            }, dynamic__ToNull())});
         } catch (e) {
           let s = dart.stackTrace(e);
           async.scheduleMicrotask(dart.fn(() => {
             target[_completeError](e, s);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
 
       }
@@ -19678,7 +19681,7 @@
               this[_setPendingComplete]();
               this[_zone].scheduleMicrotask(dart.fn(() => {
                 async._Future._chainCoreFuture(coreFuture, this);
-              }, VoidTovoid$()));
+              }, VoidToNull()));
             } else {
               async._Future._chainCoreFuture(coreFuture, this);
             }
@@ -19691,14 +19694,14 @@
         this[_setPendingComplete]();
         this[_zone].scheduleMicrotask(dart.fn(() => {
           this[_completeWithValue](typedValue);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
       }
       [_asyncCompleteError](error, stackTrace) {
         dart.assert(!dart.test(this[_isComplete]));
         this[_setPendingComplete]();
         this[_zone].scheduleMicrotask(dart.fn(() => {
           this[_completeError](error, stackTrace);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
       }
       static _propagateToListeners(source, listeners) {
         while (true) {
@@ -19842,7 +19845,7 @@
         if (onTimeout == null) {
           timer = async.Timer.new(timeLimit, dart.fn(() => {
             result[_completeError](new async.TimeoutException("Future not completed", timeLimit));
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         } else {
           let zone = async.Zone.current;
           onTimeout = zone.registerCallback(dart.dynamic)(onTimeout);
@@ -19854,19 +19857,19 @@
               result[_completeError](e, s);
             }
 
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
         this.then(dart.dynamic)(dart.fn(v => {
           if (dart.test(timer.isActive)) {
             timer.cancel();
             result[_completeWithValue](v);
           }
-        }, TToFutureOr()), {onError: dart.fn((e, s) => {
+        }, TToNull()), {onError: dart.fn((e, s) => {
             if (dart.test(timer.isActive)) {
               timer.cancel();
               result[_completeError](e, core.StackTrace._check(s));
             }
-          }, dynamicAnddynamicTodynamic$())});
+          }, dynamicAnddynamicToNull())});
         return result;
       }
     }
@@ -20048,7 +20051,7 @@
           storedCallback = null;
           f();
         }
-        dart.fn(internalCallback, dynamicTodynamic$());
+        dart.fn(internalCallback, dynamicToNull$());
         ;
         let observer = new _isolate_helper.global.MutationObserver(internalCallback);
         observer.observe(div, {childList: true});
@@ -20057,7 +20060,7 @@
           _isolate_helper.enterJsAsync();
           storedCallback = callback;
           div.firstChild ? div.removeChild(span) : div.appendChild(span);
-        }, _AsyncCallbackTovoid());
+        }, FnToNull());
       } else if (_isolate_helper.global.setImmediate != null) {
         return async._AsyncRun._scheduleImmediateWithSetImmediate;
       }
@@ -20068,7 +20071,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }
-      dart.fn(internalCallback, VoidTodynamic$());
+      dart.fn(internalCallback, VoidToNull());
       ;
       _isolate_helper.enterJsAsync();
       _isolate_helper.global.scheduleImmediate(internalCallback);
@@ -20078,7 +20081,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }
-      dart.fn(internalCallback, VoidTodynamic$());
+      dart.fn(internalCallback, VoidToNull());
       ;
       _isolate_helper.enterJsAsync();
       _isolate_helper.global.setImmediate(internalCallback);
@@ -20492,7 +20495,7 @@
         subscription[_setPendingEvents](pendingEvents);
         subscription[_guardCallback](dart.fn(() => {
           async._runGuarded(this.onListen);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return subscription;
       }
       [_recordCancel](subscription) {
@@ -20752,7 +20755,7 @@
         return dart.fn((e, s) => {
           controller[_addError](e, s);
           controller[_close$]();
-        }, dynamicAndStackTraceTodynamic());
+        }, dynamicAndStackTraceToNull());
       }
       pause() {
         this.addSubscription.pause();
@@ -20768,7 +20771,7 @@
         }
         return cancel.whenComplete(dart.fn(() => {
           this.addStreamFuture[_asyncComplete](null);
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
       }
       complete() {
         this.addStreamFuture[_asyncComplete](null);
@@ -20885,7 +20888,7 @@
           this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
           if (oldState == async._PendingEvents._STATE_CANCELED) return;
           this.handleNext(dispatch);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         this[_state] = async._PendingEvents._STATE_SCHEDULED;
       }
       cancelSchedule() {
@@ -21192,7 +21195,7 @@
           let result = new (async._Future$(E))();
           this[_onDone] = dart.fn(() => {
             result[_completeWithValue](null);
-          }, VoidTovoid$());
+          }, VoidToNull());
           return result;
         };
       }
@@ -21611,7 +21614,7 @@
   async._cancelAndErrorClosure = function(subscription, future) {
     return dart.fn((error, stackTrace) => {
       async._cancelAndError(subscription, future, error, stackTrace);
-    }, dynamicAndStackTraceTovoid());
+    }, dynamicAndStackTraceToNull());
   };
   dart.fn(async._cancelAndErrorClosure, StreamSubscriptionAnd_FutureTo_ErrorCallback());
   async._cancelAndValue = function(subscription, future, value) {
@@ -23193,7 +23196,7 @@
         if (error == null) error = new core.NullThrownError();
         if (stackTrace == null) dart.throw(error);
         async._rethrow(error, stackTrace);
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     };
   };
   dart.lazyFn(async._rootHandleUncaughtError, () => ZoneAndZoneDelegateAndZone__ToR());
@@ -23629,13 +23632,13 @@
     let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
     let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let ListOfK = () => (ListOfK = dart.constFn(core.List$(K)))();
     let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
     let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class _HashMap extends core.Object {
       new() {
         this[_length$1] = 0;
@@ -23683,7 +23686,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         if (dart.test(collection._HashMap._isStringKey(key))) {
@@ -24176,11 +24179,11 @@
   collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
     let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let _Es6MapIterableOfV = () => (_Es6MapIterableOfV = dart.constFn(collection._Es6MapIterable$(V)))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
     class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
       new() {
@@ -24213,7 +24216,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         return this[_map$0].get(key);
@@ -25813,7 +25816,7 @@
         let result = HashMapOfK$V().new();
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -26365,7 +26368,7 @@
         let result = LinkedHashMapOfK$V().new();
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -27120,7 +27123,7 @@
           result.write(k);
           result.write(': ');
           result.write(v);
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         result.write('}');
       } finally {
         dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
@@ -28247,16 +28250,16 @@
     let ComparatorOfK = () => (ComparatorOfK = dart.constFn(core.Comparator$(K)))();
     let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let _SplayTreeNodeIteratorOfK = () => (_SplayTreeNodeIteratorOfK = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
     let _SplayTreeKeyIterableOfK = () => (_SplayTreeKeyIterableOfK = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
     let _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
     let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
     let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class SplayTreeMap extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {
       new(compare, isValidKey) {
         if (compare === void 0) compare = null;
@@ -28279,7 +28282,7 @@
         let result = new (SplayTreeMapOfK$V())(compare, isValidKey);
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -28365,7 +28368,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       get isEmpty() {
         return this[_root] == null;
@@ -29038,7 +29041,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
     }
     containsValue(value) {
       if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
@@ -31495,7 +31498,7 @@
         }
         keyValueList[dartx._set](i++, key);
         keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       if (!allStringKeys) return false;
       this.writeString('{');
       let separator = '"';
@@ -31596,7 +31599,7 @@
         }
         keyValueList[dartx._set](i++, key);
         keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       if (!allStringKeys) return false;
       this.writeString('{\n');
       this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
@@ -33842,7 +33845,7 @@
           sb.write(": ");
           sb.write(core.Error.safeToString(value));
           i++;
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
       }
       if (this[_existingArgumentNames] == null) {
         return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Arguments: [${sb}]`;
@@ -34168,7 +34171,7 @@
       let result = dart.map({}, core.String, dart.dynamic);
       namedArguments[dartx.forEach](dart.fn((symbol, value) => {
         result[dartx._set](core._symbolToString(symbol), value);
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       return result;
     }
   };
@@ -35163,7 +35166,7 @@
             dart.throw(new core.UnsupportedError(dart.str`Illegal path character ${segment}`));
           }
         }
-      }, StringTovoid$()));
+      }, StringToNull()));
     }
     static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) {
       if (firstSegment === void 0) firstSegment = 0;
@@ -35520,7 +35523,7 @@
             writeParameter(key, value);
           }
         }
-      }, StringAnddynamicTovoid()));
+      }, StringAnddynamicToNull()));
       return result.toString();
     }
     static _makeFragment(fragment, start, end) {
@@ -36508,7 +36511,7 @@
         if (indices != null) indices[dartx.add](buffer.length);
         buffer.write('=');
         buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, value, convert.UTF8, false));
-      }, StringAndStringTovoid$())));
+      }, StringAndStringToNull())));
     }
     static _validateMimeType(mimeType) {
       let slashIndex = -1;
@@ -39157,7 +39160,7 @@
           this.error(response);
           this.close();
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
     }
     onResume() {
       if (!dart.test(this.nextRunning)) {
@@ -39222,7 +39225,7 @@
         } else {
           this.controller.addError(new io.FileSystemException("Internal error"));
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
     }
     [_cleanup]() {
       this.controller.close();
@@ -39532,13 +39535,13 @@
         if (dart.test(this[_atEnd])) {
           this[_closeFile]();
         }
-      }, ListOfintToFutureOr())).catchError(dart.fn((e, s) => {
+      }, ListOfintToNull())).catchError(dart.fn((e, s) => {
         if (!dart.test(this[_unsubscribed])) {
           this[_controller$0].addError(e, core.StackTrace._check(s));
           this[_closeFile]();
           this[_unsubscribed] = true;
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
     }
     [_start$2]() {
       if (dart.notNull(this[_position$0]) < 0) {
@@ -39559,7 +39562,7 @@
               this[_controller$0].addError(e, core.StackTrace._check(s));
               this[_readInProgress] = false;
               this[_closeFile]();
-            }, dynamicAnddynamicTodynamic$())});
+            }, dynamicAnddynamicToNull())});
         } else {
           onReady(file);
         }
@@ -39645,10 +39648,10 @@
             error(e, stackTrace);
           }
 
-        }, ListOfintTovoid$()), {onDone: dart.fn(() => {
+        }, ListOfintToNull()), {onDone: dart.fn(() => {
             completer.complete(this[_file]);
-          }, VoidTovoid$()), onError: error, cancelOnError: true});
-      }, RandomAccessFileToFutureOr())).catchError(dart.bind(completer, 'completeError'));
+          }, VoidToNull()), onError: error, cancelOnError: true});
+      }, RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
       return completer.future;
     }
     close() {
@@ -39886,7 +39889,7 @@
             } else {
               completer.complete(builder.takeBytes());
             }
-          }, dynamicTodynamic$()), {onError: dart.bind(completer, 'completeError')});
+          }, dynamicToNull$()), {onError: dart.bind(completer, 'completeError')});
         }
         dart.fn(read, VoidTovoid$());
         read();
@@ -40437,7 +40440,7 @@
       data[dartx._set](0, this[_pointer]());
       return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
         this[_asyncDispatched] = false;
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     }
     [_checkAvailable]() {
       if (dart.test(this[_asyncDispatched])) {
@@ -42074,7 +42077,7 @@
           sb.write(values[dartx._get](i));
         }
         sb.write("\n");
-      }, StringAndListOfStringTovoid$()));
+      }, StringAndListOfStringToNull()));
       return sb.toString();
     }
     [_parseCookies]() {
@@ -42286,7 +42289,7 @@
           sb.write(name);
           sb.write("=");
           sb.write(value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       return sb.toString();
     }
@@ -42434,7 +42437,7 @@
             value = value[dartx.toLowerCase]();
           }
           this[_parameters][dartx._set](lowerCaseKey, value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       if (charset != null) {
         this[_ensureParameters]();
@@ -42699,7 +42702,7 @@
       this.hasSubscriber = true;
       return this[_stream$].handleError(dart.fn(error => {
         dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
-      }, dynamicTodynamic$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+      }, dynamicToNull$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
     }
     get dataDone() {
       return this[_dataCompleter].future;
@@ -42922,7 +42925,7 @@
       if (values != null) {
         values[dartx.forEach](dart.fn(value => {
           this[_cookies][dartx.add](io.Cookie.fromSetCookieValue(value));
-        }, StringTovoid$()));
+        }, StringToNull()));
       }
       return this[_cookies];
     }
@@ -43146,7 +43149,7 @@
         const targetAddStream = (function() {
           return this[_target$].addStream(stream).whenComplete(dart.fn(() => {
             this[_isBound] = false;
-          }, VoidTodynamic$()));
+          }, VoidToNull()));
         }).bind(this);
         dart.fn(targetAddStream, VoidToFuture());
         if (this[_controllerInstance] == null) return targetAddStream();
@@ -43164,7 +43167,7 @@
         this[_controllerInstance].close();
         return future.whenComplete(dart.fn(() => {
           this[_isBound] = false;
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
       }
       close() {
         if (dart.test(this[_isBound])) {
@@ -43215,7 +43218,7 @@
             } else {
               this[_closeTarget]();
             }
-          }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
               if (dart.test(this[_isBound])) {
                 this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
                 this[_controllerCompleter] = null;
@@ -43223,7 +43226,7 @@
               } else {
                 this[_completeDoneError](error, core.StackTrace._check(stackTrace));
               }
-            }, dynamicAnddynamicTodynamic$())});
+            }, dynamicAnddynamicToNull())});
         }
         return this[_controllerInstance];
       }
@@ -43468,7 +43471,7 @@
       }
       this.close();
       this.done.catchError(dart.fn(_ => {
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return future;
     }
     get connectionInfo() {
@@ -43483,7 +43486,7 @@
       if (this[_deadline] == null) return;
       this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
         this[_httpRequest][_httpConnection].destroy();
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
     [_writeHeader]() {
       let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
@@ -43548,7 +43551,7 @@
       if (this[_cookies] != null) {
         this[_cookies][dartx.forEach](dart.fn(cookie => {
           this.headers.add(io.HttpHeaders.SET_COOKIE, cookie);
-        }, CookieTovoid()));
+        }, CookieToNull()));
       }
       this.headers[_finalize]();
       offset = this.headers[_write](buffer, offset);
@@ -44052,7 +44055,7 @@
         }
         if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
           drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
-          }, dynamicTodynamic$()));
+          }, dynamicToNull$()));
         }
       } else {
         drainRequest = false;
@@ -44081,7 +44084,7 @@
       }
       if (dart.test(this.ignoreBody)) {
         stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
-        }, dynamicTodynamic$()));
+        }, dynamicToNull$()));
         let future = this.writeHeaders();
         if (future != null) {
           return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
@@ -44208,7 +44211,7 @@
           this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
           this[_pendingChunkedFooter] = 2;
           this[_addChunk$](data, ListOfintTovoid()._check(this[_gzipAdd]));
-        }, dynamicTodynamic$())));
+        }, dynamicToNull$())));
       }
     }
     [_ignoreError](error) {
@@ -44364,28 +44367,28 @@
         if (incoming.statusCode == 100) {
           incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
             this[_subscription$].resume();
-          }, dynamicToFutureOr$())).catchError(dart.fn((error, stackTrace) => {
+          }, dynamicToNull$())).catchError(dart.fn((error, stackTrace) => {
             if (stackTrace === void 0) stackTrace = null;
             this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
             this[_nextResponseCompleter] = null;
-          }, dynamic__Todynamic$()));
+          }, dynamic__ToNull$()));
         } else {
           this[_nextResponseCompleter].complete(incoming);
           this[_nextResponseCompleter] = null;
         }
-      }, _HttpIncomingTovoid$()), {onError: dart.fn((error, stackTrace) => {
+      }, _HttpIncomingToNull()), {onError: dart.fn((error, stackTrace) => {
           if (stackTrace === void 0) stackTrace = null;
           if (this[_nextResponseCompleter] != null) {
             this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
             this[_nextResponseCompleter] = null;
           }
-        }, dynamic__Todynamic$()), onDone: dart.fn(() => {
+        }, dynamic__ToNull$()), onDone: dart.fn(() => {
           if (this[_nextResponseCompleter] != null) {
             this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
             this[_nextResponseCompleter] = null;
           }
           this.close();
-        }, VoidTovoid$())});
+        }, VoidToNull())});
     }
     send(uri, port, method, proxy) {
       if (dart.test(this.closed)) {
@@ -44441,7 +44444,7 @@
             } else {
               this.destroy();
             }
-          }, dynamicToFutureOr$()));
+          }, dynamicToNull$()));
           if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
             let authInfo = incoming.headers._get("proxy-authentication-info");
             if (authInfo != null && authInfo[dartx.length] == 1) {
@@ -44459,17 +44462,17 @@
             }
           }
           request[_onIncoming](incoming);
-        }, _HttpIncomingToFutureOr())).catchError(dart.fn(error => {
+        }, _HttpIncomingToNull())).catchError(dart.fn(error => {
           dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
-        }, dynamicTodynamic$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
+        }, dynamicToNull$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
           this.destroy();
           request[_onError$](error, core.StackTrace._check(stackTrace));
-        }, dynamicAnddynamicTodynamic$()));
+        }, dynamicAnddynamicToNull()));
         this[_subscription$].resume();
         return s;
       }, dynamicTodynamic$()), {onError: dart.fn(e => {
           this.destroy();
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
       return request;
     }
     detachSocket() {
@@ -44519,7 +44522,7 @@
       this[_idleTimer] = async.Timer.new(this[_httpClient].idleTimeout, dart.fn(() => {
         this[_idleTimer] = null;
         this.close();
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
   };
   dart.setSignature(io._HttpClientConnection, {
@@ -44643,7 +44646,7 @@
         let completer = async.Completer.new();
         this[_pending$].add(dart.fn(() => {
           this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
         return FutureOf_ConnectionInfo()._check(completer.future);
       }
       let currentBadCertificateCallback = client[_badCertificateCallback];
@@ -44672,7 +44675,7 @@
           this[_connecting] = dart.notNull(this[_connecting]) - 1;
           this[_checkPending]();
           dart.throw(error);
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
     }
   };
   dart.setSignature(io._ConnectionTarget, {
@@ -45151,7 +45154,7 @@
         this[_httpServer][_markActive](this);
         incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
           if (dart.test(closing)) this.destroy();
-        }, dynamicToFutureOr$()));
+        }, dynamicToNull$()));
         this[_subscription$].pause();
         this[_state$1] = io._HttpConnection._ACTIVE;
         let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
@@ -45168,17 +45171,17 @@
           } else {
             this.destroy();
           }
-        }, dynamicToFutureOr$()), {onError: dart.fn(_ => {
+        }, dynamicToNull$()), {onError: dart.fn(_ => {
             this.destroy();
-          }, dynamicTodynamic$())});
+          }, dynamicToNull$())});
         outgoing.ignoreBody = request.method == "HEAD";
         response[_httpRequest] = request;
         this[_httpServer][_handleRequest](request);
-      }, _HttpIncomingTovoid$()), {onDone: dart.fn(() => {
+      }, _HttpIncomingToNull()), {onDone: dart.fn(() => {
           this.destroy();
-        }, VoidTovoid$()), onError: dart.fn(error => {
+        }, VoidToNull()), onError: dart.fn(error => {
           this.destroy();
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
     }
     markIdle() {
       this[_idleMark] = true;
@@ -45394,7 +45397,7 @@
               idle.markIdle();
             }
           }
-        }, TimerTovoid$()));
+        }, TimerToNull()));
       }
     }
     listen(onData, opts) {
@@ -45405,11 +45408,11 @@
         socket.setOption(io.SocketOption.TCP_NODELAY, true);
         let connection = new io._HttpConnection(socket, this);
         this[_idleConnections].add(connection);
-      }, SocketTodynamic()), {onError: dart.fn((error, stackTrace) => {
+      }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
           if (!io.HandshakeException.is(error)) {
             this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
           }
-        }, dynamicAnddynamicTodynamic$()), onDone: dart.bind(this[_controller$0], 'close')});
+        }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
       return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
     }
     close(opts) {
@@ -45487,11 +45490,11 @@
           dart.assert(conn[_isClosing]);
           result.closing = dart.notNull(result.closing) + 1;
         }
-      }, _HttpConnectionTovoid()));
+      }, _HttpConnectionToNull()));
       this[_idleConnections].forEach(dart.fn(conn => {
         result.idle = dart.notNull(result.idle) + 1;
         dart.assert(conn[_isIdle]);
-      }, _HttpConnectionTovoid()));
+      }, _HttpConnectionToNull()));
       return result;
     }
     get [_serviceTypePath]() {
@@ -45666,7 +45669,7 @@
             dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
           }
         }
-      }, StringTovoid$()));
+      }, StringToNull()));
     }
     direct() {
       this.proxies = const$74 || (const$74 = dart.constList([const$73 || (const$73 = dart.const(new io._Proxy.direct()))], io._Proxy));
@@ -46314,7 +46317,7 @@
         if (this[_userOnData] != null) {
           dart.dcall(this[_userOnData], data);
         }
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
   };
   io._HttpDetachedStreamSubscription[dart.implements] = () => [StreamSubscriptionOfListOfint()];
@@ -46447,17 +46450,17 @@
       super.new();
       this[_controller$0] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
           this[_paused] = false;
-        }, VoidTovoid$()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           this[_paused] = true;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           this[_paused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (this[_socketSubscription] != null) {
             this[_socketSubscription].cancel();
           }
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       this[_reset]();
     }
     listen(onData, opts) {
@@ -47077,24 +47080,24 @@
           dart.assert(this[_bodyPaused]);
           this[_bodyPaused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           dart.assert(!dart.test(this[_bodyPaused]));
           this[_bodyPaused] = true;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           dart.assert(this[_bodyPaused]);
           this[_bodyPaused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           if (this[_socketSubscription] != null) {
             this[_socketSubscription].cancel();
           }
           this[_closeIncoming](true);
           this[_controller$0].close();
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
       this[_bodyPaused] = true;
       this[_pauseStateChanged]();
@@ -48718,7 +48721,7 @@
       let completer = async.Completer.new();
       dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
         completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return FutureOfSecureSocket()._check(completer.future);
     }
     static secureServer(socket, context, opts) {
@@ -48729,7 +48732,7 @@
       let completer = async.Completer.new();
       dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
         completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return FutureOfSecureSocket()._check(completer.future);
     }
   };
@@ -48885,11 +48888,11 @@
         } else {
           this[_controller$0].add(secureConnection);
         }
-      }, RawSecureSocketToFutureOr())).catchError(dart.fn((e, s) => {
+      }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
         if (!dart.test(this[_closed])) {
           this[_controller$0].addError(e, core.StackTrace._check(s));
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
     }
     [_onPauseStateChange]() {
       if (dart.test(this[_controller$0].isPaused)) {
@@ -49469,7 +49472,7 @@
             }
           }
           this[_tryFilter]();
-        }, _FilterStatusToFutureOr())).catchError(dart.bind(this, _reportError));
+        }, _FilterStatusToNull())).catchError(dart.bind(this, _reportError));
       }
     }
     [_readSocketOrBufferedData](bytes) {
@@ -50554,7 +50557,7 @@
           completer.completeError(e, s);
         }
 
-      }, ListOfintTovoid$()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
+      }, ListOfintToNull()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
       return completer.future;
     }
     close() {
@@ -51546,9 +51549,9 @@
     bind(stream) {
       stream.listen(dart.fn(request => {
         io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller$0].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
-      }, HttpRequestTovoid$()), {onDone: dart.fn(() => {
+      }, HttpRequestToNull()), {onDone: dart.fn(() => {
           this[_controller$0].close();
-        }, VoidTovoid$())});
+        }, VoidToNull())});
       return this[_controller$0].stream;
     }
     static _upgrade(request, _protocolSelector, compression) {
@@ -51587,7 +51590,7 @@
           response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
           response.close();
           dart.throw(error);
-        }, dynamicTodynamic$())).then(io.WebSocket)(upgrade);
+        }, dynamicToNull$())).then(io.WebSocket)(upgrade);
       } else {
         return FutureOfWebSocket()._check(upgrade(null));
       }
@@ -51617,7 +51620,7 @@
       let isUpgrade = false;
       request.headers._get(io.HttpHeaders.CONNECTION)[dartx.forEach](dart.fn(value => {
         if (value[dartx.toLowerCase]() == "upgrade") isUpgrade = true;
-      }, StringTovoid$()));
+      }, StringToNull()));
       if (!isUpgrade) return false;
       let upgrade = request.headers.value(io.HttpHeaders.UPGRADE);
       if (upgrade == null || upgrade[dartx.toLowerCase]() != "websocket") {
@@ -51812,7 +51815,7 @@
     addFrame(opcode, data) {
       return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
         this[_eventSink$].add(e);
-      }, ListOfintTovoid$()));
+      }, ListOfintToNull()));
     }
     static createFrame(opcode, data, serverSide, compressed) {
       let mask = !dart.test(serverSide);
@@ -51958,7 +51961,7 @@
       this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
         this[_done$]();
         this[_closeCompleter].complete(this.webSocket);
-      }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
           this[_closed] = true;
           this[_cancel$]();
           if (core.ArgumentError.is(error)) {
@@ -51969,7 +51972,7 @@
             this[_done$]();
             this[_closeCompleter].complete(this.webSocket);
           }
-        }, dynamicAndStackTraceTodynamic())});
+        }, dynamicAndStackTraceToNull())});
     }
     [_done$](error, stackTrace) {
       if (error === void 0) error = null;
@@ -51992,7 +51995,7 @@
       this[_completer] = async.Completer.new();
       this[_subscription$] = stream.listen(dart.fn(data => {
         this[_controller$0].add(data);
-      }, dynamicTovoid$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
+      }, dynamicToNull$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
       if (dart.test(this[_issuedPause])) {
         this[_subscription$].pause();
         this[_issuedPause] = false;
@@ -52003,7 +52006,7 @@
       this[_ensureController]();
       const closeSocket = (function() {
         return this.socket.close().catchError(dart.fn(_ => {
-        }, dynamicTodynamic$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
+        }, dynamicToNull$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
       }).bind(this);
       dart.fn(closeSocket, VoidToFuture());
       this[_controller$0].close();
@@ -52094,7 +52097,7 @@
         function error(message) {
           response.detachSocket().then(dart.dynamic)(dart.fn(socket => {
             socket.destroy();
-          }, SocketToFutureOr()));
+          }, SocketToNull()));
           dart.throw(new io.WebSocketException(message));
         }
         dart.fn(error, StringTovoid$());
@@ -52177,7 +52180,7 @@
         } else {
           this[_controller$0].add(data);
         }
-      }, dynamicTodynamic$()), {onError: dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
           if (this[_closeTimer] != null) this[_closeTimer].cancel();
           if (core.FormatException.is(error)) {
             this[_close$0](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
@@ -52187,7 +52190,7 @@
           this[_closeCode] = this[_outCloseCode];
           this[_closeReason] = this[_outCloseReason];
           this[_controller$0].close();
-        }, dynamicAnddynamicTodynamic$()), onDone: dart.fn(() => {
+        }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
           if (this[_closeTimer] != null) this[_closeTimer].cancel();
           if (this[_readyState] == io.WebSocket.OPEN) {
             this[_readyState] = io.WebSocket.CLOSING;
@@ -52201,12 +52204,12 @@
           this[_closeCode] = transformer.closeCode;
           this[_closeReason] = transformer.closeReason;
           this[_controller$0].close();
-        }, VoidTodynamic$()), cancelOnError: true}));
+        }, VoidToNull()), cancelOnError: true}));
       this[_subscription$].pause();
       this[_controller$0] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$], 'resume'), onCancel: dart.fn(() => {
           this[_subscription$].cancel();
           this[_subscription$] = null;
-        }, VoidTodynamic$()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
+        }, VoidToNull()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
       io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
       try {
         dart.dput(this[_socket], _owner, this);
@@ -52233,8 +52236,8 @@
         this[_consumer].add(new io._WebSocketPing());
         this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
           this[_close$0](io.WebSocketStatus.GOING_AWAY);
-        }, VoidTovoid$()));
-      }, VoidTovoid$()));
+        }, VoidToNull()));
+      }, VoidToNull()));
     }
     get readyState() {
       return this[_readyState];
@@ -52282,7 +52285,7 @@
             if (this[_subscription$] != null) this[_subscription$].cancel();
             this[_controller$0].close();
             io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       return this[_sink$0].close();
@@ -52522,11 +52525,11 @@
       controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
           port = isolate.RawReceivePort.new(handleError);
           this.addErrorListener(port.sendPort);
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           this.removeErrorListener(port.sendPort);
           port.close();
           port = null;
-        }, VoidTovoid$())});
+        }, VoidToNull())});
       return controller.stream;
     }
   };
@@ -54791,7 +54794,7 @@
         let completer = CompleterOfIdbFactory().sync();
         request[dartx.onSuccess].listen(dart.fn(e => {
           completer.complete(this);
-        }, EventTovoid$()));
+        }, EventToNull()));
         request[dartx.onError].listen(dart.bind(completer, 'completeError'));
         return completer.future;
       } catch (e) {
@@ -54850,7 +54853,7 @@
       request[dartx.onSuccess].listen(dart.fn(e => {
         let result = indexed_db._cast(T)(request[dartx.result]);
         completer.complete(result);
-      }, EventTovoid$()));
+      }, EventToNull()));
       request[dartx.onError].listen(dart.bind(completer, 'completeError'));
       return completer.future;
     };
@@ -55322,7 +55325,7 @@
               cursor[dartx.next]();
             }
           }
-        }, EventTovoid$()));
+        }, EventToNull()));
         return controller.stream;
       };
     }
@@ -55495,15 +55498,15 @@
       let completer = CompleterOfDatabase().new();
       this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
         completer.complete(this[dartx.db]);
-      }, EventToFutureOr()));
+      }, EventToNull()));
       this[dartx.onError].first.then(dart.dynamic)(dart.fn(e => {
         completer.completeError(e);
-      }, EventToFutureOr()));
+      }, EventToNull()));
       this[dartx.onAbort].first.then(dart.dynamic)(dart.fn(e => {
         if (!dart.test(completer.isCompleted)) {
           completer.completeError(e);
         }
-      }, EventToFutureOr()));
+      }, EventToNull()));
       return completer.future;
     }
     static _() {
@@ -61640,9 +61643,9 @@
       let completer = CompleterOfFileSystem().new();
       this[_webkitRequestFileSystem](type, size, dart.fn(value => {
         completer.complete(value);
-      }, FileSystemTovoid()), dart.fn(error => {
+      }, FileSystemToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.requestFileSystemSync](...args) {
@@ -61658,9 +61661,9 @@
       let completer = CompleterOfEntry().new();
       this[_webkitResolveLocalFileSystemUrl](url, dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.atob](...args) {
@@ -69300,7 +69303,7 @@
       let completer = CompleterOfString().new();
       this[_getAsString](dart.fn(value => {
         completer.complete(value);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [dartx.getAsEntry](...args) {
@@ -69842,9 +69845,9 @@
       let completer = CompleterOfEntry().new();
       this[_copyTo](parent, {name: name, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_getMetadata](...args) {
@@ -69854,9 +69857,9 @@
       let completer = CompleterOfMetadata().new();
       this[_getMetadata](dart.fn(value => {
         completer.complete(value);
-      }, MetadataTovoid()), dart.fn(error => {
+      }, MetadataToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_getParent](...args) {
@@ -69866,9 +69869,9 @@
       let completer = CompleterOfEntry().new();
       this[_getParent](dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_moveTo](...args) {
@@ -69879,9 +69882,9 @@
       let completer = CompleterOfEntry().new();
       this[_moveTo](parent, {name: name, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_remove$](...args) {
@@ -69891,9 +69894,9 @@
       let completer = async.Completer.new();
       this[_remove$](dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.toUrl](...args) {
@@ -69992,9 +69995,9 @@
       let completer = CompleterOfEntry().new();
       this[__getDirectory](path, {options: options, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [__getFile](path, opts) {
@@ -70036,9 +70039,9 @@
       let completer = CompleterOfEntry().new();
       this[__getFile](path, {options: options, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_removeRecursively](...args) {
@@ -70048,9 +70051,9 @@
       let completer = async.Completer.new();
       this[_removeRecursively](dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -70094,9 +70097,9 @@
       let completer = CompleterOfListOfEntry().new();
       this[_readEntries](dart.fn(value => {
         completer.complete(value);
-      }, ListOfEntryTovoid()), dart.fn(error => {
+      }, ListOfEntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -73478,9 +73481,9 @@
       let completer = CompleterOfFileWriter().new();
       this[_createWriter](dart.fn(value => {
         completer.complete(value);
-      }, FileWriterTovoid()), dart.fn(error => {
+      }, FileWriterToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_file$](...args) {
@@ -73490,9 +73493,9 @@
       let completer = CompleterOfFile$().new();
       this[_file$](dart.fn(value => {
         completer.complete(value);
-      }, FileTovoid()), dart.fn(error => {
+      }, FileToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -74556,9 +74559,9 @@
       try {
         this[_getCurrentPosition](dart.fn(position => {
           completer.complete(this[_ensurePosition](position));
-        }, GeopositionTovoid()), dart.fn(error => {
+        }, GeopositionToNull()), dart.fn(error => {
           completer.completeError(error);
-        }, PositionErrorTovoid()), options);
+        }, PositionErrorToNull()), options);
       } catch (e) {
         let stacktrace = dart.stackTrace(e);
         completer.completeError(e, stacktrace);
@@ -74586,13 +74589,13 @@
           dart.assert(watchId == null);
           watchId = this[_watchPosition](dart.fn(position => {
             controller.add(this[_ensurePosition](position));
-          }, GeopositionTovoid()), dart.fn(error => {
+          }, GeopositionToNull()), dart.fn(error => {
             controller.addError(error);
-          }, PositionErrorTovoid()), options);
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+          }, PositionErrorToNull()), options);
+        }, VoidToNull()), onCancel: dart.fn(() => {
           dart.assert(watchId != null);
           this[_clearWatch](watchId);
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       return controller.stream;
     }
     [_ensurePosition](domPosition) {
@@ -75996,7 +75999,7 @@
       let parts = [];
       data[dartx.forEach](dart.fn((key, value) => {
         parts[dartx.add](dart.str`${core.Uri.encodeQueryComponent(key)}=` + dart.str`${core.Uri.encodeQueryComponent(value)}`);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       let formData = parts[dartx.join]('&');
       if (requestHeaders == null) {
         requestHeaders = dart.map({}, core.String, core.String);
@@ -76030,7 +76033,7 @@
       if (requestHeaders != null) {
         requestHeaders[dartx.forEach](dart.fn((header, value) => {
           xhr[dartx.setRequestHeader](header, value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       if (onProgress != null) {
         xhr[dartx.onProgress].listen(onProgress);
@@ -76045,7 +76048,7 @@
         } else {
           completer.completeError(e);
         }
-      }, ProgressEventTovoid$()));
+      }, ProgressEventToNull()));
       xhr[dartx.onError].listen(dart.bind(completer, 'completeError'));
       if (sendData != null) {
         xhr[dartx.send](sendData);
@@ -76082,13 +76085,13 @@
       }
       let xhr = new XDomainRequest();
       xhr.open(method, url);
-      xhr.onload = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+      xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
         let response = xhr.responseText;
         completer.complete(response);
-      }, dynamicTodynamic$()), 1);
-      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+      }, dynamicToNull$()), 1);
+      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
         completer.completeError(e);
-      }, dynamicTodynamic$()), 1);
+      }, dynamicToNull$()), 1);
       xhr.onprogress = {};
       xhr.ontimeout = {};
       xhr.timeout = Number.MAX_VALUE;
@@ -79965,7 +79968,7 @@
       let completer = CompleterOfListOfSourceInfo().new();
       html$.MediaStreamTrack._getSources(dart.fn(value => {
         completer.complete(value);
-      }, ListOfSourceInfoTovoid()));
+      }, ListOfSourceInfoToNull()));
       return completer.future;
     }
     [dartx.stop](...args) {
@@ -81186,7 +81189,7 @@
       function override(key, value) {
         if (value != null) html$.MutationObserver._add(parsedOptions, core.String._check(key), value);
       }
-      dart.fn(override, dynamicAnddynamicTodynamic$());
+      dart.fn(override, dynamicAnddynamicToNull());
       override('childList', childList);
       override('attributes', attributes);
       override('characterData', characterData);
@@ -81352,9 +81355,9 @@
       this[_ensureGetUserMedia]();
       this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
         completer.complete(stream);
-      }, MediaStreamTovoid()), dart.fn(error => {
+      }, MediaStreamToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, NavigatorUserMediaErrorTovoid()));
+      }, NavigatorUserMediaErrorToNull()));
       return completer.future;
     }
     [_ensureGetUserMedia]() {
@@ -82226,7 +82229,7 @@
       let completer = CompleterOfString().new();
       html$.Notification._requestPermission(dart.fn(value => {
         completer.complete(value);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     get [dartx.onClick]() {
@@ -85241,9 +85244,9 @@
       let completer = CompleterOfRtcSessionDescription().new();
       this[_createOffer](dart.fn(value => {
         completer.complete(value);
-      }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+      }, RtcSessionDescriptionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()), mediaConstraints);
+      }, StringToNull()), mediaConstraints);
       return completer.future;
     }
     [dartx.createAnswer](mediaConstraints) {
@@ -85251,16 +85254,16 @@
       let completer = CompleterOfRtcSessionDescription().new();
       this[_createAnswer](dart.fn(value => {
         completer.complete(value);
-      }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+      }, RtcSessionDescriptionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()), mediaConstraints);
+      }, StringToNull()), mediaConstraints);
       return completer.future;
     }
     [dartx.getStats](selector) {
       let completer = CompleterOfRtcStatsResponse().new();
       this[_getStats](dart.fn(value => {
         completer.complete(value);
-      }, RtcStatsResponseTovoid()), selector);
+      }, RtcStatsResponseToNull()), selector);
       return completer.future;
     }
     static _() {
@@ -85376,9 +85379,9 @@
       let completer = async.Completer.new();
       this[_setLocalDescription](description, dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [_setRemoteDescription](...args) {
@@ -85388,9 +85391,9 @@
       let completer = async.Completer.new();
       this[_setRemoteDescription](description, dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [dartx.updateIce](configuration, mediaConstraints) {
@@ -88208,7 +88211,7 @@
     [dartx.addAll](other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this[dartx._set](k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     [dartx.containsValue](value) {
       return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool$()));
@@ -92044,7 +92047,7 @@
       let completer = CompleterOfnum().sync();
       this[dartx.requestAnimationFrame](dart.fn(time => {
         completer.complete(time);
-      }, numTovoid()));
+      }, numToNull()));
       return completer.future;
     }
     get [dartx.document]() {
@@ -92499,9 +92502,9 @@
       let completer = CompleterOfFileSystem().new();
       this[__requestFileSystem](type, size, dart.fn(value => {
         completer.complete(value);
-      }, FileSystemTovoid()), dart.fn(error => {
+      }, FileSystemToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_resolveLocalFileSystemUrl](...args) {
@@ -92511,9 +92514,9 @@
       let completer = CompleterOfEntry().new();
       this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.atob](...args) {
@@ -93203,7 +93206,7 @@
       stream.listen(dart.fn(event => {
         let wrapped = new html$._BeforeUnloadEvent(event);
         controller.add(wrapped);
-      }, BeforeUnloadEventTovoid()));
+      }, BeforeUnloadEventToNull()));
       return controller.stream;
     }
     getEventType(target) {
@@ -94909,7 +94912,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this._set(k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     containsValue(value) {
       for (let v of this.values) {
@@ -95096,7 +95099,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this._set(k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     containsValue(value) {
       return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool$()));
@@ -95127,7 +95130,7 @@
         if (dart.test(this[_matches](key))) {
           f(this[_strip](key), value);
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     get keys() {
       let keys = JSArrayOfString().of([]);
@@ -95135,7 +95138,7 @@
         if (dart.test(this[_matches](key))) {
           keys[dartx.add](this[_strip](key));
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       return keys;
     }
     get values() {
@@ -95144,7 +95147,7 @@
         if (dart.test(this[_matches](key))) {
           values[dartx.add](value);
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       return values;
     }
     get length() {
@@ -98401,7 +98404,7 @@
         if (request[dartx.readyState] == html$.HttpRequest.DONE) {
           onComplete(request);
         }
-      }, ProgressEventTovoid$()));
+      }, ProgressEventToNull()));
       request[dartx.send]();
       return request;
     }
@@ -99147,7 +99150,7 @@
         this.writeSlot(slot, copy);
         e[dartx.forEach](dart.fn((key, value) => {
           this.putIntoMap(copy, key, this.walk(value));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return copy;
       }
       if (core.List.is(e)) {
@@ -99356,7 +99359,7 @@
     }
     dict[dartx.forEach](dart.fn((key, value) => {
       object[key] = value;
-    }, StringAnddynamicTovoid()));
+    }, StringAnddynamicToNull()));
     return object;
   };
   dart.fn(html_common.convertDartToNative_Dictionary, Map__Todynamic());
@@ -99381,7 +99384,7 @@
     let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
     return new html_common._AcceptStructuredCloneDart2Js().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
   };
-  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic$0());
+  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic());
   html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
     new() {
       super.new();
@@ -107352,13 +107355,13 @@
       let completer = CompleterOfAudioBuffer().new();
       this[_decodeAudioData](audioData, dart.fn(value => {
         completer.complete(value);
-      }, AudioBufferTovoid()), dart.fn(error => {
+      }, AudioBufferToNull()), dart.fn(error => {
         if (error == null) {
           completer.completeError('');
         } else {
           completer.completeError(error);
         }
-      }, AudioBufferTovoid()));
+      }, AudioBufferToNull()));
       return completer.future;
     }
   };
diff --git a/pkg/dev_compiler/lib/js/common/dart_sdk.js b/pkg/dev_compiler/lib/js/common/dart_sdk.js
index 7d32f3c..a35267b 100644
--- a/pkg/dev_compiler/lib/js/common/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/common/dart_sdk.js
@@ -549,6 +549,7 @@
   let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))();
   let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
   let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))();
+  let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
   let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html$.ProgressEvent])))();
   let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
   let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))();
@@ -654,13 +655,12 @@
   let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))();
   let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))();
   let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
-  let intAnddynamicTovoid = () => (intAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, dart.dynamic])))();
+  let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
   let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
   let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
   let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
-  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
-  let StringAndObjectTovoid = () => (StringAndObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Object])))();
-  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
+  let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
+  let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
   let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
   let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
   let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -674,19 +674,22 @@
   let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
   let StringAndStringToString$ = () => (StringAndStringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
   let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
+  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
   let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
   let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
   let StringTovoid$ = () => (StringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
   let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
   let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
   let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
+  let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
+  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
   let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
-  let ListToFutureOr = () => (ListToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [core.List])))();
-  let StringTodynamic = () => (StringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String])))();
-  let dynamicToFutureOr$ = () => (dynamicToFutureOr$ = dart.constFn(dart.definiteFunctionType(async.FutureOr, [dart.dynamic])))();
-  let TimerTovoid$ = () => (TimerTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [async.Timer])))();
+  let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
+  let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
+  let dynamicToNull$ = () => (dynamicToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
+  let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
   let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
-  let boolTodynamic = () => (boolTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.bool])))();
+  let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
   let dynamicAndStackTraceTovoid = () => (dynamicAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])))();
   let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
   let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
@@ -729,7 +732,7 @@
   let dynamicToSymbol = () => (dynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic])))();
   let dynamicToMapOfSymbol$dynamic = () => (dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [dart.dynamic])))();
   let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
-  let SymbolAnddynamicTovoid = () => (SymbolAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Symbol, dart.dynamic])))();
+  let SymbolAnddynamicToNull = () => (SymbolAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.Symbol, dart.dynamic])))();
   let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
   let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
   let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -742,11 +745,12 @@
   let VoidToObject$ = () => (VoidToObject$ = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
   let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
   let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
-  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [dart.dynamic])))();
+  let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
   let dynamicTo_Future = () => (dynamicTo_Future = dart.constFn(dart.definiteFunctionType(async._Future, [dart.dynamic])))();
   let _AsyncCallbackTovoid = () => (_AsyncCallbackTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._AsyncCallback])))();
+  let FnToNull = () => (FnToNull = dart.constFn(dart.definiteFunctionType(core.Null, [VoidTovoid()])))();
   let _NotificationHandlerToFuture = () => (_NotificationHandlerToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [async._NotificationHandler])))();
-  let dynamicAndStackTraceTodynamic = () => (dynamicAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.StackTrace])))();
+  let dynamicAndStackTraceToNull = () => (dynamicAndStackTraceToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, core.StackTrace])))();
   let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace])))();
   let FnAndFnAndFnTodynamic = () => (FnAndFnAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [VoidTodynamic(), dynamicTodynamic(), ZoneBinaryCallbackOfdynamic$dynamic$StackTrace()])))();
   let StreamSubscriptionAnd_FutureAnddynamic__Tovoid = () => (StreamSubscriptionAnd_FutureAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace])))();
@@ -787,10 +791,11 @@
   let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
   let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
   let StringAndStringTovoid$ = () => (StringAndStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
-  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
+  let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
   let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
   let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
   let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
+  let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
   let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
   let String__Tovoid$ = () => (String__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
   let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
@@ -815,10 +820,10 @@
   let dynamicToFutureOrOfString = () => (dynamicToFutureOrOfString = dart.constFn(dart.definiteFunctionType(FutureOrOfString(), [dart.dynamic])))();
   let dynamicToFutureOrOfbool = () => (dynamicToFutureOrOfbool = dart.constFn(dart.definiteFunctionType(FutureOrOfbool(), [dart.dynamic])))();
   let dynamicToFutureOrOfint = () => (dynamicToFutureOrOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfint(), [dart.dynamic])))();
-  let ListOfintToFutureOr = () => (ListOfintToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [ListOfint()])))();
+  let ListOfintToNull = () => (ListOfintToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfint()])))();
   let RandomAccessFileTovoid = () => (RandomAccessFileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.RandomAccessFile])))();
   let RandomAccessFileToFutureOr = () => (RandomAccessFileToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RandomAccessFile])))();
-  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+  let RandomAccessFileToNull = () => (RandomAccessFileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RandomAccessFile])))();
   let RandomAccessFileToFutureOfRandomAccessFile = () => (RandomAccessFileToFutureOfRandomAccessFile = dart.constFn(dart.definiteFunctionType(FutureOfRandomAccessFile(), [io.RandomAccessFile])))();
   let dynamicTo_File = () => (dynamicTo_File = dart.constFn(dart.definiteFunctionType(io._File, [dart.dynamic])))();
   let FileSystemEntityTo_File = () => (FileSystemEntityTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.FileSystemEntity])))();
@@ -835,7 +840,8 @@
   let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
   let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
   let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
-  let StringAndListOfStringTovoid$ = () => (StringAndListOfStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, ListOfString()])))();
+  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+  let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
   let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
   let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
   let _HttpClientRequestToFutureOfHttpClientResponse = () => (_HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io._HttpClientRequest])))();
@@ -846,15 +852,14 @@
   let _CredentialsTovoid = () => (_CredentialsTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._Credentials])))();
   let _AuthenticationSchemeAndStringToFuture = () => (_AuthenticationSchemeAndStringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [io._AuthenticationScheme, core.String])))();
   let dynamicToFutureOrOfHttpClientResponse = () => (dynamicToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [dart.dynamic])))();
-  let CookieTovoid = () => (CookieTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.Cookie])))();
+  let CookieToNull = () => (CookieToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Cookie])))();
   let ListToFutureOrOfHttpClientResponse = () => (ListToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [core.List])))();
   let HttpClientResponseTovoid = () => (HttpClientResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpClientResponse])))();
   let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
   let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
   let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
-  let dynamic__Todynamic$ = () => (dynamic__Todynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [core.StackTrace])))();
-  let _HttpIncomingTovoid$ = () => (_HttpIncomingTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpIncoming])))();
-  let _HttpIncomingToFutureOr = () => (_HttpIncomingToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._HttpIncoming])))();
+  let dynamic__ToNull$ = () => (dynamic__ToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
+  let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
   let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
   let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
   let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
@@ -871,8 +876,8 @@
   let _SiteCredentialsAnd_CredentialsTo_SiteCredentials = () => (_SiteCredentialsAnd_CredentialsTo_SiteCredentials = dart.constFn(dart.definiteFunctionType(io._SiteCredentials, [io._SiteCredentials, io._Credentials])))();
   let ServerSocketTo_HttpServer = () => (ServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.ServerSocket])))();
   let SecureServerSocketTo_HttpServer = () => (SecureServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.SecureServerSocket])))();
-  let SocketTodynamic = () => (SocketTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [io.Socket])))();
-  let _HttpConnectionTovoid = () => (_HttpConnectionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpConnection])))();
+  let SocketToNull = () => (SocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Socket])))();
+  let _HttpConnectionToNull = () => (_HttpConnectionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpConnection])))();
   let _HttpConnectionToMap = () => (_HttpConnectionToMap = dart.constFn(dart.definiteFunctionType(core.Map, [io._HttpConnection])))();
   let _FileResourceInfoToMapOfString$String = () => (_FileResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._FileResourceInfo])))();
   let _ProcessResourceInfoToMapOfString$String = () => (_ProcessResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._ProcessResourceInfo])))();
@@ -886,22 +891,22 @@
   let RawSecureSocketToSecureSocket = () => (RawSecureSocketToSecureSocket = dart.constFn(dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])))();
   let dynamicToFutureOfRawSecureSocket = () => (dynamicToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [dart.dynamic])))();
   let RawServerSocketToRawSecureServerSocket = () => (RawServerSocketToRawSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket])))();
-  let RawSecureSocketToFutureOr = () => (RawSecureSocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RawSecureSocket])))();
+  let RawSecureSocketToNull = () => (RawSecureSocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RawSecureSocket])))();
   let RawSocketToFutureOfRawSecureSocket = () => (RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [io.RawSocket])))();
-  let _FilterStatusToFutureOr = () => (_FilterStatusToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._FilterStatus])))();
+  let _FilterStatusToNull = () => (_FilterStatusToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._FilterStatus])))();
   let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
   let dynamicTo_FilterStatus = () => (dynamicTo_FilterStatus = dart.constFn(dart.definiteFunctionType(io._FilterStatus, [dart.dynamic])))();
   let ListOfintAndStringTovoid = () => (ListOfintAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint(), core.String])))();
   let dynamicToStdioType = () => (dynamicToStdioType = dart.constFn(dart.definiteFunctionType(io.StdioType, [dart.dynamic])))();
   let EventSinkTo_WebSocketProtocolTransformer = () => (EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketProtocolTransformer, [async.EventSink])))();
   let WebSocketTovoid = () => (WebSocketTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.WebSocket])))();
-  let HttpRequestTovoid$ = () => (HttpRequestTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpRequest])))();
+  let HttpRequestToNull = () => (HttpRequestToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.HttpRequest])))();
   let SocketTo_WebSocketImpl = () => (SocketTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [io.Socket])))();
   let StringToFuture = () => (StringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [core.String])))();
   let EventSinkOfListOfintTo_WebSocketOutgoingTransformer = () => (EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [EventSinkOfListOfint()])))();
   let dynamicTo_WebSocketImpl = () => (dynamicTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic])))();
-  let SocketToFutureOr = () => (SocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.Socket])))();
   let HttpClientResponseToFutureOfWebSocket = () => (HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.definiteFunctionType(FutureOfWebSocket(), [io.HttpClientResponse])))();
+  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
   let HttpClientRequestToFutureOfHttpClientResponse = () => (HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io.HttpClientRequest])))();
   let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
   let ListToIsolate = () => (ListToIsolate = dart.constFn(dart.definiteFunctionType(isolate.Isolate, [core.List])))();
@@ -920,36 +925,35 @@
   let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
   let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
   let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
-  let EventTovoid$ = () => (EventTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Event])))();
+  let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Event])))();
   let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
   let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
-  let EventToFutureOr = () => (EventToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [html$.Event])))();
   let NodeTobool$ = () => (NodeTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Node])))();
   let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
   let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
   let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
-  let FileSystemTovoid = () => (FileSystemTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileSystem])))();
-  let FileErrorTovoid = () => (FileErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileError])))();
-  let EntryTovoid = () => (EntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Entry])))();
+  let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileSystem])))();
+  let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileError])))();
+  let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Entry])))();
   let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html$.CssStyleDeclaration, [dart.dynamic])))();
   let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.CssStyleDeclaration])))();
-  let MetadataTovoid = () => (MetadataTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Metadata])))();
-  let ListOfEntryTovoid = () => (ListOfEntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfEntry()])))();
+  let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Metadata])))();
+  let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
   let ElementTobool$ = () => (ElementTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Element])))();
-  let FileWriterTovoid = () => (FileWriterTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileWriter])))();
-  let FileTovoid = () => (FileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.File])))();
-  let GeopositionTovoid = () => (GeopositionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Geoposition])))();
-  let PositionErrorTovoid = () => (PositionErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.PositionError])))();
+  let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileWriter])))();
+  let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.File])))();
+  let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Geoposition])))();
+  let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.PositionError])))();
   let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html$.HttpRequest])))();
-  let ProgressEventTovoid$ = () => (ProgressEventTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.ProgressEvent])))();
-  let ListOfSourceInfoTovoid = () => (ListOfSourceInfoTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfSourceInfo()])))();
-  let MediaStreamTovoid = () => (MediaStreamTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.MediaStream])))();
-  let NavigatorUserMediaErrorTovoid = () => (NavigatorUserMediaErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.NavigatorUserMediaError])))();
-  let RtcSessionDescriptionTovoid = () => (RtcSessionDescriptionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription])))();
-  let RtcStatsResponseTovoid = () => (RtcStatsResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.RtcStatsResponse])))();
+  let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.ProgressEvent])))();
+  let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
+  let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.MediaStream])))();
+  let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.NavigatorUserMediaError])))();
+  let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcSessionDescription])))();
+  let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcStatsResponse])))();
   let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.OptionElement])))();
-  let numTovoid = () => (numTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.num])))();
-  let BeforeUnloadEventTovoid = () => (BeforeUnloadEventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.BeforeUnloadEvent])))();
+  let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
+  let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.BeforeUnloadEvent])))();
   let ElementTovoid$ = () => (ElementTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Element])))();
   let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html$.CssClassSet, [html$.Element])))();
   let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
@@ -976,9 +980,9 @@
   let Map__Todynamic = () => (Map__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Map], [dynamicTovoid()])))();
   let ListOfStringToList = () => (ListOfStringToList = dart.constFn(dart.definiteFunctionType(core.List, [ListOfString()])))();
   let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
-  let dynamic__Todynamic$0 = () => (dynamic__Todynamic$0 = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
+  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
   let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [html$.Node])))();
-  let AudioBufferTovoid = () => (AudioBufferTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [web_audio.AudioBuffer])))();
+  let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
   dart.mixin = function(base, ...mixins) {
     class Mixin extends base {}
     for (let m of mixins) {
@@ -1705,10 +1709,7 @@
         return null;
       }
     }
-    if (ret2 === dart.void) return true;
-    if (ret1 === dart.void) {
-      return ret2 === dart.dynamic || ret2 === async.FutureOr;
-    }
+    if (ret1 === dart.void) return dart._isTop(ret2);
     if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
     return true;
   };
@@ -1729,13 +1730,13 @@
     };
   };
   dart._isBottom = function(type) {
-    return type == dart.bottom;
+    return type == dart.bottom || type == core.Null;
   };
   dart._isTop = function(type) {
     if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
       return dart._isTop(dart.getGenericArgs(type)[0]);
     }
-    return type == core.Object || type == dart.dynamic;
+    return type == core.Object || type == dart.dynamic || type == dart.void;
   };
   dart._isSubtype = function(t1, t2, isCovariant) {
     if (t1 === t2) return true;
@@ -2182,6 +2183,9 @@
     return false;
   };
   dart.is = function(obj, type) {
+    if (obj == null) {
+      return type == core.Null || dart._isTop(type);
+    }
     let result = dart.strongInstanceOf(obj, type);
     if (result !== null) return result;
     let actual = dart.getReifiedType(obj);
@@ -3292,7 +3296,7 @@
       if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
         this.asMap()[dartx.forEach](dart.fn((i, element) => {
           children[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
-        }, intAnddynamicTovoid()));
+        }, intAnddynamicToNull()));
       } else {
         for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
           let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
@@ -3693,14 +3697,14 @@
         } else {
           nonGenericProperties._set(core.String._check(name), value);
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
       nonGenericProperties.forEach(dart.fn((name, value) => {
         if (core.Type.is(value)) {
           children.add(_debugger.NameValuePair._check(this.classChild(name, value)));
         } else {
           children.add(new _debugger.NameValuePair({name: name, value: value}));
         }
-      }, StringAndObjectTovoid()));
+      }, StringAndObjectToNull()));
       return children.toList();
     }
     recordGenericParameters(name, genericTypeConstructor) {
@@ -3769,7 +3773,7 @@
       map[dartx.forEach](dart.fn((key, value) => {
         let entryWrapper = new _debugger.MapEntry({key: key, value: value});
         entries.add(new _debugger.NameValuePair({name: dart.toString(entries.length), value: entryWrapper}));
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       _debugger.addMetadataChildren(object, entries);
       return entries.toList();
     }
@@ -9205,11 +9209,11 @@
     if (_isolate_helper._MainFunctionArgs.is(entry)) {
       rootContext.eval(dart.fn(() => {
         dart.dcall(entry, args);
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     } else if (_isolate_helper._MainFunctionArgsMessage.is(entry)) {
       rootContext.eval(dart.fn(() => {
         dart.dcall(entry, args, null);
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     } else {
       rootContext.eval(core.Function._check(entry));
     }
@@ -9651,7 +9655,7 @@
           if (!dart.test(this.runIteration())) return;
           async.Timer.run(next);
         }).bind(this);
-        dart.fn(next, VoidTodynamic$());
+        dart.fn(next, VoidToNull());
         next();
       } else {
         while (dart.test(this.runIteration())) {
@@ -9804,7 +9808,7 @@
           let context = new _isolate_helper._IsolateContext();
           _isolate_helper._globalState.topEventLoop.enqueue(context, dart.fn(() => {
             _isolate_helper.IsolateNatives._startIsolate(entryPoint, ListOfString()._check(args), message, core.bool._check(isSpawnUri), core.bool._check(startPaused), isolate.SendPort._check(replyTo));
-          }, VoidTodynamic$()), 'worker-start');
+          }, VoidToNull()), 'worker-start');
           _isolate_helper._globalState.currentContext = context;
           _isolate_helper._globalState.topEventLoop.run();
           break;
@@ -9854,9 +9858,9 @@
       let replyPort = dart.dindex(msg, 'replyPort');
       _isolate_helper.IsolateNatives.spawn(core.String._check(dart.dindex(msg, 'functionName')), core.String._check(dart.dindex(msg, 'uri')), ListOfString()._check(dart.dindex(msg, 'args')), dart.dindex(msg, 'msg'), false, core.bool._check(dart.dindex(msg, 'isSpawnUri')), core.bool._check(dart.dindex(msg, 'startPaused'))).then(dart.dynamic)(dart.fn(msg => {
         dart.dsend(replyPort, 'send', msg);
-      }, ListToFutureOr()), {onError: dart.fn(errorMessage => {
+      }, ListToNull()), {onError: dart.fn(errorMessage => {
           dart.dsend(replyPort, 'send', JSArrayOfString().of([_isolate_helper._SPAWN_FAILED_SIGNAL, errorMessage]));
-        }, StringTodynamic())});
+        }, StringToNull())});
     }
     static _log(msg) {
       if (dart.test(_isolate_helper._globalState.isWorker)) {
@@ -9913,7 +9917,7 @@
           dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
           completer.completeError(dart.dindex(msg, 1));
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
       let signalReply = port.sendPort;
       if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
         _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid$()));
@@ -9939,7 +9943,7 @@
       _isolate_helper._globalState.topEventLoop.enqueue(new _isolate_helper._IsolateContext(), dart.fn(() => {
         let func = _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName);
         _isolate_helper.IsolateNatives._startIsolate(core.Function._check(func), args, message, isSpawnUri, startPaused, replyPort);
-      }, VoidTodynamic$()), 'nonworker start');
+      }, VoidToNull()), 'nonworker start');
     }
     static get currentIsolate() {
       let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
@@ -10084,7 +10088,7 @@
         if (!dart.test(this[_receivePort][_isClosed])) {
           this[_receivePort][_add](msg);
         }
-      }, VoidTodynamic$()), dart.str`receive ${message}`);
+      }, VoidToNull()), dart.str`receive ${message}`);
     }
     ['=='](other) {
       return _isolate_helper._NativeJsSendPort.is(other) && dart.equals(this[_receivePort], other[_receivePort]);
@@ -10218,13 +10222,11 @@
     let _EmptyStreamOfT = () => (_EmptyStreamOfT = dart.constFn(async._EmptyStream$(T)))();
     let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
     let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
     let _GeneratedStreamImplOfT = () => (_GeneratedStreamImplOfT = dart.constFn(async._GeneratedStreamImpl$(T)))();
     let _IterablePendingEventsOfT = () => (_IterablePendingEventsOfT = dart.constFn(async._IterablePendingEvents$(T)))();
     let _BoundSinkStreamOfdynamic$T = () => (_BoundSinkStreamOfdynamic$T = dart.constFn(async._BoundSinkStream$(dart.dynamic, T)))();
     let _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
     let _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
     let _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
     let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
     let TAndTToT = () => (TAndTToT = dart.constFn(dart.functionType(T, [T, T])))();
@@ -10239,12 +10241,14 @@
     let _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
     let _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
     let _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
+    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
     let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
     let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
     let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
     let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
     let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
     let TTobool = () => (TTobool = dart.constFn(dart.functionType(core.bool, [T])))();
+    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
     let TAndTTobool = () => (TAndTTobool = dart.constFn(dart.functionType(core.bool, [T, T])))();
     let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
     let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
@@ -10252,11 +10256,10 @@
     let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
     let intToT = () => (intToT = dart.constFn(dart.functionType(T, [core.int])))();
     let EventSinkOfTToEventSink = () => (EventSinkOfTToEventSink = dart.constFn(dart.functionType(async.EventSink, [EventSinkOfT()])))();
-    let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
-    let TTodynamic$ = () => (TTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [T])))();
+    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
     let VoidTo_IterablePendingEventsOfT = () => (VoidTo_IterablePendingEventsOfT = dart.constFn(dart.definiteFunctionType(_IterablePendingEventsOfT(), [])))();
-    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
     let VoidToT = () => (VoidToT = dart.constFn(dart.definiteFunctionType(T, [])))();
+    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
     class Stream extends core.Object {
       new() {
       }
@@ -10270,10 +10273,10 @@
         future.then(dart.dynamic)(dart.fn(value => {
           controller[_add$](value);
           controller[_closeUnchecked]();
-        }, TToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+        }, TToNull()), {onError: dart.fn((error, stackTrace) => {
             controller[_addError](error, core.StackTrace._check(stackTrace));
             controller[_closeUnchecked]();
-          }, dynamicAnddynamicTodynamic$())});
+          }, dynamicAnddynamicToNull())});
         return controller.stream;
       }
       static fromFutures(futures) {
@@ -10284,13 +10287,13 @@
             controller[_add$](value);
             if (--count == 0) controller[_closeUnchecked]();
           }
-        }, TTodynamic$());
+        }, TToNull());
         let onError = dart.fn((error, stack) => {
           if (!dart.test(controller.isClosed)) {
             controller[_addError](error, core.StackTrace._check(stack));
             if (--count == 0) controller[_closeUnchecked]();
           }
-        }, dynamicAnddynamicTodynamic$());
+        }, dynamicAnddynamicToNull());
         for (let future of futures) {
           count++;
           future.then(dart.dynamic)(onValue, {onError: onError});
@@ -10327,17 +10330,17 @@
           dart.assert(timer == null);
           timer = async.Timer.periodic(period, dart.fn(timer => {
             sendEvent();
-          }, TimerTovoid$()));
+          }, TimerToNull()));
         }
         dart.fn(startPeriodicTimer, VoidTovoid$());
         controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
             watch.start();
             startPeriodicTimer();
-          }, VoidTovoid$()), onPause: dart.fn(() => {
+          }, VoidToNull()), onPause: dart.fn(() => {
             timer.cancel();
             timer = null;
             watch.stop();
-          }, VoidTovoid$()), onResume: dart.fn(() => {
+          }, VoidToNull()), onResume: dart.fn(() => {
             dart.assert(timer == null);
             let elapsed = watch.elapsed;
             watch.start();
@@ -10345,11 +10348,11 @@
               timer = null;
               startPeriodicTimer();
               sendEvent();
-            }, VoidTovoid$()));
-          }, VoidTovoid$()), onCancel: dart.fn(() => {
+            }, VoidToNull()));
+          }, VoidToNull()), onCancel: dart.fn(() => {
             if (timer != null) timer.cancel();
             timer = null;
-          }, VoidTodynamic$())});
+          }, VoidToNull())});
         return controller.stream;
       }
       static eventTransformed(source, mapSink) {
@@ -10396,21 +10399,21 @@
               } else {
                 controller.add(E.as(newValue));
               }
-            }, TTovoid$()), {onError: addError, onDone: dart.bind(controller, 'close')});
+            }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
           }).bind(this);
           dart.fn(onListen, VoidTovoid$());
           if (dart.test(this.isBroadcast)) {
             controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTovoid$()), sync: true});
+              }, VoidToNull()), sync: true});
           } else {
             controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
                 subscription.pause();
-              }, VoidTovoid$()), onResume: dart.fn(() => {
+              }, VoidToNull()), onResume: dart.fn(() => {
                 subscription.resume();
-              }, VoidTovoid$()), onCancel: dart.fn(() => {
+              }, VoidToNull()), onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTodynamic$()), sync: true});
+              }, VoidToNull()), sync: true});
           }
           return controller.stream;
         };
@@ -10436,21 +10439,21 @@
                 subscription.pause();
                 controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
               }
-            }, TTovoid$()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
+            }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
           }).bind(this);
           dart.fn(onListen, VoidTovoid$());
           if (dart.test(this.isBroadcast)) {
             controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTovoid$()), sync: true});
+              }, VoidToNull()), sync: true});
           } else {
             controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
                 subscription.pause();
-              }, VoidTovoid$()), onResume: dart.fn(() => {
+              }, VoidToNull()), onResume: dart.fn(() => {
                 subscription.resume();
-              }, VoidTovoid$()), onCancel: dart.fn(() => {
+              }, VoidToNull()), onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTodynamic$()), sync: true});
+              }, VoidToNull()), sync: true});
           }
           return controller.stream;
         };
@@ -10484,12 +10487,12 @@
           if (seenFirst) {
             async._runUserCode(dart.fn(() => combine(value, element), VoidToT()), dart.fn(newValue => {
               value = newValue;
-            }, TTodynamic$()), async._cancelAndErrorClosure(subscription, result));
+            }, TToNull()), async._cancelAndErrorClosure(subscription, result));
           } else {
             value = element;
             seenFirst = true;
           }
-        }, TTovoid$()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
             if (!seenFirst) {
               try {
                 dart.throw(_internal.IterableElementError.noElement());
@@ -10501,7 +10504,7 @@
             } else {
               result[_complete](value);
             }
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       }
       fold(S) {
@@ -10512,12 +10515,12 @@
           subscription = this.listen(dart.fn(element => {
             async._runUserCode(dart.fn(() => combine(value, element), dart.definiteFunctionType(S, [])), dart.fn(newValue => {
               value = newValue;
-            }, dart.definiteFunctionType(dart.dynamic, [S])), async._cancelAndErrorClosure(subscription, result));
-          }, TTovoid$()), {onError: dart.fn((e, st) => {
+            }, dart.definiteFunctionType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
+          }, TToNull()), {onError: dart.fn((e, st) => {
               result[_completeError](e, core.StackTrace._check(st));
-            }, dynamicAnddynamicTodynamic$()), onDone: dart.fn(() => {
+            }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
               result[_complete](value);
-            }, VoidTovoid$()), cancelOnError: true});
+            }, VoidToNull()), cancelOnError: true});
           return result;
         };
       }
@@ -10539,11 +10542,11 @@
             async._cancelAndErrorWithReplacement(subscription, result, e, s);
           }
 
-        }, TTovoid$()), {onError: dart.fn(e => {
+        }, TToNull()), {onError: dart.fn(e => {
             result[_completeError](e);
-          }, dynamicTodynamic$()), onDone: dart.fn(() => {
+          }, dynamicToNull$()), onDone: dart.fn(() => {
             result[_complete](buffer.toString());
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       }
       contains(needle) {
@@ -10554,10 +10557,10 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, true);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](false);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       forEach(action) {
@@ -10565,10 +10568,10 @@
         let subscription = null;
         subscription = this.listen(dart.fn(element => {
           async._runUserCode(dart.fn(() => action(element), VoidTovoid$()), dart.fn(_ => {
-          }, dynamicTodynamic$()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, dynamicToNull$()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](null);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       every(test) {
@@ -10579,10 +10582,10 @@
             if (!dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, false);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](true);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       any(test) {
@@ -10593,10 +10596,10 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, true);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](false);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get length() {
@@ -10604,9 +10607,9 @@
         let count = 0;
         this.listen(dart.fn(_ => {
           count++;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](count);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get isEmpty() {
@@ -10614,9 +10617,9 @@
         let subscription = null;
         subscription = this.listen(dart.fn(_ => {
           async._cancelAndValue(subscription, future, false);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](true);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       toList() {
@@ -10624,9 +10627,9 @@
         let future = new (_FutureOfListOfT())();
         this.listen(dart.fn(data => {
           result[dartx.add](data);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](result);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       toSet() {
@@ -10634,9 +10637,9 @@
         let future = new (_FutureOfSetOfT())();
         this.listen(dart.fn(data => {
           result.add(data);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](result);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       drain(E) {
@@ -10666,7 +10669,7 @@
         let subscription = null;
         subscription = this.listen(dart.fn(value => {
           async._cancelAndValue(subscription, future, value);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             try {
               dart.throw(_internal.IterableElementError.noElement());
             } catch (e) {
@@ -10674,7 +10677,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get last() {
@@ -10684,7 +10687,7 @@
         this.listen(dart.fn(value => {
           foundResult = true;
           result = value;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10696,7 +10699,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get single() {
@@ -10717,7 +10720,7 @@
           }
           foundResult = true;
           result = value;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10729,7 +10732,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       firstWhere(test, opts) {
@@ -10741,8 +10744,8 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, value);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (defaultValue != null) {
               async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
               return;
@@ -10754,7 +10757,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       lastWhere(test, opts) {
@@ -10769,8 +10772,8 @@
               foundResult = true;
               result = value;
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10786,7 +10789,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       singleWhere(test) {
@@ -10810,8 +10813,8 @@
               foundResult = true;
               result = value;
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10823,7 +10826,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       elementAt(index) {
@@ -10837,9 +10840,9 @@
             return;
           }
           elementIndex = elementIndex + 1;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       timeout(timeLimit, opts) {
@@ -10873,7 +10876,7 @@
           if (onTimeout == null) {
             timeout = dart.fn(() => {
               controller.addError(new async.TimeoutException("No stream event", timeLimit), null);
-            }, VoidTovoid$());
+            }, VoidToNull());
           } else {
             let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfT())(onTimeout);
             let wrapper = new async._ControllerEventSinkWrapper(null);
@@ -10881,7 +10884,7 @@
               wrapper[_sink] = controller;
               zone.runUnaryGuarded(dart.dynamic, EventSinkOfT())(registeredOnTimeout, wrapper);
               wrapper[_sink] = null;
-            }, VoidTovoid$());
+            }, VoidToNull());
           }
           subscription = this.listen(onData, {onError: onError, onDone: onDone});
           timer = zone.createTimer(timeLimit, timeout);
@@ -10897,10 +10900,10 @@
         controller = dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_SyncStreamControllerOfT())(onListen, dart.fn(() => {
           timer.cancel();
           subscription.pause();
-        }, VoidTovoid$()), dart.fn(() => {
+        }, VoidToNull()), dart.fn(() => {
           subscription.resume();
           timer = zone.createTimer(timeLimit, timeout);
-        }, VoidTovoid$()), onCancel);
+        }, VoidToNull()), onCancel);
         return controller.stream;
       }
     }
@@ -11047,7 +11050,7 @@
         _isolate_helper.enterJsAsync();
         this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
           callback(this);
-        }, VoidTodynamic$()), milliseconds);
+        }, VoidToNull()), milliseconds);
       } else {
         dart.throw(new core.UnsupportedError("Periodic timer."));
       }
@@ -12478,14 +12481,14 @@
     let LinkedHashMapKeyIterableOfK = () => (LinkedHashMapKeyIterableOfK = dart.constFn(_js_helper.LinkedHashMapKeyIterable$(K)))();
     let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
     let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
     let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
     let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class JsLinkedHashMap extends core.Object {
       new() {
         this[_length$0] = 0;
@@ -12540,7 +12543,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
@@ -13810,7 +13813,7 @@
     let obj = {};
     map[dartx.forEach](dart.fn((key, value) => {
       obj[_js_mirrors.getName(key)] = value;
-    }, SymbolAnddynamicTovoid()));
+    }, SymbolAnddynamicToNull()));
     return obj;
   };
   dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
@@ -14025,7 +14028,7 @@
         constructors[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         if (dart.test(constructors[dartx.isEmpty])) {
           let name = 'new';
           let ft = _js_mirrors._defaultConstructorType(_js_mirrors._unwrap(this[_cls]));
@@ -14040,23 +14043,23 @@
             t = dart.dindex(t, 0);
           }
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let methods = _js_mirrors._getMethods(unwrapped);
         methods[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let getters = _js_mirrors._getGetters(unwrapped);
         getters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let setters = _js_mirrors._getSetters(unwrapped);
         setters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = dart.notNull(_js_mirrors.getName(symbol)) + '=';
           symbol = new _internal.Symbol.es6(name, _js_mirrors._getESSymbol(symbol));
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticFields = _js_mirrors._getStaticFields(unwrapped);
         staticFields[dartx.forEach](dart.fn((symbol, t) => {
           let name = _js_mirrors.getName(symbol);
@@ -14066,22 +14069,22 @@
             t = dart.dindex(t, 0);
           }
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let statics = _js_mirrors._getStatics(unwrapped);
         statics[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticGetters = _js_mirrors._getStaticGetters(unwrapped);
         staticGetters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticSetters = _js_mirrors._getStaticSetters(unwrapped);
         staticSetters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         this[_declarations] = MapOfSymbol$DeclarationMirror().unmodifiable(this[_declarations]);
       }
       return this[_declarations];
@@ -17931,11 +17934,11 @@
           let result = new (async._Future$(E))();
           this[_onDone] = dart.fn(() => {
             result[_complete](futureValue);
-          }, VoidTovoid$());
+          }, VoidToNull());
           this[_onError] = dart.fn((error, stackTrace) => {
             this.cancel();
             result[_completeError](error, core.StackTrace._check(stackTrace));
-          }, dynamicAnddynamicTodynamic$());
+          }, dynamicAnddynamicToNull());
           return result;
         };
       }
@@ -18611,7 +18614,7 @@
   async._SyncBroadcastStreamController$ = dart.generic(T => {
     let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
     let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
-    let _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
+    let _BufferingStreamSubscriptionOfTToNull = () => (_BufferingStreamSubscriptionOfTToNull = dart.constFn(dart.definiteFunctionType(core.Null, [_BufferingStreamSubscriptionOfT()])))();
     class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
       new(onListen, onCancel) {
         super.new(onListen, onCancel);
@@ -18640,19 +18643,19 @@
         }
         this[_forEachListener](dart.fn(subscription => {
           subscription[_add$](data);
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       }
       [_sendError](error, stackTrace) {
         if (dart.test(this[_isEmpty])) return;
         this[_forEachListener](dart.fn(subscription => {
           subscription[_addError](error, stackTrace);
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       }
       [_sendDone]() {
         if (!dart.test(this[_isEmpty])) {
           this[_forEachListener](dart.fn(subscription => {
             subscription[_close$]();
-          }, _BufferingStreamSubscriptionOfTTovoid()));
+          }, _BufferingStreamSubscriptionOfTToNull()));
         } else {
           dart.assert(this[_doneFuture] != null);
           dart.assert(this[_doneFuture][_mayComplete]);
@@ -18903,7 +18906,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static microtask(computation) {
@@ -18916,7 +18919,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static sync(computation) {
@@ -18956,7 +18959,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static wait(T) {
@@ -18976,7 +18979,7 @@
                   if (value != null) {
                     async.Future.sync(dart.fn(() => {
                       cleanUp(value);
-                    }, VoidTodynamic$()));
+                    }, VoidToNull()));
                   }
                 }
               }
@@ -19006,13 +19009,13 @@
                   if (cleanUp != null && value != null) {
                     async.Future.sync(dart.fn(() => {
                       cleanUp(value);
-                    }, VoidTodynamic$()));
+                    }, VoidToNull()));
                   }
                   if (remaining == 0 && !dart.test(eagerError)) {
                     result[_completeError](error, stackTrace);
                   }
                 }
-              }, dart.definiteFunctionType(async.FutureOr, [T])), {onError: handleError});
+              }, dart.definiteFunctionType(core.Null, [T])), {onError: handleError});
               remaining++;
             }
             if (remaining == 0) {
@@ -19037,10 +19040,10 @@
           let completer = async.Completer$(T).sync();
           let onValue = dart.fn(value => {
             if (!dart.test(completer.isCompleted)) completer.complete(value);
-          }, dart.definiteFunctionType(dart.dynamic, [T]));
+          }, dart.definiteFunctionType(core.Null, [T]));
           let onError = dart.fn((error, stack) => {
             if (!dart.test(completer.isCompleted)) completer.completeError(error, core.StackTrace._check(stack));
-          }, dynamicAnddynamicTodynamic$());
+          }, dynamicAnddynamicToNull());
           for (let future of futures) {
             future.then(dart.dynamic)(onValue, {onError: onError});
           }
@@ -19063,7 +19066,7 @@
           } else {
             doneSignal[_complete](null);
           }
-        }, boolTodynamic()), {runGuarded: true});
+        }, boolToNull()), {runGuarded: true});
         dart.dcall(nextIteration, true);
         return doneSignal;
       }
@@ -19416,7 +19419,7 @@
     let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
     let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
     let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
-    let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
+    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
     class _Future extends core.Object {
       new() {
         this[_zone] = async.Zone.current;
@@ -19554,7 +19557,7 @@
           dart.assert(this[_isComplete]);
           this[_zone].scheduleMicrotask(dart.fn(() => {
             async._Future._propagateToListeners(this, listener);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       [_prependListeners](listeners) {
@@ -19582,7 +19585,7 @@
           listeners = this[_reverseListeners](listeners);
           this[_zone].scheduleMicrotask(dart.fn(() => {
             async._Future._propagateToListeners(this, listeners);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       [_removeListeners]() {
@@ -19611,16 +19614,16 @@
             dart.assert(target[_isPendingComplete]);
             target[_clearPendingComplete]();
             target[_complete](value);
-          }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
               if (stackTrace === void 0) stackTrace = null;
               dart.assert(target[_isPendingComplete]);
               target[_completeError](error, core.StackTrace._check(stackTrace));
-            }, dynamic__Todynamic())});
+            }, dynamic__ToNull())});
         } catch (e) {
           let s = dart.stackTrace(e);
           async.scheduleMicrotask(dart.fn(() => {
             target[_completeError](e, s);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
 
       }
@@ -19678,7 +19681,7 @@
               this[_setPendingComplete]();
               this[_zone].scheduleMicrotask(dart.fn(() => {
                 async._Future._chainCoreFuture(coreFuture, this);
-              }, VoidTovoid$()));
+              }, VoidToNull()));
             } else {
               async._Future._chainCoreFuture(coreFuture, this);
             }
@@ -19691,14 +19694,14 @@
         this[_setPendingComplete]();
         this[_zone].scheduleMicrotask(dart.fn(() => {
           this[_completeWithValue](typedValue);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
       }
       [_asyncCompleteError](error, stackTrace) {
         dart.assert(!dart.test(this[_isComplete]));
         this[_setPendingComplete]();
         this[_zone].scheduleMicrotask(dart.fn(() => {
           this[_completeError](error, stackTrace);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
       }
       static _propagateToListeners(source, listeners) {
         while (true) {
@@ -19842,7 +19845,7 @@
         if (onTimeout == null) {
           timer = async.Timer.new(timeLimit, dart.fn(() => {
             result[_completeError](new async.TimeoutException("Future not completed", timeLimit));
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         } else {
           let zone = async.Zone.current;
           onTimeout = zone.registerCallback(dart.dynamic)(onTimeout);
@@ -19854,19 +19857,19 @@
               result[_completeError](e, s);
             }
 
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
         this.then(dart.dynamic)(dart.fn(v => {
           if (dart.test(timer.isActive)) {
             timer.cancel();
             result[_completeWithValue](v);
           }
-        }, TToFutureOr()), {onError: dart.fn((e, s) => {
+        }, TToNull()), {onError: dart.fn((e, s) => {
             if (dart.test(timer.isActive)) {
               timer.cancel();
               result[_completeError](e, core.StackTrace._check(s));
             }
-          }, dynamicAnddynamicTodynamic$())});
+          }, dynamicAnddynamicToNull())});
         return result;
       }
     }
@@ -20048,7 +20051,7 @@
           storedCallback = null;
           f();
         }
-        dart.fn(internalCallback, dynamicTodynamic$());
+        dart.fn(internalCallback, dynamicToNull$());
         ;
         let observer = new _isolate_helper.global.MutationObserver(internalCallback);
         observer.observe(div, {childList: true});
@@ -20057,7 +20060,7 @@
           _isolate_helper.enterJsAsync();
           storedCallback = callback;
           div.firstChild ? div.removeChild(span) : div.appendChild(span);
-        }, _AsyncCallbackTovoid());
+        }, FnToNull());
       } else if (_isolate_helper.global.setImmediate != null) {
         return async._AsyncRun._scheduleImmediateWithSetImmediate;
       }
@@ -20068,7 +20071,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }
-      dart.fn(internalCallback, VoidTodynamic$());
+      dart.fn(internalCallback, VoidToNull());
       ;
       _isolate_helper.enterJsAsync();
       _isolate_helper.global.scheduleImmediate(internalCallback);
@@ -20078,7 +20081,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }
-      dart.fn(internalCallback, VoidTodynamic$());
+      dart.fn(internalCallback, VoidToNull());
       ;
       _isolate_helper.enterJsAsync();
       _isolate_helper.global.setImmediate(internalCallback);
@@ -20492,7 +20495,7 @@
         subscription[_setPendingEvents](pendingEvents);
         subscription[_guardCallback](dart.fn(() => {
           async._runGuarded(this.onListen);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return subscription;
       }
       [_recordCancel](subscription) {
@@ -20752,7 +20755,7 @@
         return dart.fn((e, s) => {
           controller[_addError](e, s);
           controller[_close$]();
-        }, dynamicAndStackTraceTodynamic());
+        }, dynamicAndStackTraceToNull());
       }
       pause() {
         this.addSubscription.pause();
@@ -20768,7 +20771,7 @@
         }
         return cancel.whenComplete(dart.fn(() => {
           this.addStreamFuture[_asyncComplete](null);
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
       }
       complete() {
         this.addStreamFuture[_asyncComplete](null);
@@ -20885,7 +20888,7 @@
           this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
           if (oldState == async._PendingEvents._STATE_CANCELED) return;
           this.handleNext(dispatch);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         this[_state] = async._PendingEvents._STATE_SCHEDULED;
       }
       cancelSchedule() {
@@ -21192,7 +21195,7 @@
           let result = new (async._Future$(E))();
           this[_onDone] = dart.fn(() => {
             result[_completeWithValue](null);
-          }, VoidTovoid$());
+          }, VoidToNull());
           return result;
         };
       }
@@ -21611,7 +21614,7 @@
   async._cancelAndErrorClosure = function(subscription, future) {
     return dart.fn((error, stackTrace) => {
       async._cancelAndError(subscription, future, error, stackTrace);
-    }, dynamicAndStackTraceTovoid());
+    }, dynamicAndStackTraceToNull());
   };
   dart.fn(async._cancelAndErrorClosure, StreamSubscriptionAnd_FutureTo_ErrorCallback());
   async._cancelAndValue = function(subscription, future, value) {
@@ -23193,7 +23196,7 @@
         if (error == null) error = new core.NullThrownError();
         if (stackTrace == null) dart.throw(error);
         async._rethrow(error, stackTrace);
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     };
   };
   dart.lazyFn(async._rootHandleUncaughtError, () => ZoneAndZoneDelegateAndZone__ToR());
@@ -23629,13 +23632,13 @@
     let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
     let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let ListOfK = () => (ListOfK = dart.constFn(core.List$(K)))();
     let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
     let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class _HashMap extends core.Object {
       new() {
         this[_length$1] = 0;
@@ -23683,7 +23686,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         if (dart.test(collection._HashMap._isStringKey(key))) {
@@ -24176,11 +24179,11 @@
   collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
     let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let _Es6MapIterableOfV = () => (_Es6MapIterableOfV = dart.constFn(collection._Es6MapIterable$(V)))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
     class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
       new() {
@@ -24213,7 +24216,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         return this[_map$0].get(key);
@@ -25813,7 +25816,7 @@
         let result = HashMapOfK$V().new();
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -26365,7 +26368,7 @@
         let result = LinkedHashMapOfK$V().new();
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -27120,7 +27123,7 @@
           result.write(k);
           result.write(': ');
           result.write(v);
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         result.write('}');
       } finally {
         dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
@@ -28247,16 +28250,16 @@
     let ComparatorOfK = () => (ComparatorOfK = dart.constFn(core.Comparator$(K)))();
     let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let _SplayTreeNodeIteratorOfK = () => (_SplayTreeNodeIteratorOfK = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
     let _SplayTreeKeyIterableOfK = () => (_SplayTreeKeyIterableOfK = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
     let _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
     let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
     let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class SplayTreeMap extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {
       new(compare, isValidKey) {
         if (compare === void 0) compare = null;
@@ -28279,7 +28282,7 @@
         let result = new (SplayTreeMapOfK$V())(compare, isValidKey);
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -28365,7 +28368,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       get isEmpty() {
         return this[_root] == null;
@@ -29038,7 +29041,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
     }
     containsValue(value) {
       if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
@@ -31495,7 +31498,7 @@
         }
         keyValueList[dartx._set](i++, key);
         keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       if (!allStringKeys) return false;
       this.writeString('{');
       let separator = '"';
@@ -31596,7 +31599,7 @@
         }
         keyValueList[dartx._set](i++, key);
         keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       if (!allStringKeys) return false;
       this.writeString('{\n');
       this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
@@ -33842,7 +33845,7 @@
           sb.write(": ");
           sb.write(core.Error.safeToString(value));
           i++;
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
       }
       if (this[_existingArgumentNames] == null) {
         return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Arguments: [${sb}]`;
@@ -34168,7 +34171,7 @@
       let result = dart.map({}, core.String, dart.dynamic);
       namedArguments[dartx.forEach](dart.fn((symbol, value) => {
         result[dartx._set](core._symbolToString(symbol), value);
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       return result;
     }
   };
@@ -35163,7 +35166,7 @@
             dart.throw(new core.UnsupportedError(dart.str`Illegal path character ${segment}`));
           }
         }
-      }, StringTovoid$()));
+      }, StringToNull()));
     }
     static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) {
       if (firstSegment === void 0) firstSegment = 0;
@@ -35520,7 +35523,7 @@
             writeParameter(key, value);
           }
         }
-      }, StringAnddynamicTovoid()));
+      }, StringAnddynamicToNull()));
       return result.toString();
     }
     static _makeFragment(fragment, start, end) {
@@ -36508,7 +36511,7 @@
         if (indices != null) indices[dartx.add](buffer.length);
         buffer.write('=');
         buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, value, convert.UTF8, false));
-      }, StringAndStringTovoid$())));
+      }, StringAndStringToNull())));
     }
     static _validateMimeType(mimeType) {
       let slashIndex = -1;
@@ -39157,7 +39160,7 @@
           this.error(response);
           this.close();
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
     }
     onResume() {
       if (!dart.test(this.nextRunning)) {
@@ -39222,7 +39225,7 @@
         } else {
           this.controller.addError(new io.FileSystemException("Internal error"));
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
     }
     [_cleanup]() {
       this.controller.close();
@@ -39532,13 +39535,13 @@
         if (dart.test(this[_atEnd])) {
           this[_closeFile]();
         }
-      }, ListOfintToFutureOr())).catchError(dart.fn((e, s) => {
+      }, ListOfintToNull())).catchError(dart.fn((e, s) => {
         if (!dart.test(this[_unsubscribed])) {
           this[_controller$0].addError(e, core.StackTrace._check(s));
           this[_closeFile]();
           this[_unsubscribed] = true;
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
     }
     [_start$2]() {
       if (dart.notNull(this[_position$0]) < 0) {
@@ -39559,7 +39562,7 @@
               this[_controller$0].addError(e, core.StackTrace._check(s));
               this[_readInProgress] = false;
               this[_closeFile]();
-            }, dynamicAnddynamicTodynamic$())});
+            }, dynamicAnddynamicToNull())});
         } else {
           onReady(file);
         }
@@ -39645,10 +39648,10 @@
             error(e, stackTrace);
           }
 
-        }, ListOfintTovoid$()), {onDone: dart.fn(() => {
+        }, ListOfintToNull()), {onDone: dart.fn(() => {
             completer.complete(this[_file]);
-          }, VoidTovoid$()), onError: error, cancelOnError: true});
-      }, RandomAccessFileToFutureOr())).catchError(dart.bind(completer, 'completeError'));
+          }, VoidToNull()), onError: error, cancelOnError: true});
+      }, RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
       return completer.future;
     }
     close() {
@@ -39886,7 +39889,7 @@
             } else {
               completer.complete(builder.takeBytes());
             }
-          }, dynamicTodynamic$()), {onError: dart.bind(completer, 'completeError')});
+          }, dynamicToNull$()), {onError: dart.bind(completer, 'completeError')});
         }
         dart.fn(read, VoidTovoid$());
         read();
@@ -40437,7 +40440,7 @@
       data[dartx._set](0, this[_pointer]());
       return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
         this[_asyncDispatched] = false;
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     }
     [_checkAvailable]() {
       if (dart.test(this[_asyncDispatched])) {
@@ -42074,7 +42077,7 @@
           sb.write(values[dartx._get](i));
         }
         sb.write("\n");
-      }, StringAndListOfStringTovoid$()));
+      }, StringAndListOfStringToNull()));
       return sb.toString();
     }
     [_parseCookies]() {
@@ -42286,7 +42289,7 @@
           sb.write(name);
           sb.write("=");
           sb.write(value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       return sb.toString();
     }
@@ -42434,7 +42437,7 @@
             value = value[dartx.toLowerCase]();
           }
           this[_parameters][dartx._set](lowerCaseKey, value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       if (charset != null) {
         this[_ensureParameters]();
@@ -42699,7 +42702,7 @@
       this.hasSubscriber = true;
       return this[_stream$].handleError(dart.fn(error => {
         dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
-      }, dynamicTodynamic$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+      }, dynamicToNull$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
     }
     get dataDone() {
       return this[_dataCompleter].future;
@@ -42922,7 +42925,7 @@
       if (values != null) {
         values[dartx.forEach](dart.fn(value => {
           this[_cookies][dartx.add](io.Cookie.fromSetCookieValue(value));
-        }, StringTovoid$()));
+        }, StringToNull()));
       }
       return this[_cookies];
     }
@@ -43146,7 +43149,7 @@
         const targetAddStream = (function() {
           return this[_target$].addStream(stream).whenComplete(dart.fn(() => {
             this[_isBound] = false;
-          }, VoidTodynamic$()));
+          }, VoidToNull()));
         }).bind(this);
         dart.fn(targetAddStream, VoidToFuture());
         if (this[_controllerInstance] == null) return targetAddStream();
@@ -43164,7 +43167,7 @@
         this[_controllerInstance].close();
         return future.whenComplete(dart.fn(() => {
           this[_isBound] = false;
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
       }
       close() {
         if (dart.test(this[_isBound])) {
@@ -43215,7 +43218,7 @@
             } else {
               this[_closeTarget]();
             }
-          }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
               if (dart.test(this[_isBound])) {
                 this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
                 this[_controllerCompleter] = null;
@@ -43223,7 +43226,7 @@
               } else {
                 this[_completeDoneError](error, core.StackTrace._check(stackTrace));
               }
-            }, dynamicAnddynamicTodynamic$())});
+            }, dynamicAnddynamicToNull())});
         }
         return this[_controllerInstance];
       }
@@ -43468,7 +43471,7 @@
       }
       this.close();
       this.done.catchError(dart.fn(_ => {
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return future;
     }
     get connectionInfo() {
@@ -43483,7 +43486,7 @@
       if (this[_deadline] == null) return;
       this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
         this[_httpRequest][_httpConnection].destroy();
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
     [_writeHeader]() {
       let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
@@ -43548,7 +43551,7 @@
       if (this[_cookies] != null) {
         this[_cookies][dartx.forEach](dart.fn(cookie => {
           this.headers.add(io.HttpHeaders.SET_COOKIE, cookie);
-        }, CookieTovoid()));
+        }, CookieToNull()));
       }
       this.headers[_finalize]();
       offset = this.headers[_write](buffer, offset);
@@ -44052,7 +44055,7 @@
         }
         if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
           drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
-          }, dynamicTodynamic$()));
+          }, dynamicToNull$()));
         }
       } else {
         drainRequest = false;
@@ -44081,7 +44084,7 @@
       }
       if (dart.test(this.ignoreBody)) {
         stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
-        }, dynamicTodynamic$()));
+        }, dynamicToNull$()));
         let future = this.writeHeaders();
         if (future != null) {
           return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
@@ -44208,7 +44211,7 @@
           this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
           this[_pendingChunkedFooter] = 2;
           this[_addChunk$](data, ListOfintTovoid()._check(this[_gzipAdd]));
-        }, dynamicTodynamic$())));
+        }, dynamicToNull$())));
       }
     }
     [_ignoreError](error) {
@@ -44364,28 +44367,28 @@
         if (incoming.statusCode == 100) {
           incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
             this[_subscription$].resume();
-          }, dynamicToFutureOr$())).catchError(dart.fn((error, stackTrace) => {
+          }, dynamicToNull$())).catchError(dart.fn((error, stackTrace) => {
             if (stackTrace === void 0) stackTrace = null;
             this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
             this[_nextResponseCompleter] = null;
-          }, dynamic__Todynamic$()));
+          }, dynamic__ToNull$()));
         } else {
           this[_nextResponseCompleter].complete(incoming);
           this[_nextResponseCompleter] = null;
         }
-      }, _HttpIncomingTovoid$()), {onError: dart.fn((error, stackTrace) => {
+      }, _HttpIncomingToNull()), {onError: dart.fn((error, stackTrace) => {
           if (stackTrace === void 0) stackTrace = null;
           if (this[_nextResponseCompleter] != null) {
             this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
             this[_nextResponseCompleter] = null;
           }
-        }, dynamic__Todynamic$()), onDone: dart.fn(() => {
+        }, dynamic__ToNull$()), onDone: dart.fn(() => {
           if (this[_nextResponseCompleter] != null) {
             this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
             this[_nextResponseCompleter] = null;
           }
           this.close();
-        }, VoidTovoid$())});
+        }, VoidToNull())});
     }
     send(uri, port, method, proxy) {
       if (dart.test(this.closed)) {
@@ -44441,7 +44444,7 @@
             } else {
               this.destroy();
             }
-          }, dynamicToFutureOr$()));
+          }, dynamicToNull$()));
           if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
             let authInfo = incoming.headers._get("proxy-authentication-info");
             if (authInfo != null && authInfo[dartx.length] == 1) {
@@ -44459,17 +44462,17 @@
             }
           }
           request[_onIncoming](incoming);
-        }, _HttpIncomingToFutureOr())).catchError(dart.fn(error => {
+        }, _HttpIncomingToNull())).catchError(dart.fn(error => {
           dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
-        }, dynamicTodynamic$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
+        }, dynamicToNull$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
           this.destroy();
           request[_onError$](error, core.StackTrace._check(stackTrace));
-        }, dynamicAnddynamicTodynamic$()));
+        }, dynamicAnddynamicToNull()));
         this[_subscription$].resume();
         return s;
       }, dynamicTodynamic$()), {onError: dart.fn(e => {
           this.destroy();
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
       return request;
     }
     detachSocket() {
@@ -44519,7 +44522,7 @@
       this[_idleTimer] = async.Timer.new(this[_httpClient].idleTimeout, dart.fn(() => {
         this[_idleTimer] = null;
         this.close();
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
   };
   dart.setSignature(io._HttpClientConnection, {
@@ -44643,7 +44646,7 @@
         let completer = async.Completer.new();
         this[_pending$].add(dart.fn(() => {
           this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
         return FutureOf_ConnectionInfo()._check(completer.future);
       }
       let currentBadCertificateCallback = client[_badCertificateCallback];
@@ -44672,7 +44675,7 @@
           this[_connecting] = dart.notNull(this[_connecting]) - 1;
           this[_checkPending]();
           dart.throw(error);
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
     }
   };
   dart.setSignature(io._ConnectionTarget, {
@@ -45151,7 +45154,7 @@
         this[_httpServer][_markActive](this);
         incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
           if (dart.test(closing)) this.destroy();
-        }, dynamicToFutureOr$()));
+        }, dynamicToNull$()));
         this[_subscription$].pause();
         this[_state$1] = io._HttpConnection._ACTIVE;
         let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
@@ -45168,17 +45171,17 @@
           } else {
             this.destroy();
           }
-        }, dynamicToFutureOr$()), {onError: dart.fn(_ => {
+        }, dynamicToNull$()), {onError: dart.fn(_ => {
             this.destroy();
-          }, dynamicTodynamic$())});
+          }, dynamicToNull$())});
         outgoing.ignoreBody = request.method == "HEAD";
         response[_httpRequest] = request;
         this[_httpServer][_handleRequest](request);
-      }, _HttpIncomingTovoid$()), {onDone: dart.fn(() => {
+      }, _HttpIncomingToNull()), {onDone: dart.fn(() => {
           this.destroy();
-        }, VoidTovoid$()), onError: dart.fn(error => {
+        }, VoidToNull()), onError: dart.fn(error => {
           this.destroy();
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
     }
     markIdle() {
       this[_idleMark] = true;
@@ -45394,7 +45397,7 @@
               idle.markIdle();
             }
           }
-        }, TimerTovoid$()));
+        }, TimerToNull()));
       }
     }
     listen(onData, opts) {
@@ -45405,11 +45408,11 @@
         socket.setOption(io.SocketOption.TCP_NODELAY, true);
         let connection = new io._HttpConnection(socket, this);
         this[_idleConnections].add(connection);
-      }, SocketTodynamic()), {onError: dart.fn((error, stackTrace) => {
+      }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
           if (!io.HandshakeException.is(error)) {
             this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
           }
-        }, dynamicAnddynamicTodynamic$()), onDone: dart.bind(this[_controller$0], 'close')});
+        }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
       return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
     }
     close(opts) {
@@ -45487,11 +45490,11 @@
           dart.assert(conn[_isClosing]);
           result.closing = dart.notNull(result.closing) + 1;
         }
-      }, _HttpConnectionTovoid()));
+      }, _HttpConnectionToNull()));
       this[_idleConnections].forEach(dart.fn(conn => {
         result.idle = dart.notNull(result.idle) + 1;
         dart.assert(conn[_isIdle]);
-      }, _HttpConnectionTovoid()));
+      }, _HttpConnectionToNull()));
       return result;
     }
     get [_serviceTypePath]() {
@@ -45666,7 +45669,7 @@
             dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
           }
         }
-      }, StringTovoid$()));
+      }, StringToNull()));
     }
     direct() {
       this.proxies = const$74 || (const$74 = dart.constList([const$73 || (const$73 = dart.const(new io._Proxy.direct()))], io._Proxy));
@@ -46314,7 +46317,7 @@
         if (this[_userOnData] != null) {
           dart.dcall(this[_userOnData], data);
         }
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
   };
   io._HttpDetachedStreamSubscription[dart.implements] = () => [StreamSubscriptionOfListOfint()];
@@ -46447,17 +46450,17 @@
       super.new();
       this[_controller$0] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
           this[_paused] = false;
-        }, VoidTovoid$()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           this[_paused] = true;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           this[_paused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (this[_socketSubscription] != null) {
             this[_socketSubscription].cancel();
           }
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       this[_reset]();
     }
     listen(onData, opts) {
@@ -47077,24 +47080,24 @@
           dart.assert(this[_bodyPaused]);
           this[_bodyPaused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           dart.assert(!dart.test(this[_bodyPaused]));
           this[_bodyPaused] = true;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           dart.assert(this[_bodyPaused]);
           this[_bodyPaused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           if (this[_socketSubscription] != null) {
             this[_socketSubscription].cancel();
           }
           this[_closeIncoming](true);
           this[_controller$0].close();
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
       this[_bodyPaused] = true;
       this[_pauseStateChanged]();
@@ -48718,7 +48721,7 @@
       let completer = async.Completer.new();
       dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
         completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return FutureOfSecureSocket()._check(completer.future);
     }
     static secureServer(socket, context, opts) {
@@ -48729,7 +48732,7 @@
       let completer = async.Completer.new();
       dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
         completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return FutureOfSecureSocket()._check(completer.future);
     }
   };
@@ -48885,11 +48888,11 @@
         } else {
           this[_controller$0].add(secureConnection);
         }
-      }, RawSecureSocketToFutureOr())).catchError(dart.fn((e, s) => {
+      }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
         if (!dart.test(this[_closed])) {
           this[_controller$0].addError(e, core.StackTrace._check(s));
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
     }
     [_onPauseStateChange]() {
       if (dart.test(this[_controller$0].isPaused)) {
@@ -49469,7 +49472,7 @@
             }
           }
           this[_tryFilter]();
-        }, _FilterStatusToFutureOr())).catchError(dart.bind(this, _reportError));
+        }, _FilterStatusToNull())).catchError(dart.bind(this, _reportError));
       }
     }
     [_readSocketOrBufferedData](bytes) {
@@ -50554,7 +50557,7 @@
           completer.completeError(e, s);
         }
 
-      }, ListOfintTovoid$()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
+      }, ListOfintToNull()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
       return completer.future;
     }
     close() {
@@ -51546,9 +51549,9 @@
     bind(stream) {
       stream.listen(dart.fn(request => {
         io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller$0].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
-      }, HttpRequestTovoid$()), {onDone: dart.fn(() => {
+      }, HttpRequestToNull()), {onDone: dart.fn(() => {
           this[_controller$0].close();
-        }, VoidTovoid$())});
+        }, VoidToNull())});
       return this[_controller$0].stream;
     }
     static _upgrade(request, _protocolSelector, compression) {
@@ -51587,7 +51590,7 @@
           response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
           response.close();
           dart.throw(error);
-        }, dynamicTodynamic$())).then(io.WebSocket)(upgrade);
+        }, dynamicToNull$())).then(io.WebSocket)(upgrade);
       } else {
         return FutureOfWebSocket()._check(upgrade(null));
       }
@@ -51617,7 +51620,7 @@
       let isUpgrade = false;
       request.headers._get(io.HttpHeaders.CONNECTION)[dartx.forEach](dart.fn(value => {
         if (value[dartx.toLowerCase]() == "upgrade") isUpgrade = true;
-      }, StringTovoid$()));
+      }, StringToNull()));
       if (!isUpgrade) return false;
       let upgrade = request.headers.value(io.HttpHeaders.UPGRADE);
       if (upgrade == null || upgrade[dartx.toLowerCase]() != "websocket") {
@@ -51812,7 +51815,7 @@
     addFrame(opcode, data) {
       return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
         this[_eventSink$].add(e);
-      }, ListOfintTovoid$()));
+      }, ListOfintToNull()));
     }
     static createFrame(opcode, data, serverSide, compressed) {
       let mask = !dart.test(serverSide);
@@ -51958,7 +51961,7 @@
       this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
         this[_done$]();
         this[_closeCompleter].complete(this.webSocket);
-      }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
           this[_closed] = true;
           this[_cancel$]();
           if (core.ArgumentError.is(error)) {
@@ -51969,7 +51972,7 @@
             this[_done$]();
             this[_closeCompleter].complete(this.webSocket);
           }
-        }, dynamicAndStackTraceTodynamic())});
+        }, dynamicAndStackTraceToNull())});
     }
     [_done$](error, stackTrace) {
       if (error === void 0) error = null;
@@ -51992,7 +51995,7 @@
       this[_completer] = async.Completer.new();
       this[_subscription$] = stream.listen(dart.fn(data => {
         this[_controller$0].add(data);
-      }, dynamicTovoid$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
+      }, dynamicToNull$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
       if (dart.test(this[_issuedPause])) {
         this[_subscription$].pause();
         this[_issuedPause] = false;
@@ -52003,7 +52006,7 @@
       this[_ensureController]();
       const closeSocket = (function() {
         return this.socket.close().catchError(dart.fn(_ => {
-        }, dynamicTodynamic$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
+        }, dynamicToNull$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
       }).bind(this);
       dart.fn(closeSocket, VoidToFuture());
       this[_controller$0].close();
@@ -52094,7 +52097,7 @@
         function error(message) {
           response.detachSocket().then(dart.dynamic)(dart.fn(socket => {
             socket.destroy();
-          }, SocketToFutureOr()));
+          }, SocketToNull()));
           dart.throw(new io.WebSocketException(message));
         }
         dart.fn(error, StringTovoid$());
@@ -52177,7 +52180,7 @@
         } else {
           this[_controller$0].add(data);
         }
-      }, dynamicTodynamic$()), {onError: dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
           if (this[_closeTimer] != null) this[_closeTimer].cancel();
           if (core.FormatException.is(error)) {
             this[_close$0](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
@@ -52187,7 +52190,7 @@
           this[_closeCode] = this[_outCloseCode];
           this[_closeReason] = this[_outCloseReason];
           this[_controller$0].close();
-        }, dynamicAnddynamicTodynamic$()), onDone: dart.fn(() => {
+        }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
           if (this[_closeTimer] != null) this[_closeTimer].cancel();
           if (this[_readyState] == io.WebSocket.OPEN) {
             this[_readyState] = io.WebSocket.CLOSING;
@@ -52201,12 +52204,12 @@
           this[_closeCode] = transformer.closeCode;
           this[_closeReason] = transformer.closeReason;
           this[_controller$0].close();
-        }, VoidTodynamic$()), cancelOnError: true}));
+        }, VoidToNull()), cancelOnError: true}));
       this[_subscription$].pause();
       this[_controller$0] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$], 'resume'), onCancel: dart.fn(() => {
           this[_subscription$].cancel();
           this[_subscription$] = null;
-        }, VoidTodynamic$()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
+        }, VoidToNull()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
       io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
       try {
         dart.dput(this[_socket], _owner, this);
@@ -52233,8 +52236,8 @@
         this[_consumer].add(new io._WebSocketPing());
         this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
           this[_close$0](io.WebSocketStatus.GOING_AWAY);
-        }, VoidTovoid$()));
-      }, VoidTovoid$()));
+        }, VoidToNull()));
+      }, VoidToNull()));
     }
     get readyState() {
       return this[_readyState];
@@ -52282,7 +52285,7 @@
             if (this[_subscription$] != null) this[_subscription$].cancel();
             this[_controller$0].close();
             io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       return this[_sink$0].close();
@@ -52522,11 +52525,11 @@
       controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
           port = isolate.RawReceivePort.new(handleError);
           this.addErrorListener(port.sendPort);
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           this.removeErrorListener(port.sendPort);
           port.close();
           port = null;
-        }, VoidTovoid$())});
+        }, VoidToNull())});
       return controller.stream;
     }
   };
@@ -54791,7 +54794,7 @@
         let completer = CompleterOfIdbFactory().sync();
         request[dartx.onSuccess].listen(dart.fn(e => {
           completer.complete(this);
-        }, EventTovoid$()));
+        }, EventToNull()));
         request[dartx.onError].listen(dart.bind(completer, 'completeError'));
         return completer.future;
       } catch (e) {
@@ -54850,7 +54853,7 @@
       request[dartx.onSuccess].listen(dart.fn(e => {
         let result = indexed_db._cast(T)(request[dartx.result]);
         completer.complete(result);
-      }, EventTovoid$()));
+      }, EventToNull()));
       request[dartx.onError].listen(dart.bind(completer, 'completeError'));
       return completer.future;
     };
@@ -55322,7 +55325,7 @@
               cursor[dartx.next]();
             }
           }
-        }, EventTovoid$()));
+        }, EventToNull()));
         return controller.stream;
       };
     }
@@ -55495,15 +55498,15 @@
       let completer = CompleterOfDatabase().new();
       this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
         completer.complete(this[dartx.db]);
-      }, EventToFutureOr()));
+      }, EventToNull()));
       this[dartx.onError].first.then(dart.dynamic)(dart.fn(e => {
         completer.completeError(e);
-      }, EventToFutureOr()));
+      }, EventToNull()));
       this[dartx.onAbort].first.then(dart.dynamic)(dart.fn(e => {
         if (!dart.test(completer.isCompleted)) {
           completer.completeError(e);
         }
-      }, EventToFutureOr()));
+      }, EventToNull()));
       return completer.future;
     }
     static _() {
@@ -61640,9 +61643,9 @@
       let completer = CompleterOfFileSystem().new();
       this[_webkitRequestFileSystem](type, size, dart.fn(value => {
         completer.complete(value);
-      }, FileSystemTovoid()), dart.fn(error => {
+      }, FileSystemToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.requestFileSystemSync](...args) {
@@ -61658,9 +61661,9 @@
       let completer = CompleterOfEntry().new();
       this[_webkitResolveLocalFileSystemUrl](url, dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.atob](...args) {
@@ -69300,7 +69303,7 @@
       let completer = CompleterOfString().new();
       this[_getAsString](dart.fn(value => {
         completer.complete(value);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [dartx.getAsEntry](...args) {
@@ -69842,9 +69845,9 @@
       let completer = CompleterOfEntry().new();
       this[_copyTo](parent, {name: name, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_getMetadata](...args) {
@@ -69854,9 +69857,9 @@
       let completer = CompleterOfMetadata().new();
       this[_getMetadata](dart.fn(value => {
         completer.complete(value);
-      }, MetadataTovoid()), dart.fn(error => {
+      }, MetadataToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_getParent](...args) {
@@ -69866,9 +69869,9 @@
       let completer = CompleterOfEntry().new();
       this[_getParent](dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_moveTo](...args) {
@@ -69879,9 +69882,9 @@
       let completer = CompleterOfEntry().new();
       this[_moveTo](parent, {name: name, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_remove$](...args) {
@@ -69891,9 +69894,9 @@
       let completer = async.Completer.new();
       this[_remove$](dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.toUrl](...args) {
@@ -69992,9 +69995,9 @@
       let completer = CompleterOfEntry().new();
       this[__getDirectory](path, {options: options, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [__getFile](path, opts) {
@@ -70036,9 +70039,9 @@
       let completer = CompleterOfEntry().new();
       this[__getFile](path, {options: options, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_removeRecursively](...args) {
@@ -70048,9 +70051,9 @@
       let completer = async.Completer.new();
       this[_removeRecursively](dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -70094,9 +70097,9 @@
       let completer = CompleterOfListOfEntry().new();
       this[_readEntries](dart.fn(value => {
         completer.complete(value);
-      }, ListOfEntryTovoid()), dart.fn(error => {
+      }, ListOfEntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -73478,9 +73481,9 @@
       let completer = CompleterOfFileWriter().new();
       this[_createWriter](dart.fn(value => {
         completer.complete(value);
-      }, FileWriterTovoid()), dart.fn(error => {
+      }, FileWriterToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_file$](...args) {
@@ -73490,9 +73493,9 @@
       let completer = CompleterOfFile$().new();
       this[_file$](dart.fn(value => {
         completer.complete(value);
-      }, FileTovoid()), dart.fn(error => {
+      }, FileToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -74556,9 +74559,9 @@
       try {
         this[_getCurrentPosition](dart.fn(position => {
           completer.complete(this[_ensurePosition](position));
-        }, GeopositionTovoid()), dart.fn(error => {
+        }, GeopositionToNull()), dart.fn(error => {
           completer.completeError(error);
-        }, PositionErrorTovoid()), options);
+        }, PositionErrorToNull()), options);
       } catch (e) {
         let stacktrace = dart.stackTrace(e);
         completer.completeError(e, stacktrace);
@@ -74586,13 +74589,13 @@
           dart.assert(watchId == null);
           watchId = this[_watchPosition](dart.fn(position => {
             controller.add(this[_ensurePosition](position));
-          }, GeopositionTovoid()), dart.fn(error => {
+          }, GeopositionToNull()), dart.fn(error => {
             controller.addError(error);
-          }, PositionErrorTovoid()), options);
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+          }, PositionErrorToNull()), options);
+        }, VoidToNull()), onCancel: dart.fn(() => {
           dart.assert(watchId != null);
           this[_clearWatch](watchId);
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       return controller.stream;
     }
     [_ensurePosition](domPosition) {
@@ -75996,7 +75999,7 @@
       let parts = [];
       data[dartx.forEach](dart.fn((key, value) => {
         parts[dartx.add](dart.str`${core.Uri.encodeQueryComponent(key)}=` + dart.str`${core.Uri.encodeQueryComponent(value)}`);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       let formData = parts[dartx.join]('&');
       if (requestHeaders == null) {
         requestHeaders = dart.map({}, core.String, core.String);
@@ -76030,7 +76033,7 @@
       if (requestHeaders != null) {
         requestHeaders[dartx.forEach](dart.fn((header, value) => {
           xhr[dartx.setRequestHeader](header, value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       if (onProgress != null) {
         xhr[dartx.onProgress].listen(onProgress);
@@ -76045,7 +76048,7 @@
         } else {
           completer.completeError(e);
         }
-      }, ProgressEventTovoid$()));
+      }, ProgressEventToNull()));
       xhr[dartx.onError].listen(dart.bind(completer, 'completeError'));
       if (sendData != null) {
         xhr[dartx.send](sendData);
@@ -76082,13 +76085,13 @@
       }
       let xhr = new XDomainRequest();
       xhr.open(method, url);
-      xhr.onload = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+      xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
         let response = xhr.responseText;
         completer.complete(response);
-      }, dynamicTodynamic$()), 1);
-      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+      }, dynamicToNull$()), 1);
+      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
         completer.completeError(e);
-      }, dynamicTodynamic$()), 1);
+      }, dynamicToNull$()), 1);
       xhr.onprogress = {};
       xhr.ontimeout = {};
       xhr.timeout = Number.MAX_VALUE;
@@ -79965,7 +79968,7 @@
       let completer = CompleterOfListOfSourceInfo().new();
       html$.MediaStreamTrack._getSources(dart.fn(value => {
         completer.complete(value);
-      }, ListOfSourceInfoTovoid()));
+      }, ListOfSourceInfoToNull()));
       return completer.future;
     }
     [dartx.stop](...args) {
@@ -81186,7 +81189,7 @@
       function override(key, value) {
         if (value != null) html$.MutationObserver._add(parsedOptions, core.String._check(key), value);
       }
-      dart.fn(override, dynamicAnddynamicTodynamic$());
+      dart.fn(override, dynamicAnddynamicToNull());
       override('childList', childList);
       override('attributes', attributes);
       override('characterData', characterData);
@@ -81352,9 +81355,9 @@
       this[_ensureGetUserMedia]();
       this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
         completer.complete(stream);
-      }, MediaStreamTovoid()), dart.fn(error => {
+      }, MediaStreamToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, NavigatorUserMediaErrorTovoid()));
+      }, NavigatorUserMediaErrorToNull()));
       return completer.future;
     }
     [_ensureGetUserMedia]() {
@@ -82226,7 +82229,7 @@
       let completer = CompleterOfString().new();
       html$.Notification._requestPermission(dart.fn(value => {
         completer.complete(value);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     get [dartx.onClick]() {
@@ -85241,9 +85244,9 @@
       let completer = CompleterOfRtcSessionDescription().new();
       this[_createOffer](dart.fn(value => {
         completer.complete(value);
-      }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+      }, RtcSessionDescriptionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()), mediaConstraints);
+      }, StringToNull()), mediaConstraints);
       return completer.future;
     }
     [dartx.createAnswer](mediaConstraints) {
@@ -85251,16 +85254,16 @@
       let completer = CompleterOfRtcSessionDescription().new();
       this[_createAnswer](dart.fn(value => {
         completer.complete(value);
-      }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+      }, RtcSessionDescriptionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()), mediaConstraints);
+      }, StringToNull()), mediaConstraints);
       return completer.future;
     }
     [dartx.getStats](selector) {
       let completer = CompleterOfRtcStatsResponse().new();
       this[_getStats](dart.fn(value => {
         completer.complete(value);
-      }, RtcStatsResponseTovoid()), selector);
+      }, RtcStatsResponseToNull()), selector);
       return completer.future;
     }
     static _() {
@@ -85376,9 +85379,9 @@
       let completer = async.Completer.new();
       this[_setLocalDescription](description, dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [_setRemoteDescription](...args) {
@@ -85388,9 +85391,9 @@
       let completer = async.Completer.new();
       this[_setRemoteDescription](description, dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [dartx.updateIce](configuration, mediaConstraints) {
@@ -88208,7 +88211,7 @@
     [dartx.addAll](other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this[dartx._set](k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     [dartx.containsValue](value) {
       return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool$()));
@@ -92044,7 +92047,7 @@
       let completer = CompleterOfnum().sync();
       this[dartx.requestAnimationFrame](dart.fn(time => {
         completer.complete(time);
-      }, numTovoid()));
+      }, numToNull()));
       return completer.future;
     }
     get [dartx.document]() {
@@ -92499,9 +92502,9 @@
       let completer = CompleterOfFileSystem().new();
       this[__requestFileSystem](type, size, dart.fn(value => {
         completer.complete(value);
-      }, FileSystemTovoid()), dart.fn(error => {
+      }, FileSystemToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_resolveLocalFileSystemUrl](...args) {
@@ -92511,9 +92514,9 @@
       let completer = CompleterOfEntry().new();
       this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.atob](...args) {
@@ -93203,7 +93206,7 @@
       stream.listen(dart.fn(event => {
         let wrapped = new html$._BeforeUnloadEvent(event);
         controller.add(wrapped);
-      }, BeforeUnloadEventTovoid()));
+      }, BeforeUnloadEventToNull()));
       return controller.stream;
     }
     getEventType(target) {
@@ -94909,7 +94912,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this._set(k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     containsValue(value) {
       for (let v of this.values) {
@@ -95096,7 +95099,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this._set(k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     containsValue(value) {
       return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool$()));
@@ -95127,7 +95130,7 @@
         if (dart.test(this[_matches](key))) {
           f(this[_strip](key), value);
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     get keys() {
       let keys = JSArrayOfString().of([]);
@@ -95135,7 +95138,7 @@
         if (dart.test(this[_matches](key))) {
           keys[dartx.add](this[_strip](key));
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       return keys;
     }
     get values() {
@@ -95144,7 +95147,7 @@
         if (dart.test(this[_matches](key))) {
           values[dartx.add](value);
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       return values;
     }
     get length() {
@@ -98401,7 +98404,7 @@
         if (request[dartx.readyState] == html$.HttpRequest.DONE) {
           onComplete(request);
         }
-      }, ProgressEventTovoid$()));
+      }, ProgressEventToNull()));
       request[dartx.send]();
       return request;
     }
@@ -99147,7 +99150,7 @@
         this.writeSlot(slot, copy);
         e[dartx.forEach](dart.fn((key, value) => {
           this.putIntoMap(copy, key, this.walk(value));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return copy;
       }
       if (core.List.is(e)) {
@@ -99356,7 +99359,7 @@
     }
     dict[dartx.forEach](dart.fn((key, value) => {
       object[key] = value;
-    }, StringAnddynamicTovoid()));
+    }, StringAnddynamicToNull()));
     return object;
   };
   dart.fn(html_common.convertDartToNative_Dictionary, Map__Todynamic());
@@ -99381,7 +99384,7 @@
     let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
     return new html_common._AcceptStructuredCloneDart2Js().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
   };
-  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic$0());
+  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic());
   html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
     new() {
       super.new();
@@ -107352,13 +107355,13 @@
       let completer = CompleterOfAudioBuffer().new();
       this[_decodeAudioData](audioData, dart.fn(value => {
         completer.complete(value);
-      }, AudioBufferTovoid()), dart.fn(error => {
+      }, AudioBufferToNull()), dart.fn(error => {
         if (error == null) {
           completer.completeError('');
         } else {
           completer.completeError(error);
         }
-      }, AudioBufferTovoid()));
+      }, AudioBufferToNull()));
       return completer.future;
     }
   };
diff --git a/pkg/dev_compiler/lib/js/es6/dart_sdk.js b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
index 86ce6a6..a7fbad0 100644
--- a/pkg/dev_compiler/lib/js/es6/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/es6/dart_sdk.js
@@ -547,6 +547,7 @@
 let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html.Geoposition)))();
 let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html._CustomEventStreamProvider$(html.Event)))();
 let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html.HttpRequest)))();
+let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
 let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html.ProgressEvent])))();
 let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
 let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html.MediaStreamTrack)))();
@@ -652,13 +653,12 @@
 let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))();
 let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))();
 let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
-let intAnddynamicTovoid = () => (intAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, dart.dynamic])))();
+let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
 let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
 let StringTobool = () => (StringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
 let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
-let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
-let StringAndObjectTovoid = () => (StringAndObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Object])))();
-let dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
+let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
+let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
 let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
 let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
 let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -672,19 +672,22 @@
 let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
 let StringAndStringToString = () => (StringAndStringToString = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
 let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
+let dynamicAnddynamicTodynamic = () => (dynamicAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
 let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
 let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
 let StringTovoid = () => (StringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
 let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
 let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
 let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
+let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
+let dynamicAnddynamicTovoid = () => (dynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
 let VoidTovoid = () => (VoidTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
-let ListToFutureOr = () => (ListToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [core.List])))();
-let StringTodynamic = () => (StringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String])))();
-let dynamicToFutureOr = () => (dynamicToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [dart.dynamic])))();
-let TimerTovoid = () => (TimerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.Timer])))();
+let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
+let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
+let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
+let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
 let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
-let boolTodynamic = () => (boolTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.bool])))();
+let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
 let dynamicAndStackTraceTovoid = () => (dynamicAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])))();
 let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
 let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
@@ -727,7 +730,7 @@
 let dynamicToSymbol = () => (dynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic])))();
 let dynamicToMapOfSymbol$dynamic = () => (dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [dart.dynamic])))();
 let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
-let SymbolAnddynamicTovoid = () => (SymbolAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Symbol, dart.dynamic])))();
+let SymbolAnddynamicToNull = () => (SymbolAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.Symbol, dart.dynamic])))();
 let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
 let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
 let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -740,11 +743,12 @@
 let VoidToObject = () => (VoidToObject = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
 let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
 let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
-let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [dart.dynamic])))();
+let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
 let dynamicTo_Future = () => (dynamicTo_Future = dart.constFn(dart.definiteFunctionType(async._Future, [dart.dynamic])))();
 let _AsyncCallbackTovoid = () => (_AsyncCallbackTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._AsyncCallback])))();
+let FnToNull = () => (FnToNull = dart.constFn(dart.definiteFunctionType(core.Null, [VoidTovoid()])))();
 let _NotificationHandlerToFuture = () => (_NotificationHandlerToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [async._NotificationHandler])))();
-let dynamicAndStackTraceTodynamic = () => (dynamicAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.StackTrace])))();
+let dynamicAndStackTraceToNull = () => (dynamicAndStackTraceToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, core.StackTrace])))();
 let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace])))();
 let FnAndFnAndFnTodynamic = () => (FnAndFnAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [VoidTodynamic(), dynamicTodynamic(), ZoneBinaryCallbackOfdynamic$dynamic$StackTrace()])))();
 let StreamSubscriptionAnd_FutureAnddynamic__Tovoid = () => (StreamSubscriptionAnd_FutureAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace])))();
@@ -785,10 +789,11 @@
 let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
 let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
 let StringAndStringTovoid = () => (StringAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
-let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
+let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
 let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
 let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
 let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
+let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
 let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
 let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
 let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
@@ -813,10 +818,10 @@
 let dynamicToFutureOrOfString = () => (dynamicToFutureOrOfString = dart.constFn(dart.definiteFunctionType(FutureOrOfString(), [dart.dynamic])))();
 let dynamicToFutureOrOfbool = () => (dynamicToFutureOrOfbool = dart.constFn(dart.definiteFunctionType(FutureOrOfbool(), [dart.dynamic])))();
 let dynamicToFutureOrOfint = () => (dynamicToFutureOrOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfint(), [dart.dynamic])))();
-let ListOfintToFutureOr = () => (ListOfintToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [ListOfint()])))();
+let ListOfintToNull = () => (ListOfintToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfint()])))();
 let RandomAccessFileTovoid = () => (RandomAccessFileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.RandomAccessFile])))();
 let RandomAccessFileToFutureOr = () => (RandomAccessFileToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RandomAccessFile])))();
-let ListOfintTovoid = () => (ListOfintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+let RandomAccessFileToNull = () => (RandomAccessFileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RandomAccessFile])))();
 let RandomAccessFileToFutureOfRandomAccessFile = () => (RandomAccessFileToFutureOfRandomAccessFile = dart.constFn(dart.definiteFunctionType(FutureOfRandomAccessFile(), [io.RandomAccessFile])))();
 let dynamicTo_File = () => (dynamicTo_File = dart.constFn(dart.definiteFunctionType(io._File, [dart.dynamic])))();
 let FileSystemEntityTo_File = () => (FileSystemEntityTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.FileSystemEntity])))();
@@ -833,7 +838,8 @@
 let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
 let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
 let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
-let StringAndListOfStringTovoid = () => (StringAndListOfStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, ListOfString()])))();
+let ListOfintTovoid = () => (ListOfintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
 let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
 let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
 let _HttpClientRequestToFutureOfHttpClientResponse = () => (_HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io._HttpClientRequest])))();
@@ -844,15 +850,14 @@
 let _CredentialsTovoid = () => (_CredentialsTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._Credentials])))();
 let _AuthenticationSchemeAndStringToFuture = () => (_AuthenticationSchemeAndStringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [io._AuthenticationScheme, core.String])))();
 let dynamicToFutureOrOfHttpClientResponse = () => (dynamicToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [dart.dynamic])))();
-let CookieTovoid = () => (CookieTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.Cookie])))();
+let CookieToNull = () => (CookieToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Cookie])))();
 let ListToFutureOrOfHttpClientResponse = () => (ListToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [core.List])))();
 let HttpClientResponseTovoid = () => (HttpClientResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpClientResponse])))();
 let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
 let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
 let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
-let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [core.StackTrace])))();
-let _HttpIncomingTovoid = () => (_HttpIncomingTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpIncoming])))();
-let _HttpIncomingToFutureOr = () => (_HttpIncomingToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._HttpIncoming])))();
+let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
+let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
 let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
 let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
 let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
@@ -869,8 +874,8 @@
 let _SiteCredentialsAnd_CredentialsTo_SiteCredentials = () => (_SiteCredentialsAnd_CredentialsTo_SiteCredentials = dart.constFn(dart.definiteFunctionType(io._SiteCredentials, [io._SiteCredentials, io._Credentials])))();
 let ServerSocketTo_HttpServer = () => (ServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.ServerSocket])))();
 let SecureServerSocketTo_HttpServer = () => (SecureServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.SecureServerSocket])))();
-let SocketTodynamic = () => (SocketTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [io.Socket])))();
-let _HttpConnectionTovoid = () => (_HttpConnectionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpConnection])))();
+let SocketToNull = () => (SocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Socket])))();
+let _HttpConnectionToNull = () => (_HttpConnectionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpConnection])))();
 let _HttpConnectionToMap = () => (_HttpConnectionToMap = dart.constFn(dart.definiteFunctionType(core.Map, [io._HttpConnection])))();
 let _FileResourceInfoToMapOfString$String = () => (_FileResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._FileResourceInfo])))();
 let _ProcessResourceInfoToMapOfString$String = () => (_ProcessResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._ProcessResourceInfo])))();
@@ -884,22 +889,22 @@
 let RawSecureSocketToSecureSocket = () => (RawSecureSocketToSecureSocket = dart.constFn(dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])))();
 let dynamicToFutureOfRawSecureSocket = () => (dynamicToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [dart.dynamic])))();
 let RawServerSocketToRawSecureServerSocket = () => (RawServerSocketToRawSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket])))();
-let RawSecureSocketToFutureOr = () => (RawSecureSocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RawSecureSocket])))();
+let RawSecureSocketToNull = () => (RawSecureSocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RawSecureSocket])))();
 let RawSocketToFutureOfRawSecureSocket = () => (RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [io.RawSocket])))();
-let _FilterStatusToFutureOr = () => (_FilterStatusToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._FilterStatus])))();
+let _FilterStatusToNull = () => (_FilterStatusToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._FilterStatus])))();
 let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
 let dynamicTo_FilterStatus = () => (dynamicTo_FilterStatus = dart.constFn(dart.definiteFunctionType(io._FilterStatus, [dart.dynamic])))();
 let ListOfintAndStringTovoid = () => (ListOfintAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint(), core.String])))();
 let dynamicToStdioType = () => (dynamicToStdioType = dart.constFn(dart.definiteFunctionType(io.StdioType, [dart.dynamic])))();
 let EventSinkTo_WebSocketProtocolTransformer = () => (EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketProtocolTransformer, [async.EventSink])))();
 let WebSocketTovoid = () => (WebSocketTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.WebSocket])))();
-let HttpRequestTovoid = () => (HttpRequestTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpRequest])))();
+let HttpRequestToNull = () => (HttpRequestToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.HttpRequest])))();
 let SocketTo_WebSocketImpl = () => (SocketTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [io.Socket])))();
 let StringToFuture = () => (StringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [core.String])))();
 let EventSinkOfListOfintTo_WebSocketOutgoingTransformer = () => (EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [EventSinkOfListOfint()])))();
 let dynamicTo_WebSocketImpl = () => (dynamicTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic])))();
-let SocketToFutureOr = () => (SocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.Socket])))();
 let HttpClientResponseToFutureOfWebSocket = () => (HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.definiteFunctionType(FutureOfWebSocket(), [io.HttpClientResponse])))();
+let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
 let HttpClientRequestToFutureOfHttpClientResponse = () => (HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io.HttpClientRequest])))();
 let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
 let ListToIsolate = () => (ListToIsolate = dart.constFn(dart.definiteFunctionType(isolate.Isolate, [core.List])))();
@@ -918,36 +923,35 @@
 let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
 let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
 let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
-let EventTovoid = () => (EventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Event])))();
+let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Event])))();
 let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
 let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
-let EventToFutureOr = () => (EventToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [html.Event])))();
 let NodeTobool = () => (NodeTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.Node])))();
 let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
 let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
 let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
-let FileSystemTovoid = () => (FileSystemTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.FileSystem])))();
-let FileErrorTovoid = () => (FileErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.FileError])))();
-let EntryTovoid = () => (EntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Entry])))();
+let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.FileSystem])))();
+let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.FileError])))();
+let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Entry])))();
 let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html.CssStyleDeclaration, [dart.dynamic])))();
 let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.CssStyleDeclaration])))();
-let MetadataTovoid = () => (MetadataTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Metadata])))();
-let ListOfEntryTovoid = () => (ListOfEntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfEntry()])))();
+let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Metadata])))();
+let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
 let ElementTobool = () => (ElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.Element])))();
-let FileWriterTovoid = () => (FileWriterTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.FileWriter])))();
-let FileTovoid = () => (FileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.File])))();
-let GeopositionTovoid = () => (GeopositionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Geoposition])))();
-let PositionErrorTovoid = () => (PositionErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.PositionError])))();
+let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.FileWriter])))();
+let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.File])))();
+let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.Geoposition])))();
+let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.PositionError])))();
 let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html.HttpRequest])))();
-let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.ProgressEvent])))();
-let ListOfSourceInfoTovoid = () => (ListOfSourceInfoTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfSourceInfo()])))();
-let MediaStreamTovoid = () => (MediaStreamTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.MediaStream])))();
-let NavigatorUserMediaErrorTovoid = () => (NavigatorUserMediaErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.NavigatorUserMediaError])))();
-let RtcSessionDescriptionTovoid = () => (RtcSessionDescriptionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.RtcSessionDescription])))();
-let RtcStatsResponseTovoid = () => (RtcStatsResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.RtcStatsResponse])))();
+let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.ProgressEvent])))();
+let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
+let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.MediaStream])))();
+let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.NavigatorUserMediaError])))();
+let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.RtcSessionDescription])))();
+let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.RtcStatsResponse])))();
 let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html.OptionElement])))();
-let numTovoid = () => (numTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.num])))();
-let BeforeUnloadEventTovoid = () => (BeforeUnloadEventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.BeforeUnloadEvent])))();
+let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
+let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html.BeforeUnloadEvent])))();
 let ElementTovoid = () => (ElementTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html.Element])))();
 let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html.CssClassSet, [html.Element])))();
 let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
@@ -976,7 +980,7 @@
 let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
 let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
 let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html.Element, [html.Node])))();
-let AudioBufferTovoid = () => (AudioBufferTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [web_audio.AudioBuffer])))();
+let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
 dart.mixin = function(base, ...mixins) {
   class Mixin extends base {}
   for (let m of mixins) {
@@ -1703,10 +1707,7 @@
       return null;
     }
   }
-  if (ret2 === dart.void) return true;
-  if (ret1 === dart.void) {
-    return ret2 === dart.dynamic || ret2 === async.FutureOr;
-  }
+  if (ret1 === dart.void) return dart._isTop(ret2);
   if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
   return true;
 };
@@ -1727,13 +1728,13 @@
   };
 };
 dart._isBottom = function(type) {
-  return type == dart.bottom;
+  return type == dart.bottom || type == core.Null;
 };
 dart._isTop = function(type) {
   if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
     return dart._isTop(dart.getGenericArgs(type)[0]);
   }
-  return type == core.Object || type == dart.dynamic;
+  return type == core.Object || type == dart.dynamic || type == dart.void;
 };
 dart._isSubtype = function(t1, t2, isCovariant) {
   if (t1 === t2) return true;
@@ -2180,6 +2181,9 @@
   return false;
 };
 dart.is = function(obj, type) {
+  if (obj == null) {
+    return type == core.Null || dart._isTop(type);
+  }
   let result = dart.strongInstanceOf(obj, type);
   if (result !== null) return result;
   let actual = dart.getReifiedType(obj);
@@ -3290,7 +3294,7 @@
     if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
       this.asMap()[dartx.forEach](dart.fn((i, element) => {
         children[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
-      }, intAnddynamicTovoid()));
+      }, intAnddynamicToNull()));
     } else {
       for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
         let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
@@ -3691,14 +3695,14 @@
       } else {
         nonGenericProperties._set(core.String._check(name), value);
       }
-    }, dynamicAnddynamicTodynamic()));
+    }, dynamicAnddynamicToNull()));
     nonGenericProperties.forEach(dart.fn((name, value) => {
       if (core.Type.is(value)) {
         children.add(_debugger.NameValuePair._check(this.classChild(name, value)));
       } else {
         children.add(new _debugger.NameValuePair({name: name, value: value}));
       }
-    }, StringAndObjectTovoid()));
+    }, StringAndObjectToNull()));
     return children.toList();
   }
   recordGenericParameters(name, genericTypeConstructor) {
@@ -3767,7 +3771,7 @@
     map[dartx.forEach](dart.fn((key, value) => {
       let entryWrapper = new _debugger.MapEntry({key: key, value: value});
       entries.add(new _debugger.NameValuePair({name: dart.toString(entries.length), value: entryWrapper}));
-    }, dynamicAnddynamicTovoid()));
+    }, dynamicAnddynamicToNull()));
     _debugger.addMetadataChildren(object, entries);
     return entries.toList();
   }
@@ -9203,11 +9207,11 @@
   if (_isolate_helper._MainFunctionArgs.is(entry)) {
     rootContext.eval(dart.fn(() => {
       dart.dcall(entry, args);
-    }, VoidTodynamic()));
+    }, VoidToNull()));
   } else if (_isolate_helper._MainFunctionArgsMessage.is(entry)) {
     rootContext.eval(dart.fn(() => {
       dart.dcall(entry, args, null);
-    }, VoidTodynamic()));
+    }, VoidToNull()));
   } else {
     rootContext.eval(core.Function._check(entry));
   }
@@ -9649,7 +9653,7 @@
         if (!dart.test(this.runIteration())) return;
         async.Timer.run(next);
       }).bind(this);
-      dart.fn(next, VoidTodynamic());
+      dart.fn(next, VoidToNull());
       next();
     } else {
       while (dart.test(this.runIteration())) {
@@ -9802,7 +9806,7 @@
         let context = new _isolate_helper._IsolateContext();
         _isolate_helper._globalState.topEventLoop.enqueue(context, dart.fn(() => {
           _isolate_helper.IsolateNatives._startIsolate(entryPoint, ListOfString()._check(args), message, core.bool._check(isSpawnUri), core.bool._check(startPaused), isolate.SendPort._check(replyTo));
-        }, VoidTodynamic()), 'worker-start');
+        }, VoidToNull()), 'worker-start');
         _isolate_helper._globalState.currentContext = context;
         _isolate_helper._globalState.topEventLoop.run();
         break;
@@ -9852,9 +9856,9 @@
     let replyPort = dart.dindex(msg, 'replyPort');
     _isolate_helper.IsolateNatives.spawn(core.String._check(dart.dindex(msg, 'functionName')), core.String._check(dart.dindex(msg, 'uri')), ListOfString()._check(dart.dindex(msg, 'args')), dart.dindex(msg, 'msg'), false, core.bool._check(dart.dindex(msg, 'isSpawnUri')), core.bool._check(dart.dindex(msg, 'startPaused'))).then(dart.dynamic)(dart.fn(msg => {
       dart.dsend(replyPort, 'send', msg);
-    }, ListToFutureOr()), {onError: dart.fn(errorMessage => {
+    }, ListToNull()), {onError: dart.fn(errorMessage => {
         dart.dsend(replyPort, 'send', JSArrayOfString().of([_isolate_helper._SPAWN_FAILED_SIGNAL, errorMessage]));
-      }, StringTodynamic())});
+      }, StringToNull())});
   }
   static _log(msg) {
     if (dart.test(_isolate_helper._globalState.isWorker)) {
@@ -9911,7 +9915,7 @@
         dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
         completer.completeError(dart.dindex(msg, 1));
       }
-    }, dynamicToFutureOr()));
+    }, dynamicToNull()));
     let signalReply = port.sendPort;
     if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
       _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid()));
@@ -9937,7 +9941,7 @@
     _isolate_helper._globalState.topEventLoop.enqueue(new _isolate_helper._IsolateContext(), dart.fn(() => {
       let func = _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName);
       _isolate_helper.IsolateNatives._startIsolate(core.Function._check(func), args, message, isSpawnUri, startPaused, replyPort);
-    }, VoidTodynamic()), 'nonworker start');
+    }, VoidToNull()), 'nonworker start');
   }
   static get currentIsolate() {
     let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
@@ -10082,7 +10086,7 @@
       if (!dart.test(this[_receivePort][_isClosed])) {
         this[_receivePort][_add](msg);
       }
-    }, VoidTodynamic()), dart.str`receive ${message}`);
+    }, VoidToNull()), dart.str`receive ${message}`);
   }
   ['=='](other) {
     return _isolate_helper._NativeJsSendPort.is(other) && dart.equals(this[_receivePort], other[_receivePort]);
@@ -10216,13 +10220,11 @@
   let _EmptyStreamOfT = () => (_EmptyStreamOfT = dart.constFn(async._EmptyStream$(T)))();
   let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
   let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-  let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
   let _GeneratedStreamImplOfT = () => (_GeneratedStreamImplOfT = dart.constFn(async._GeneratedStreamImpl$(T)))();
   let _IterablePendingEventsOfT = () => (_IterablePendingEventsOfT = dart.constFn(async._IterablePendingEvents$(T)))();
   let _BoundSinkStreamOfdynamic$T = () => (_BoundSinkStreamOfdynamic$T = dart.constFn(async._BoundSinkStream$(dart.dynamic, T)))();
   let _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
   let _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
-  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   let _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
   let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
   let TAndTToT = () => (TAndTToT = dart.constFn(dart.functionType(T, [T, T])))();
@@ -10237,12 +10239,14 @@
   let _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
   let _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
   let _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
+  let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
   let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
   let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
   let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
   let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
   let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
   let TTobool = () => (TTobool = dart.constFn(dart.functionType(core.bool, [T])))();
+  let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
   let TAndTTobool = () => (TAndTTobool = dart.constFn(dart.functionType(core.bool, [T, T])))();
   let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
   let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
@@ -10250,11 +10254,10 @@
   let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
   let intToT = () => (intToT = dart.constFn(dart.functionType(T, [core.int])))();
   let EventSinkOfTToEventSink = () => (EventSinkOfTToEventSink = dart.constFn(dart.functionType(async.EventSink, [EventSinkOfT()])))();
-  let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
-  let TTodynamic$ = () => (TTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [T])))();
+  let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
   let VoidTo_IterablePendingEventsOfT = () => (VoidTo_IterablePendingEventsOfT = dart.constFn(dart.definiteFunctionType(_IterablePendingEventsOfT(), [])))();
-  let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
   let VoidToT = () => (VoidToT = dart.constFn(dart.definiteFunctionType(T, [])))();
+  let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
   class Stream extends core.Object {
     new() {
     }
@@ -10268,10 +10271,10 @@
       future.then(dart.dynamic)(dart.fn(value => {
         controller[_add](value);
         controller[_closeUnchecked]();
-      }, TToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+      }, TToNull()), {onError: dart.fn((error, stackTrace) => {
           controller[_addError](error, core.StackTrace._check(stackTrace));
           controller[_closeUnchecked]();
-        }, dynamicAnddynamicTodynamic())});
+        }, dynamicAnddynamicToNull())});
       return controller.stream;
     }
     static fromFutures(futures) {
@@ -10282,13 +10285,13 @@
           controller[_add](value);
           if (--count == 0) controller[_closeUnchecked]();
         }
-      }, TTodynamic$());
+      }, TToNull());
       let onError = dart.fn((error, stack) => {
         if (!dart.test(controller.isClosed)) {
           controller[_addError](error, core.StackTrace._check(stack));
           if (--count == 0) controller[_closeUnchecked]();
         }
-      }, dynamicAnddynamicTodynamic());
+      }, dynamicAnddynamicToNull());
       for (let future of futures) {
         count++;
         future.then(dart.dynamic)(onValue, {onError: onError});
@@ -10325,17 +10328,17 @@
         dart.assert(timer == null);
         timer = async.Timer.periodic(period, dart.fn(timer => {
           sendEvent();
-        }, TimerTovoid()));
+        }, TimerToNull()));
       }
       dart.fn(startPeriodicTimer, VoidTovoid());
       controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
           watch.start();
           startPeriodicTimer();
-        }, VoidTovoid()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           timer.cancel();
           timer = null;
           watch.stop();
-        }, VoidTovoid()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           dart.assert(timer == null);
           let elapsed = watch.elapsed;
           watch.start();
@@ -10343,11 +10346,11 @@
             timer = null;
             startPeriodicTimer();
             sendEvent();
-          }, VoidTovoid()));
-        }, VoidTovoid()), onCancel: dart.fn(() => {
+          }, VoidToNull()));
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (timer != null) timer.cancel();
           timer = null;
-        }, VoidTodynamic())});
+        }, VoidToNull())});
       return controller.stream;
     }
     static eventTransformed(source, mapSink) {
@@ -10394,21 +10397,21 @@
             } else {
               controller.add(E.as(newValue));
             }
-          }, TTovoid$()), {onError: addError, onDone: dart.bind(controller, 'close')});
+          }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
         }).bind(this);
         dart.fn(onListen, VoidTovoid());
         if (dart.test(this.isBroadcast)) {
           controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
               subscription.cancel();
-            }, VoidTovoid()), sync: true});
+            }, VoidToNull()), sync: true});
         } else {
           controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
               subscription.pause();
-            }, VoidTovoid()), onResume: dart.fn(() => {
+            }, VoidToNull()), onResume: dart.fn(() => {
               subscription.resume();
-            }, VoidTovoid()), onCancel: dart.fn(() => {
+            }, VoidToNull()), onCancel: dart.fn(() => {
               subscription.cancel();
-            }, VoidTodynamic()), sync: true});
+            }, VoidToNull()), sync: true});
         }
         return controller.stream;
       };
@@ -10434,21 +10437,21 @@
               subscription.pause();
               controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
             }
-          }, TTovoid$()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
+          }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
         }).bind(this);
         dart.fn(onListen, VoidTovoid());
         if (dart.test(this.isBroadcast)) {
           controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
               subscription.cancel();
-            }, VoidTovoid()), sync: true});
+            }, VoidToNull()), sync: true});
         } else {
           controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
               subscription.pause();
-            }, VoidTovoid()), onResume: dart.fn(() => {
+            }, VoidToNull()), onResume: dart.fn(() => {
               subscription.resume();
-            }, VoidTovoid()), onCancel: dart.fn(() => {
+            }, VoidToNull()), onCancel: dart.fn(() => {
               subscription.cancel();
-            }, VoidTodynamic()), sync: true});
+            }, VoidToNull()), sync: true});
         }
         return controller.stream;
       };
@@ -10482,12 +10485,12 @@
         if (seenFirst) {
           async._runUserCode(dart.fn(() => combine(value, element), VoidToT()), dart.fn(newValue => {
             value = newValue;
-          }, TTodynamic$()), async._cancelAndErrorClosure(subscription, result));
+          }, TToNull()), async._cancelAndErrorClosure(subscription, result));
         } else {
           value = element;
           seenFirst = true;
         }
-      }, TTovoid$()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
           if (!seenFirst) {
             try {
               dart.throw(_internal.IterableElementError.noElement());
@@ -10499,7 +10502,7 @@
           } else {
             result[_complete](value);
           }
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return result;
     }
     fold(S) {
@@ -10510,12 +10513,12 @@
         subscription = this.listen(dart.fn(element => {
           async._runUserCode(dart.fn(() => combine(value, element), dart.definiteFunctionType(S, [])), dart.fn(newValue => {
             value = newValue;
-          }, dart.definiteFunctionType(dart.dynamic, [S])), async._cancelAndErrorClosure(subscription, result));
-        }, TTovoid$()), {onError: dart.fn((e, st) => {
+          }, dart.definiteFunctionType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
+        }, TToNull()), {onError: dart.fn((e, st) => {
             result[_completeError](e, core.StackTrace._check(st));
-          }, dynamicAnddynamicTodynamic()), onDone: dart.fn(() => {
+          }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
             result[_complete](value);
-          }, VoidTovoid()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       };
     }
@@ -10537,11 +10540,11 @@
           async._cancelAndErrorWithReplacement(subscription, result, e, s);
         }
 
-      }, TTovoid$()), {onError: dart.fn(e => {
+      }, TToNull()), {onError: dart.fn(e => {
           result[_completeError](e);
-        }, dynamicTodynamic()), onDone: dart.fn(() => {
+        }, dynamicToNull()), onDone: dart.fn(() => {
           result[_complete](buffer.toString());
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return result;
     }
     contains(needle) {
@@ -10552,10 +10555,10 @@
           if (dart.test(isMatch)) {
             async._cancelAndValue(subscription, future, true);
           }
-        }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](false);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     forEach(action) {
@@ -10563,10 +10566,10 @@
       let subscription = null;
       subscription = this.listen(dart.fn(element => {
         async._runUserCode(dart.fn(() => action(element), VoidTovoid()), dart.fn(_ => {
-        }, dynamicTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, dynamicToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](null);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     every(test) {
@@ -10577,10 +10580,10 @@
           if (!dart.test(isMatch)) {
             async._cancelAndValue(subscription, future, false);
           }
-        }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](true);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     any(test) {
@@ -10591,10 +10594,10 @@
           if (dart.test(isMatch)) {
             async._cancelAndValue(subscription, future, true);
           }
-        }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](false);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     get length() {
@@ -10602,9 +10605,9 @@
       let count = 0;
       this.listen(dart.fn(_ => {
         count++;
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](count);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     get isEmpty() {
@@ -10612,9 +10615,9 @@
       let subscription = null;
       subscription = this.listen(dart.fn(_ => {
         async._cancelAndValue(subscription, future, false);
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](true);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     toList() {
@@ -10622,9 +10625,9 @@
       let future = new (_FutureOfListOfT())();
       this.listen(dart.fn(data => {
         result[dartx.add](data);
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](result);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     toSet() {
@@ -10632,9 +10635,9 @@
       let future = new (_FutureOfSetOfT())();
       this.listen(dart.fn(data => {
         result.add(data);
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_complete](result);
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     drain(E) {
@@ -10664,7 +10667,7 @@
       let subscription = null;
       subscription = this.listen(dart.fn(value => {
         async._cancelAndValue(subscription, future, value);
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           try {
             dart.throw(_internal.IterableElementError.noElement());
           } catch (e) {
@@ -10672,7 +10675,7 @@
             async._completeWithErrorCallback(future, e, s);
           }
 
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     get last() {
@@ -10682,7 +10685,7 @@
       this.listen(dart.fn(value => {
         foundResult = true;
         result = value;
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           if (foundResult) {
             future[_complete](result);
             return;
@@ -10694,7 +10697,7 @@
             async._completeWithErrorCallback(future, e, s);
           }
 
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     get single() {
@@ -10715,7 +10718,7 @@
         }
         foundResult = true;
         result = value;
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           if (foundResult) {
             future[_complete](result);
             return;
@@ -10727,7 +10730,7 @@
             async._completeWithErrorCallback(future, e, s);
           }
 
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     firstWhere(test, opts) {
@@ -10739,8 +10742,8 @@
           if (dart.test(isMatch)) {
             async._cancelAndValue(subscription, future, value);
           }
-        }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           if (defaultValue != null) {
             async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
             return;
@@ -10752,7 +10755,7 @@
             async._completeWithErrorCallback(future, e, s);
           }
 
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     lastWhere(test, opts) {
@@ -10767,8 +10770,8 @@
             foundResult = true;
             result = value;
           }
-        }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           if (foundResult) {
             future[_complete](result);
             return;
@@ -10784,7 +10787,7 @@
             async._completeWithErrorCallback(future, e, s);
           }
 
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     singleWhere(test) {
@@ -10808,8 +10811,8 @@
             foundResult = true;
             result = value;
           }
-        }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           if (foundResult) {
             future[_complete](result);
             return;
@@ -10821,7 +10824,7 @@
             async._completeWithErrorCallback(future, e, s);
           }
 
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     elementAt(index) {
@@ -10835,9 +10838,9 @@
           return;
         }
         elementIndex = elementIndex + 1;
-      }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+      }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
           future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
-        }, VoidTovoid()), cancelOnError: true});
+        }, VoidToNull()), cancelOnError: true});
       return future;
     }
     timeout(timeLimit, opts) {
@@ -10871,7 +10874,7 @@
         if (onTimeout == null) {
           timeout = dart.fn(() => {
             controller.addError(new async.TimeoutException("No stream event", timeLimit), null);
-          }, VoidTovoid());
+          }, VoidToNull());
         } else {
           let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfT())(onTimeout);
           let wrapper = new async._ControllerEventSinkWrapper(null);
@@ -10879,7 +10882,7 @@
             wrapper[_sink] = controller;
             zone.runUnaryGuarded(dart.dynamic, EventSinkOfT())(registeredOnTimeout, wrapper);
             wrapper[_sink] = null;
-          }, VoidTovoid());
+          }, VoidToNull());
         }
         subscription = this.listen(onData, {onError: onError, onDone: onDone});
         timer = zone.createTimer(timeLimit, timeout);
@@ -10895,10 +10898,10 @@
       controller = dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_SyncStreamControllerOfT())(onListen, dart.fn(() => {
         timer.cancel();
         subscription.pause();
-      }, VoidTovoid()), dart.fn(() => {
+      }, VoidToNull()), dart.fn(() => {
         subscription.resume();
         timer = zone.createTimer(timeLimit, timeout);
-      }, VoidTovoid()), onCancel);
+      }, VoidToNull()), onCancel);
       return controller.stream;
     }
   }
@@ -11045,7 +11048,7 @@
       _isolate_helper.enterJsAsync();
       this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
         callback(this);
-      }, VoidTodynamic()), milliseconds);
+      }, VoidToNull()), milliseconds);
     } else {
       dart.throw(new core.UnsupportedError("Periodic timer."));
     }
@@ -12476,14 +12479,14 @@
   let LinkedHashMapKeyIterableOfK = () => (LinkedHashMapKeyIterableOfK = dart.constFn(_js_helper.LinkedHashMapKeyIterable$(K)))();
   let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
   let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
   let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
   let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
   let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
   let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-  let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
   class JsLinkedHashMap extends core.Object {
     new() {
       this[_length] = 0;
@@ -12538,7 +12541,7 @@
       MapOfK$V()._check(other);
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, KAndVTovoid$()));
+      }, KAndVToNull()));
     }
     _get(key) {
       if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
@@ -13808,7 +13811,7 @@
   let obj = {};
   map[dartx.forEach](dart.fn((key, value) => {
     obj[_js_mirrors.getName(key)] = value;
-  }, SymbolAnddynamicTovoid()));
+  }, SymbolAnddynamicToNull()));
   return obj;
 };
 dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
@@ -14023,7 +14026,7 @@
       constructors[dartx.forEach](dart.fn((symbol, ft) => {
         let name = _js_mirrors.getName(symbol);
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       if (dart.test(constructors[dartx.isEmpty])) {
         let name = 'new';
         let ft = _js_mirrors._defaultConstructorType(_js_mirrors._unwrap(this[_cls]));
@@ -14038,23 +14041,23 @@
           t = dart.dindex(t, 0);
         }
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let methods = _js_mirrors._getMethods(unwrapped);
       methods[dartx.forEach](dart.fn((symbol, ft) => {
         let name = _js_mirrors.getName(symbol);
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let getters = _js_mirrors._getGetters(unwrapped);
       getters[dartx.forEach](dart.fn((symbol, ft) => {
         let name = _js_mirrors.getName(symbol);
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let setters = _js_mirrors._getSetters(unwrapped);
       setters[dartx.forEach](dart.fn((symbol, ft) => {
         let name = dart.notNull(_js_mirrors.getName(symbol)) + '=';
         symbol = new _internal.Symbol.es6(name, _js_mirrors._getESSymbol(symbol));
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let staticFields = _js_mirrors._getStaticFields(unwrapped);
       staticFields[dartx.forEach](dart.fn((symbol, t) => {
         let name = _js_mirrors.getName(symbol);
@@ -14064,22 +14067,22 @@
           t = dart.dindex(t, 0);
         }
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let statics = _js_mirrors._getStatics(unwrapped);
       statics[dartx.forEach](dart.fn((symbol, ft) => {
         let name = _js_mirrors.getName(symbol);
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let staticGetters = _js_mirrors._getStaticGetters(unwrapped);
       staticGetters[dartx.forEach](dart.fn((symbol, ft) => {
         let name = _js_mirrors.getName(symbol);
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       let staticSetters = _js_mirrors._getStaticSetters(unwrapped);
       staticSetters[dartx.forEach](dart.fn((symbol, ft) => {
         let name = _js_mirrors.getName(symbol);
         this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       this[_declarations] = MapOfSymbol$DeclarationMirror().unmodifiable(this[_declarations]);
     }
     return this[_declarations];
@@ -17929,11 +17932,11 @@
         let result = new (async._Future$(E))();
         this[_onDone] = dart.fn(() => {
           result[_complete](futureValue);
-        }, VoidTovoid());
+        }, VoidToNull());
         this[_onError] = dart.fn((error, stackTrace) => {
           this.cancel();
           result[_completeError](error, core.StackTrace._check(stackTrace));
-        }, dynamicAnddynamicTodynamic());
+        }, dynamicAnddynamicToNull());
         return result;
       };
     }
@@ -18609,7 +18612,7 @@
 async._SyncBroadcastStreamController$ = dart.generic(T => {
   let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
   let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
-  let _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
+  let _BufferingStreamSubscriptionOfTToNull = () => (_BufferingStreamSubscriptionOfTToNull = dart.constFn(dart.definiteFunctionType(core.Null, [_BufferingStreamSubscriptionOfT()])))();
   class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
     new(onListen, onCancel) {
       super.new(onListen, onCancel);
@@ -18638,19 +18641,19 @@
       }
       this[_forEachListener](dart.fn(subscription => {
         subscription[_add](data);
-      }, _BufferingStreamSubscriptionOfTTovoid()));
+      }, _BufferingStreamSubscriptionOfTToNull()));
     }
     [_sendError](error, stackTrace) {
       if (dart.test(this[_isEmpty])) return;
       this[_forEachListener](dart.fn(subscription => {
         subscription[_addError](error, stackTrace);
-      }, _BufferingStreamSubscriptionOfTTovoid()));
+      }, _BufferingStreamSubscriptionOfTToNull()));
     }
     [_sendDone]() {
       if (!dart.test(this[_isEmpty])) {
         this[_forEachListener](dart.fn(subscription => {
           subscription[_close]();
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       } else {
         dart.assert(this[_doneFuture] != null);
         dart.assert(this[_doneFuture][_mayComplete]);
@@ -18901,7 +18904,7 @@
           async._completeWithErrorCallback(result, e, s);
         }
 
-      }, VoidTovoid()));
+      }, VoidToNull()));
       return result;
     }
     static microtask(computation) {
@@ -18914,7 +18917,7 @@
           async._completeWithErrorCallback(result, e, s);
         }
 
-      }, VoidTovoid()));
+      }, VoidToNull()));
       return result;
     }
     static sync(computation) {
@@ -18954,7 +18957,7 @@
           async._completeWithErrorCallback(result, e, s);
         }
 
-      }, VoidTovoid()));
+      }, VoidToNull()));
       return result;
     }
     static wait(T) {
@@ -18974,7 +18977,7 @@
                 if (value != null) {
                   async.Future.sync(dart.fn(() => {
                     cleanUp(value);
-                  }, VoidTodynamic()));
+                  }, VoidToNull()));
                 }
               }
             }
@@ -19004,13 +19007,13 @@
                 if (cleanUp != null && value != null) {
                   async.Future.sync(dart.fn(() => {
                     cleanUp(value);
-                  }, VoidTodynamic()));
+                  }, VoidToNull()));
                 }
                 if (remaining == 0 && !dart.test(eagerError)) {
                   result[_completeError](error, stackTrace);
                 }
               }
-            }, dart.definiteFunctionType(async.FutureOr, [T])), {onError: handleError});
+            }, dart.definiteFunctionType(core.Null, [T])), {onError: handleError});
             remaining++;
           }
           if (remaining == 0) {
@@ -19035,10 +19038,10 @@
         let completer = async.Completer$(T).sync();
         let onValue = dart.fn(value => {
           if (!dart.test(completer.isCompleted)) completer.complete(value);
-        }, dart.definiteFunctionType(dart.dynamic, [T]));
+        }, dart.definiteFunctionType(core.Null, [T]));
         let onError = dart.fn((error, stack) => {
           if (!dart.test(completer.isCompleted)) completer.completeError(error, core.StackTrace._check(stack));
-        }, dynamicAnddynamicTodynamic());
+        }, dynamicAnddynamicToNull());
         for (let future of futures) {
           future.then(dart.dynamic)(onValue, {onError: onError});
         }
@@ -19061,7 +19064,7 @@
         } else {
           doneSignal[_complete](null);
         }
-      }, boolTodynamic()), {runGuarded: true});
+      }, boolToNull()), {runGuarded: true});
       dart.dcall(nextIteration, true);
       return doneSignal;
     }
@@ -19414,7 +19417,7 @@
   let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
   let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
   let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
-  let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
+  let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
   class _Future extends core.Object {
     new() {
       this[_zone] = async.Zone.current;
@@ -19552,7 +19555,7 @@
         dart.assert(this[_isComplete]);
         this[_zone].scheduleMicrotask(dart.fn(() => {
           async._Future._propagateToListeners(this, listener);
-        }, VoidTovoid()));
+        }, VoidToNull()));
       }
     }
     [_prependListeners](listeners) {
@@ -19580,7 +19583,7 @@
         listeners = this[_reverseListeners](listeners);
         this[_zone].scheduleMicrotask(dart.fn(() => {
           async._Future._propagateToListeners(this, listeners);
-        }, VoidTovoid()));
+        }, VoidToNull()));
       }
     }
     [_removeListeners]() {
@@ -19609,16 +19612,16 @@
           dart.assert(target[_isPendingComplete]);
           target[_clearPendingComplete]();
           target[_complete](value);
-        }, dynamicToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+        }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
             if (stackTrace === void 0) stackTrace = null;
             dart.assert(target[_isPendingComplete]);
             target[_completeError](error, core.StackTrace._check(stackTrace));
-          }, dynamic__Todynamic())});
+          }, dynamic__ToNull())});
       } catch (e) {
         let s = dart.stackTrace(e);
         async.scheduleMicrotask(dart.fn(() => {
           target[_completeError](e, s);
-        }, VoidTovoid()));
+        }, VoidToNull()));
       }
 
     }
@@ -19676,7 +19679,7 @@
             this[_setPendingComplete]();
             this[_zone].scheduleMicrotask(dart.fn(() => {
               async._Future._chainCoreFuture(coreFuture, this);
-            }, VoidTovoid()));
+            }, VoidToNull()));
           } else {
             async._Future._chainCoreFuture(coreFuture, this);
           }
@@ -19689,14 +19692,14 @@
       this[_setPendingComplete]();
       this[_zone].scheduleMicrotask(dart.fn(() => {
         this[_completeWithValue](typedValue);
-      }, VoidTovoid()));
+      }, VoidToNull()));
     }
     [_asyncCompleteError](error, stackTrace) {
       dart.assert(!dart.test(this[_isComplete]));
       this[_setPendingComplete]();
       this[_zone].scheduleMicrotask(dart.fn(() => {
         this[_completeError](error, stackTrace);
-      }, VoidTovoid()));
+      }, VoidToNull()));
     }
     static _propagateToListeners(source, listeners) {
       while (true) {
@@ -19840,7 +19843,7 @@
       if (onTimeout == null) {
         timer = async.Timer.new(timeLimit, dart.fn(() => {
           result[_completeError](new async.TimeoutException("Future not completed", timeLimit));
-        }, VoidTovoid()));
+        }, VoidToNull()));
       } else {
         let zone = async.Zone.current;
         onTimeout = zone.registerCallback(dart.dynamic)(onTimeout);
@@ -19852,19 +19855,19 @@
             result[_completeError](e, s);
           }
 
-        }, VoidTovoid()));
+        }, VoidToNull()));
       }
       this.then(dart.dynamic)(dart.fn(v => {
         if (dart.test(timer.isActive)) {
           timer.cancel();
           result[_completeWithValue](v);
         }
-      }, TToFutureOr()), {onError: dart.fn((e, s) => {
+      }, TToNull()), {onError: dart.fn((e, s) => {
           if (dart.test(timer.isActive)) {
             timer.cancel();
             result[_completeError](e, core.StackTrace._check(s));
           }
-        }, dynamicAnddynamicTodynamic())});
+        }, dynamicAnddynamicToNull())});
       return result;
     }
   }
@@ -20046,7 +20049,7 @@
         storedCallback = null;
         f();
       }
-      dart.fn(internalCallback, dynamicTodynamic());
+      dart.fn(internalCallback, dynamicToNull());
       ;
       let observer = new _isolate_helper.global.MutationObserver(internalCallback);
       observer.observe(div, {childList: true});
@@ -20055,7 +20058,7 @@
         _isolate_helper.enterJsAsync();
         storedCallback = callback;
         div.firstChild ? div.removeChild(span) : div.appendChild(span);
-      }, _AsyncCallbackTovoid());
+      }, FnToNull());
     } else if (_isolate_helper.global.setImmediate != null) {
       return async._AsyncRun._scheduleImmediateWithSetImmediate;
     }
@@ -20066,7 +20069,7 @@
       _isolate_helper.leaveJsAsync();
       callback();
     }
-    dart.fn(internalCallback, VoidTodynamic());
+    dart.fn(internalCallback, VoidToNull());
     ;
     _isolate_helper.enterJsAsync();
     _isolate_helper.global.scheduleImmediate(internalCallback);
@@ -20076,7 +20079,7 @@
       _isolate_helper.leaveJsAsync();
       callback();
     }
-    dart.fn(internalCallback, VoidTodynamic());
+    dart.fn(internalCallback, VoidToNull());
     ;
     _isolate_helper.enterJsAsync();
     _isolate_helper.global.setImmediate(internalCallback);
@@ -20490,7 +20493,7 @@
       subscription[_setPendingEvents](pendingEvents);
       subscription[_guardCallback](dart.fn(() => {
         async._runGuarded(this.onListen);
-      }, VoidTovoid()));
+      }, VoidToNull()));
       return subscription;
     }
     [_recordCancel](subscription) {
@@ -20750,7 +20753,7 @@
       return dart.fn((e, s) => {
         controller[_addError](e, s);
         controller[_close]();
-      }, dynamicAndStackTraceTodynamic());
+      }, dynamicAndStackTraceToNull());
     }
     pause() {
       this.addSubscription.pause();
@@ -20766,7 +20769,7 @@
       }
       return cancel.whenComplete(dart.fn(() => {
         this.addStreamFuture[_asyncComplete](null);
-      }, VoidTodynamic()));
+      }, VoidToNull()));
     }
     complete() {
       this.addStreamFuture[_asyncComplete](null);
@@ -20883,7 +20886,7 @@
         this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
         if (oldState == async._PendingEvents._STATE_CANCELED) return;
         this.handleNext(dispatch);
-      }, VoidTovoid()));
+      }, VoidToNull()));
       this[_state] = async._PendingEvents._STATE_SCHEDULED;
     }
     cancelSchedule() {
@@ -21190,7 +21193,7 @@
         let result = new (async._Future$(E))();
         this[_onDone] = dart.fn(() => {
           result[_completeWithValue](null);
-        }, VoidTovoid());
+        }, VoidToNull());
         return result;
       };
     }
@@ -21609,7 +21612,7 @@
 async._cancelAndErrorClosure = function(subscription, future) {
   return dart.fn((error, stackTrace) => {
     async._cancelAndError(subscription, future, error, stackTrace);
-  }, dynamicAndStackTraceTovoid());
+  }, dynamicAndStackTraceToNull());
 };
 dart.fn(async._cancelAndErrorClosure, StreamSubscriptionAnd_FutureTo_ErrorCallback());
 async._cancelAndValue = function(subscription, future, value) {
@@ -23191,7 +23194,7 @@
       if (error == null) error = new core.NullThrownError();
       if (stackTrace == null) dart.throw(error);
       async._rethrow(error, stackTrace);
-    }, VoidTovoid()));
+    }, VoidToNull()));
   };
 };
 dart.lazyFn(async._rootHandleUncaughtError, () => ZoneAndZoneDelegateAndZone__ToR());
@@ -23627,13 +23630,13 @@
   let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
   let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
   let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let ListOfK = () => (ListOfK = dart.constFn(core.List$(K)))();
   let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
   let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
   let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-  let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
   class _HashMap extends core.Object {
     new() {
       this[_length] = 0;
@@ -23681,7 +23684,7 @@
       MapOfK$V()._check(other);
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, KAndVTovoid$()));
+      }, KAndVToNull()));
     }
     _get(key) {
       if (dart.test(collection._HashMap._isStringKey(key))) {
@@ -24174,11 +24177,11 @@
 collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
   let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
   let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let _Es6MapIterableOfV = () => (_Es6MapIterableOfV = dart.constFn(collection._Es6MapIterable$(V)))();
   let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-  let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
   let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
   class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
     new() {
@@ -24211,7 +24214,7 @@
       MapOfK$V()._check(other);
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, KAndVTovoid$()));
+      }, KAndVToNull()));
     }
     _get(key) {
       return this[_map].get(key);
@@ -25811,7 +25814,7 @@
       let result = HashMapOfK$V().new();
       other[dartx.forEach](dart.fn((k, v) => {
         result._set(K.as(k), V.as(v));
-      }, dynamicAnddynamicTovoid()));
+      }, dynamicAnddynamicToNull()));
       return result;
     }
     static fromIterable(iterable, opts) {
@@ -26363,7 +26366,7 @@
       let result = LinkedHashMapOfK$V().new();
       other[dartx.forEach](dart.fn((k, v) => {
         result._set(K.as(k), V.as(v));
-      }, dynamicAnddynamicTovoid()));
+      }, dynamicAnddynamicToNull()));
       return result;
     }
     static fromIterable(iterable, opts) {
@@ -27118,7 +27121,7 @@
         result.write(k);
         result.write(': ');
         result.write(v);
-      }, dynamicAnddynamicTovoid()));
+      }, dynamicAnddynamicToNull()));
       result.write('}');
     } finally {
       dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
@@ -28245,16 +28248,16 @@
   let ComparatorOfK = () => (ComparatorOfK = dart.constFn(core.Comparator$(K)))();
   let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
   let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let _SplayTreeNodeIteratorOfK = () => (_SplayTreeNodeIteratorOfK = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
   let _SplayTreeKeyIterableOfK = () => (_SplayTreeKeyIterableOfK = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
   let _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
+  let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
   let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
   let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
   let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
   let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
   let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-  let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+  let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
   class SplayTreeMap extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {
     new(compare, isValidKey) {
       if (compare === void 0) compare = null;
@@ -28277,7 +28280,7 @@
       let result = new (SplayTreeMapOfK$V())(compare, isValidKey);
       other[dartx.forEach](dart.fn((k, v) => {
         result._set(K.as(k), V.as(v));
-      }, dynamicAnddynamicTovoid()));
+      }, dynamicAnddynamicToNull()));
       return result;
     }
     static fromIterable(iterable, opts) {
@@ -28363,7 +28366,7 @@
       MapOfK$V()._check(other);
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, KAndVTovoid$()));
+      }, KAndVToNull()));
     }
     get isEmpty() {
       return this[_root] == null;
@@ -29036,7 +29039,7 @@
   addAll(other) {
     other[dartx.forEach](dart.fn((key, value) => {
       this._set(key, value);
-    }, dynamicAnddynamicTovoid()));
+    }, dynamicAnddynamicToNull()));
   }
   containsValue(value) {
     if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
@@ -31493,7 +31496,7 @@
       }
       keyValueList[dartx._set](i++, key);
       keyValueList[dartx._set](i++, value);
-    }, dynamicAnddynamicTovoid()));
+    }, dynamicAnddynamicToNull()));
     if (!allStringKeys) return false;
     this.writeString('{');
     let separator = '"';
@@ -31594,7 +31597,7 @@
       }
       keyValueList[dartx._set](i++, key);
       keyValueList[dartx._set](i++, value);
-    }, dynamicAnddynamicTovoid()));
+    }, dynamicAnddynamicToNull()));
     if (!allStringKeys) return false;
     this.writeString('{\n');
     this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
@@ -33840,7 +33843,7 @@
         sb.write(": ");
         sb.write(core.Error.safeToString(value));
         i++;
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
     }
     if (this[_existingArgumentNames] == null) {
       return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver])}\n` + dart.str`Arguments: [${sb}]`;
@@ -34166,7 +34169,7 @@
     let result = dart.map({}, core.String, dart.dynamic);
     namedArguments[dartx.forEach](dart.fn((symbol, value) => {
       result[dartx._set](core._symbolToString(symbol), value);
-    }, SymbolAnddynamicTovoid()));
+    }, SymbolAnddynamicToNull()));
     return result;
   }
 };
@@ -35161,7 +35164,7 @@
           dart.throw(new core.UnsupportedError(dart.str`Illegal path character ${segment}`));
         }
       }
-    }, StringTovoid()));
+    }, StringToNull()));
   }
   static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) {
     if (firstSegment === void 0) firstSegment = 0;
@@ -35518,7 +35521,7 @@
           writeParameter(key, value);
         }
       }
-    }, StringAnddynamicTovoid()));
+    }, StringAnddynamicToNull()));
     return result.toString();
   }
   static _makeFragment(fragment, start, end) {
@@ -36506,7 +36509,7 @@
       if (indices != null) indices[dartx.add](buffer.length);
       buffer.write('=');
       buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, value, convert.UTF8, false));
-    }, StringAndStringTovoid())));
+    }, StringAndStringToNull())));
   }
   static _validateMimeType(mimeType) {
     let slashIndex = -1;
@@ -39155,7 +39158,7 @@
         this.error(response);
         this.close();
       }
-    }, dynamicToFutureOr()));
+    }, dynamicToNull()));
   }
   onResume() {
     if (!dart.test(this.nextRunning)) {
@@ -39220,7 +39223,7 @@
       } else {
         this.controller.addError(new io.FileSystemException("Internal error"));
       }
-    }, dynamicToFutureOr()));
+    }, dynamicToNull()));
   }
   [_cleanup]() {
     this.controller.close();
@@ -39530,13 +39533,13 @@
       if (dart.test(this[_atEnd])) {
         this[_closeFile]();
       }
-    }, ListOfintToFutureOr())).catchError(dart.fn((e, s) => {
+    }, ListOfintToNull())).catchError(dart.fn((e, s) => {
       if (!dart.test(this[_unsubscribed])) {
         this[_controller].addError(e, core.StackTrace._check(s));
         this[_closeFile]();
         this[_unsubscribed] = true;
       }
-    }, dynamicAnddynamicTodynamic()));
+    }, dynamicAnddynamicToNull()));
   }
   [_start]() {
     if (dart.notNull(this[_position]) < 0) {
@@ -39557,7 +39560,7 @@
             this[_controller].addError(e, core.StackTrace._check(s));
             this[_readInProgress] = false;
             this[_closeFile]();
-          }, dynamicAnddynamicTodynamic())});
+          }, dynamicAnddynamicToNull())});
       } else {
         onReady(file);
       }
@@ -39643,10 +39646,10 @@
           error(e, stackTrace);
         }
 
-      }, ListOfintTovoid()), {onDone: dart.fn(() => {
+      }, ListOfintToNull()), {onDone: dart.fn(() => {
           completer.complete(this[_file]);
-        }, VoidTovoid()), onError: error, cancelOnError: true});
-    }, RandomAccessFileToFutureOr())).catchError(dart.bind(completer, 'completeError'));
+        }, VoidToNull()), onError: error, cancelOnError: true});
+    }, RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
     return completer.future;
   }
   close() {
@@ -39884,7 +39887,7 @@
           } else {
             completer.complete(builder.takeBytes());
           }
-        }, dynamicTodynamic()), {onError: dart.bind(completer, 'completeError')});
+        }, dynamicToNull()), {onError: dart.bind(completer, 'completeError')});
       }
       dart.fn(read, VoidTovoid());
       read();
@@ -40435,7 +40438,7 @@
     data[dartx._set](0, this[_pointer]());
     return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
       this[_asyncDispatched] = false;
-    }, VoidTodynamic()));
+    }, VoidToNull()));
   }
   [_checkAvailable]() {
     if (dart.test(this[_asyncDispatched])) {
@@ -42072,7 +42075,7 @@
         sb.write(values[dartx._get](i));
       }
       sb.write("\n");
-    }, StringAndListOfStringTovoid()));
+    }, StringAndListOfStringToNull()));
     return sb.toString();
   }
   [_parseCookies]() {
@@ -42284,7 +42287,7 @@
         sb.write(name);
         sb.write("=");
         sb.write(value);
-      }, StringAndStringTovoid()));
+      }, StringAndStringToNull()));
     }
     return sb.toString();
   }
@@ -42432,7 +42435,7 @@
           value = value[dartx.toLowerCase]();
         }
         this[_parameters][dartx._set](lowerCaseKey, value);
-      }, StringAndStringTovoid()));
+      }, StringAndStringToNull()));
     }
     if (charset != null) {
       this[_ensureParameters]();
@@ -42697,7 +42700,7 @@
     this.hasSubscriber = true;
     return this[_stream].handleError(dart.fn(error => {
       dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
-    }, dynamicTodynamic())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+    }, dynamicToNull())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   get dataDone() {
     return this[_dataCompleter].future;
@@ -42920,7 +42923,7 @@
     if (values != null) {
       values[dartx.forEach](dart.fn(value => {
         this[_cookies][dartx.add](io.Cookie.fromSetCookieValue(value));
-      }, StringTovoid()));
+      }, StringToNull()));
     }
     return this[_cookies];
   }
@@ -43144,7 +43147,7 @@
       const targetAddStream = (function() {
         return this[_target].addStream(stream).whenComplete(dart.fn(() => {
           this[_isBound] = false;
-        }, VoidTodynamic()));
+        }, VoidToNull()));
       }).bind(this);
       dart.fn(targetAddStream, VoidToFuture());
       if (this[_controllerInstance] == null) return targetAddStream();
@@ -43162,7 +43165,7 @@
       this[_controllerInstance].close();
       return future.whenComplete(dart.fn(() => {
         this[_isBound] = false;
-      }, VoidTodynamic()));
+      }, VoidToNull()));
     }
     close() {
       if (dart.test(this[_isBound])) {
@@ -43213,7 +43216,7 @@
           } else {
             this[_closeTarget]();
           }
-        }, dynamicToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+        }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
             if (dart.test(this[_isBound])) {
               this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
               this[_controllerCompleter] = null;
@@ -43221,7 +43224,7 @@
             } else {
               this[_completeDoneError](error, core.StackTrace._check(stackTrace));
             }
-          }, dynamicAnddynamicTodynamic())});
+          }, dynamicAnddynamicToNull())});
       }
       return this[_controllerInstance];
     }
@@ -43466,7 +43469,7 @@
     }
     this.close();
     this.done.catchError(dart.fn(_ => {
-    }, dynamicTodynamic()));
+    }, dynamicToNull()));
     return future;
   }
   get connectionInfo() {
@@ -43481,7 +43484,7 @@
     if (this[_deadline] == null) return;
     this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
       this[_httpRequest][_httpConnection].destroy();
-    }, VoidTovoid()));
+    }, VoidToNull()));
   }
   [_writeHeader]() {
     let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
@@ -43546,7 +43549,7 @@
     if (this[_cookies] != null) {
       this[_cookies][dartx.forEach](dart.fn(cookie => {
         this.headers.add(io.HttpHeaders.SET_COOKIE, cookie);
-      }, CookieTovoid()));
+      }, CookieToNull()));
     }
     this.headers[_finalize]();
     offset = this.headers[_write](buffer, offset);
@@ -44050,7 +44053,7 @@
       }
       if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
         drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
-        }, dynamicTodynamic()));
+        }, dynamicToNull()));
       }
     } else {
       drainRequest = false;
@@ -44079,7 +44082,7 @@
     }
     if (dart.test(this.ignoreBody)) {
       stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
-      }, dynamicTodynamic()));
+      }, dynamicToNull()));
       let future = this.writeHeaders();
       if (future != null) {
         return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
@@ -44206,7 +44209,7 @@
         this[_addChunk](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
         this[_pendingChunkedFooter] = 2;
         this[_addChunk](data, ListOfintTovoid()._check(this[_gzipAdd]));
-      }, dynamicTodynamic())));
+      }, dynamicToNull())));
     }
   }
   [_ignoreError](error) {
@@ -44362,28 +44365,28 @@
       if (incoming.statusCode == 100) {
         incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
           this[_subscription].resume();
-        }, dynamicToFutureOr())).catchError(dart.fn((error, stackTrace) => {
+        }, dynamicToNull())).catchError(dart.fn((error, stackTrace) => {
           if (stackTrace === void 0) stackTrace = null;
           this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
           this[_nextResponseCompleter] = null;
-        }, dynamic__Todynamic()));
+        }, dynamic__ToNull()));
       } else {
         this[_nextResponseCompleter].complete(incoming);
         this[_nextResponseCompleter] = null;
       }
-    }, _HttpIncomingTovoid()), {onError: dart.fn((error, stackTrace) => {
+    }, _HttpIncomingToNull()), {onError: dart.fn((error, stackTrace) => {
         if (stackTrace === void 0) stackTrace = null;
         if (this[_nextResponseCompleter] != null) {
           this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
           this[_nextResponseCompleter] = null;
         }
-      }, dynamic__Todynamic()), onDone: dart.fn(() => {
+      }, dynamic__ToNull()), onDone: dart.fn(() => {
         if (this[_nextResponseCompleter] != null) {
           this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
           this[_nextResponseCompleter] = null;
         }
         this.close();
-      }, VoidTovoid())});
+      }, VoidToNull())});
   }
   send(uri, port, method, proxy) {
     if (dart.test(this.closed)) {
@@ -44439,7 +44442,7 @@
           } else {
             this.destroy();
           }
-        }, dynamicToFutureOr()));
+        }, dynamicToNull()));
         if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
           let authInfo = incoming.headers._get("proxy-authentication-info");
           if (authInfo != null && authInfo[dartx.length] == 1) {
@@ -44457,17 +44460,17 @@
           }
         }
         request[_onIncoming](incoming);
-      }, _HttpIncomingToFutureOr())).catchError(dart.fn(error => {
+      }, _HttpIncomingToNull())).catchError(dart.fn(error => {
         dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
-      }, dynamicTodynamic()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
+      }, dynamicToNull()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
         this.destroy();
         request[_onError](error, core.StackTrace._check(stackTrace));
-      }, dynamicAnddynamicTodynamic()));
+      }, dynamicAnddynamicToNull()));
       this[_subscription].resume();
       return s;
     }, dynamicTodynamic()), {onError: dart.fn(e => {
         this.destroy();
-      }, dynamicTodynamic())});
+      }, dynamicToNull())});
     return request;
   }
   detachSocket() {
@@ -44517,7 +44520,7 @@
     this[_idleTimer] = async.Timer.new(this[_httpClient].idleTimeout, dart.fn(() => {
       this[_idleTimer] = null;
       this.close();
-    }, VoidTovoid()));
+    }, VoidToNull()));
   }
 };
 dart.setSignature(io._HttpClientConnection, {
@@ -44641,7 +44644,7 @@
       let completer = async.Completer.new();
       this[_pending].add(dart.fn(() => {
         this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
-      }, VoidTodynamic()));
+      }, VoidToNull()));
       return FutureOf_ConnectionInfo()._check(completer.future);
     }
     let currentBadCertificateCallback = client[_badCertificateCallback];
@@ -44670,7 +44673,7 @@
         this[_connecting] = dart.notNull(this[_connecting]) - 1;
         this[_checkPending]();
         dart.throw(error);
-      }, dynamicTodynamic())});
+      }, dynamicToNull())});
   }
 };
 dart.setSignature(io._ConnectionTarget, {
@@ -45149,7 +45152,7 @@
       this[_httpServer][_markActive](this);
       incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
         if (dart.test(closing)) this.destroy();
-      }, dynamicToFutureOr()));
+      }, dynamicToNull()));
       this[_subscription].pause();
       this[_state] = io._HttpConnection._ACTIVE;
       let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
@@ -45166,17 +45169,17 @@
         } else {
           this.destroy();
         }
-      }, dynamicToFutureOr()), {onError: dart.fn(_ => {
+      }, dynamicToNull()), {onError: dart.fn(_ => {
           this.destroy();
-        }, dynamicTodynamic())});
+        }, dynamicToNull())});
       outgoing.ignoreBody = request.method == "HEAD";
       response[_httpRequest] = request;
       this[_httpServer][_handleRequest](request);
-    }, _HttpIncomingTovoid()), {onDone: dart.fn(() => {
+    }, _HttpIncomingToNull()), {onDone: dart.fn(() => {
         this.destroy();
-      }, VoidTovoid()), onError: dart.fn(error => {
+      }, VoidToNull()), onError: dart.fn(error => {
         this.destroy();
-      }, dynamicTodynamic())});
+      }, dynamicToNull())});
   }
   markIdle() {
     this[_idleMark] = true;
@@ -45392,7 +45395,7 @@
             idle.markIdle();
           }
         }
-      }, TimerTovoid()));
+      }, TimerToNull()));
     }
   }
   listen(onData, opts) {
@@ -45403,11 +45406,11 @@
       socket.setOption(io.SocketOption.TCP_NODELAY, true);
       let connection = new io._HttpConnection(socket, this);
       this[_idleConnections].add(connection);
-    }, SocketTodynamic()), {onError: dart.fn((error, stackTrace) => {
+    }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
         if (!io.HandshakeException.is(error)) {
           this[_controller].addError(error, core.StackTrace._check(stackTrace));
         }
-      }, dynamicAnddynamicTodynamic()), onDone: dart.bind(this[_controller], 'close')});
+      }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller], 'close')});
     return this[_controller].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
   }
   close(opts) {
@@ -45485,11 +45488,11 @@
         dart.assert(conn[_isClosing]);
         result.closing = dart.notNull(result.closing) + 1;
       }
-    }, _HttpConnectionTovoid()));
+    }, _HttpConnectionToNull()));
     this[_idleConnections].forEach(dart.fn(conn => {
       result.idle = dart.notNull(result.idle) + 1;
       dart.assert(conn[_isIdle]);
-    }, _HttpConnectionTovoid()));
+    }, _HttpConnectionToNull()));
     return result;
   }
   get [_serviceTypePath]() {
@@ -45664,7 +45667,7 @@
           dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
         }
       }
-    }, StringTovoid()));
+    }, StringToNull()));
   }
   direct() {
     this.proxies = const || (const = dart.constList([const || (const = dart.const(new io._Proxy.direct()))], io._Proxy));
@@ -46312,7 +46315,7 @@
       if (this[_userOnData] != null) {
         dart.dcall(this[_userOnData], data);
       }
-    }, VoidTovoid()));
+    }, VoidToNull()));
   }
 };
 io._HttpDetachedStreamSubscription[dart.implements] = () => [StreamSubscriptionOfListOfint()];
@@ -46445,17 +46448,17 @@
     super.new();
     this[_controller] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
         this[_paused] = false;
-      }, VoidTovoid()), onPause: dart.fn(() => {
+      }, VoidToNull()), onPause: dart.fn(() => {
         this[_paused] = true;
         this[_pauseStateChanged]();
-      }, VoidTovoid()), onResume: dart.fn(() => {
+      }, VoidToNull()), onResume: dart.fn(() => {
         this[_paused] = false;
         this[_pauseStateChanged]();
-      }, VoidTovoid()), onCancel: dart.fn(() => {
+      }, VoidToNull()), onCancel: dart.fn(() => {
         if (this[_socketSubscription] != null) {
           this[_socketSubscription].cancel();
         }
-      }, VoidTodynamic())});
+      }, VoidToNull())});
     this[_reset]();
   }
   listen(onData, opts) {
@@ -47075,24 +47078,24 @@
         dart.assert(this[_bodyPaused]);
         this[_bodyPaused] = false;
         this[_pauseStateChanged]();
-      }, VoidTovoid()), onPause: dart.fn(() => {
+      }, VoidToNull()), onPause: dart.fn(() => {
         if (!dart.equals(incoming, this[_incoming])) return;
         dart.assert(!dart.test(this[_bodyPaused]));
         this[_bodyPaused] = true;
         this[_pauseStateChanged]();
-      }, VoidTovoid()), onResume: dart.fn(() => {
+      }, VoidToNull()), onResume: dart.fn(() => {
         if (!dart.equals(incoming, this[_incoming])) return;
         dart.assert(this[_bodyPaused]);
         this[_bodyPaused] = false;
         this[_pauseStateChanged]();
-      }, VoidTovoid()), onCancel: dart.fn(() => {
+      }, VoidToNull()), onCancel: dart.fn(() => {
         if (!dart.equals(incoming, this[_incoming])) return;
         if (this[_socketSubscription] != null) {
           this[_socketSubscription].cancel();
         }
         this[_closeIncoming](true);
         this[_controller].close();
-      }, VoidTodynamic())});
+      }, VoidToNull())});
     incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
     this[_bodyPaused] = true;
     this[_pauseStateChanged]();
@@ -48716,7 +48719,7 @@
     let completer = async.Completer.new();
     dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
       completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-    }, dynamicTodynamic()));
+    }, dynamicToNull()));
     return FutureOfSecureSocket()._check(completer.future);
   }
   static secureServer(socket, context, opts) {
@@ -48727,7 +48730,7 @@
     let completer = async.Completer.new();
     dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
       completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-    }, dynamicTodynamic()));
+    }, dynamicToNull()));
     return FutureOfSecureSocket()._check(completer.future);
   }
 };
@@ -48883,11 +48886,11 @@
       } else {
         this[_controller].add(secureConnection);
       }
-    }, RawSecureSocketToFutureOr())).catchError(dart.fn((e, s) => {
+    }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
       if (!dart.test(this[_closed])) {
         this[_controller].addError(e, core.StackTrace._check(s));
       }
-    }, dynamicAnddynamicTodynamic()));
+    }, dynamicAnddynamicToNull()));
   }
   [_onPauseStateChange]() {
     if (dart.test(this[_controller].isPaused)) {
@@ -49467,7 +49470,7 @@
           }
         }
         this[_tryFilter]();
-      }, _FilterStatusToFutureOr())).catchError(dart.bind(this, _reportError));
+      }, _FilterStatusToNull())).catchError(dart.bind(this, _reportError));
     }
   }
   [_readSocketOrBufferedData](bytes) {
@@ -50552,7 +50555,7 @@
         completer.completeError(e, s);
       }
 
-    }, ListOfintTovoid()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
+    }, ListOfintToNull()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
     return completer.future;
   }
   close() {
@@ -51544,9 +51547,9 @@
   bind(stream) {
     stream.listen(dart.fn(request => {
       io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller], 'addError'));
-    }, HttpRequestTovoid()), {onDone: dart.fn(() => {
+    }, HttpRequestToNull()), {onDone: dart.fn(() => {
         this[_controller].close();
-      }, VoidTovoid())});
+      }, VoidToNull())});
     return this[_controller].stream;
   }
   static _upgrade(request, _protocolSelector, compression) {
@@ -51585,7 +51588,7 @@
         response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
         response.close();
         dart.throw(error);
-      }, dynamicTodynamic())).then(io.WebSocket)(upgrade);
+      }, dynamicToNull())).then(io.WebSocket)(upgrade);
     } else {
       return FutureOfWebSocket()._check(upgrade(null));
     }
@@ -51615,7 +51618,7 @@
     let isUpgrade = false;
     request.headers._get(io.HttpHeaders.CONNECTION)[dartx.forEach](dart.fn(value => {
       if (value[dartx.toLowerCase]() == "upgrade") isUpgrade = true;
-    }, StringTovoid()));
+    }, StringToNull()));
     if (!isUpgrade) return false;
     let upgrade = request.headers.value(io.HttpHeaders.UPGRADE);
     if (upgrade == null || upgrade[dartx.toLowerCase]() != "websocket") {
@@ -51810,7 +51813,7 @@
   addFrame(opcode, data) {
     return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
       this[_eventSink].add(e);
-    }, ListOfintTovoid()));
+    }, ListOfintToNull()));
   }
   static createFrame(opcode, data, serverSide, compressed) {
     let mask = !dart.test(serverSide);
@@ -51956,7 +51959,7 @@
     this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
       this[_done]();
       this[_closeCompleter].complete(this.webSocket);
-    }, dynamicToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+    }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
         this[_closed] = true;
         this[_cancel]();
         if (core.ArgumentError.is(error)) {
@@ -51967,7 +51970,7 @@
           this[_done]();
           this[_closeCompleter].complete(this.webSocket);
         }
-      }, dynamicAndStackTraceTodynamic())});
+      }, dynamicAndStackTraceToNull())});
   }
   [_done](error, stackTrace) {
     if (error === void 0) error = null;
@@ -51990,7 +51993,7 @@
     this[_completer] = async.Completer.new();
     this[_subscription] = stream.listen(dart.fn(data => {
       this[_controller].add(data);
-    }, dynamicTovoid()), {onDone: dart.bind(this, _done), onError: dart.bind(this, _done), cancelOnError: true});
+    }, dynamicToNull()), {onDone: dart.bind(this, _done), onError: dart.bind(this, _done), cancelOnError: true});
     if (dart.test(this[_issuedPause])) {
       this[_subscription].pause();
       this[_issuedPause] = false;
@@ -52001,7 +52004,7 @@
     this[_ensureController]();
     const closeSocket = (function() {
       return this.socket.close().catchError(dart.fn(_ => {
-      }, dynamicTodynamic())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
+      }, dynamicToNull())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
     }).bind(this);
     dart.fn(closeSocket, VoidToFuture());
     this[_controller].close();
@@ -52092,7 +52095,7 @@
       function error(message) {
         response.detachSocket().then(dart.dynamic)(dart.fn(socket => {
           socket.destroy();
-        }, SocketToFutureOr()));
+        }, SocketToNull()));
         dart.throw(new io.WebSocketException(message));
       }
       dart.fn(error, StringTovoid());
@@ -52175,7 +52178,7 @@
       } else {
         this[_controller].add(data);
       }
-    }, dynamicTodynamic()), {onError: dart.fn((error, stackTrace) => {
+    }, dynamicToNull()), {onError: dart.fn((error, stackTrace) => {
         if (this[_closeTimer] != null) this[_closeTimer].cancel();
         if (core.FormatException.is(error)) {
           this[_close](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
@@ -52185,7 +52188,7 @@
         this[_closeCode] = this[_outCloseCode];
         this[_closeReason] = this[_outCloseReason];
         this[_controller].close();
-      }, dynamicAnddynamicTodynamic()), onDone: dart.fn(() => {
+      }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
         if (this[_closeTimer] != null) this[_closeTimer].cancel();
         if (this[_readyState] == io.WebSocket.OPEN) {
           this[_readyState] = io.WebSocket.CLOSING;
@@ -52199,12 +52202,12 @@
         this[_closeCode] = transformer.closeCode;
         this[_closeReason] = transformer.closeReason;
         this[_controller].close();
-      }, VoidTodynamic()), cancelOnError: true}));
+      }, VoidToNull()), cancelOnError: true}));
     this[_subscription].pause();
     this[_controller] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription], 'resume'), onCancel: dart.fn(() => {
         this[_subscription].cancel();
         this[_subscription] = null;
-      }, VoidTodynamic()), onPause: dart.bind(this[_subscription], 'pause'), onResume: dart.bind(this[_subscription], 'resume')});
+      }, VoidToNull()), onPause: dart.bind(this[_subscription], 'pause'), onResume: dart.bind(this[_subscription], 'resume')});
     io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
     try {
       dart.dput(this[_socket], _owner, this);
@@ -52231,8 +52234,8 @@
       this[_consumer].add(new io._WebSocketPing());
       this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
         this[_close](io.WebSocketStatus.GOING_AWAY);
-      }, VoidTovoid()));
-    }, VoidTovoid()));
+      }, VoidToNull()));
+    }, VoidToNull()));
   }
   get readyState() {
     return this[_readyState];
@@ -52280,7 +52283,7 @@
           if (this[_subscription] != null) this[_subscription].cancel();
           this[_controller].close();
           io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
-        }, VoidTovoid()));
+        }, VoidToNull()));
       }
     }
     return this[_sink].close();
@@ -52520,11 +52523,11 @@
     controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
         port = isolate.RawReceivePort.new(handleError);
         this.addErrorListener(port.sendPort);
-      }, VoidTovoid()), onCancel: dart.fn(() => {
+      }, VoidToNull()), onCancel: dart.fn(() => {
         this.removeErrorListener(port.sendPort);
         port.close();
         port = null;
-      }, VoidTovoid())});
+      }, VoidToNull())});
     return controller.stream;
   }
 };
@@ -54789,7 +54792,7 @@
       let completer = CompleterOfIdbFactory().sync();
       request[dartx.onSuccess].listen(dart.fn(e => {
         completer.complete(this);
-      }, EventTovoid()));
+      }, EventToNull()));
       request[dartx.onError].listen(dart.bind(completer, 'completeError'));
       return completer.future;
     } catch (e) {
@@ -54848,7 +54851,7 @@
     request[dartx.onSuccess].listen(dart.fn(e => {
       let result = indexed_db._cast(T)(request[dartx.result]);
       completer.complete(result);
-    }, EventTovoid()));
+    }, EventToNull()));
     request[dartx.onError].listen(dart.bind(completer, 'completeError'));
     return completer.future;
   };
@@ -55320,7 +55323,7 @@
             cursor[dartx.next]();
           }
         }
-      }, EventTovoid()));
+      }, EventToNull()));
       return controller.stream;
     };
   }
@@ -55493,15 +55496,15 @@
     let completer = CompleterOfDatabase().new();
     this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
       completer.complete(this[dartx.db]);
-    }, EventToFutureOr()));
+    }, EventToNull()));
     this[dartx.onError].first.then(dart.dynamic)(dart.fn(e => {
       completer.completeError(e);
-    }, EventToFutureOr()));
+    }, EventToNull()));
     this[dartx.onAbort].first.then(dart.dynamic)(dart.fn(e => {
       if (!dart.test(completer.isCompleted)) {
         completer.completeError(e);
       }
-    }, EventToFutureOr()));
+    }, EventToNull()));
     return completer.future;
   }
   static _() {
@@ -61638,9 +61641,9 @@
     let completer = CompleterOfFileSystem().new();
     this[_webkitRequestFileSystem](type, size, dart.fn(value => {
       completer.complete(value);
-    }, FileSystemTovoid()), dart.fn(error => {
+    }, FileSystemToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [dartx.requestFileSystemSync](...args) {
@@ -61656,9 +61659,9 @@
     let completer = CompleterOfEntry().new();
     this[_webkitResolveLocalFileSystemUrl](url, dart.fn(value => {
       completer.complete(value);
-    }, EntryTovoid()), dart.fn(error => {
+    }, EntryToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [dartx.atob](...args) {
@@ -69298,7 +69301,7 @@
     let completer = CompleterOfString().new();
     this[_getAsString](dart.fn(value => {
       completer.complete(value);
-    }, StringTovoid()));
+    }, StringToNull()));
     return completer.future;
   }
   [dartx.getAsEntry](...args) {
@@ -69840,9 +69843,9 @@
     let completer = CompleterOfEntry().new();
     this[_copyTo](parent, {name: name, successCallback: dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), errorCallback: dart.fn(error => {
+      }, EntryToNull()), errorCallback: dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid())});
+      }, FileErrorToNull())});
     return completer.future;
   }
   [_getMetadata](...args) {
@@ -69852,9 +69855,9 @@
     let completer = CompleterOfMetadata().new();
     this[_getMetadata](dart.fn(value => {
       completer.complete(value);
-    }, MetadataTovoid()), dart.fn(error => {
+    }, MetadataToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [_getParent](...args) {
@@ -69864,9 +69867,9 @@
     let completer = CompleterOfEntry().new();
     this[_getParent](dart.fn(value => {
       completer.complete(value);
-    }, EntryTovoid()), dart.fn(error => {
+    }, EntryToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [_moveTo](...args) {
@@ -69877,9 +69880,9 @@
     let completer = CompleterOfEntry().new();
     this[_moveTo](parent, {name: name, successCallback: dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), errorCallback: dart.fn(error => {
+      }, EntryToNull()), errorCallback: dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid())});
+      }, FileErrorToNull())});
     return completer.future;
   }
   [_remove](...args) {
@@ -69889,9 +69892,9 @@
     let completer = async.Completer.new();
     this[_remove](dart.fn(() => {
       completer.complete();
-    }, VoidTovoid()), dart.fn(error => {
+    }, VoidToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [dartx.toUrl](...args) {
@@ -69990,9 +69993,9 @@
     let completer = CompleterOfEntry().new();
     this[__getDirectory](path, {options: options, successCallback: dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), errorCallback: dart.fn(error => {
+      }, EntryToNull()), errorCallback: dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid())});
+      }, FileErrorToNull())});
     return completer.future;
   }
   [__getFile](path, opts) {
@@ -70034,9 +70037,9 @@
     let completer = CompleterOfEntry().new();
     this[__getFile](path, {options: options, successCallback: dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), errorCallback: dart.fn(error => {
+      }, EntryToNull()), errorCallback: dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid())});
+      }, FileErrorToNull())});
     return completer.future;
   }
   [_removeRecursively](...args) {
@@ -70046,9 +70049,9 @@
     let completer = async.Completer.new();
     this[_removeRecursively](dart.fn(() => {
       completer.complete();
-    }, VoidTovoid()), dart.fn(error => {
+    }, VoidToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
 };
@@ -70092,9 +70095,9 @@
     let completer = CompleterOfListOfEntry().new();
     this[_readEntries](dart.fn(value => {
       completer.complete(value);
-    }, ListOfEntryTovoid()), dart.fn(error => {
+    }, ListOfEntryToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
 };
@@ -73476,9 +73479,9 @@
     let completer = CompleterOfFileWriter().new();
     this[_createWriter](dart.fn(value => {
       completer.complete(value);
-    }, FileWriterTovoid()), dart.fn(error => {
+    }, FileWriterToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [_file](...args) {
@@ -73488,9 +73491,9 @@
     let completer = CompleterOfFile().new();
     this[_file](dart.fn(value => {
       completer.complete(value);
-    }, FileTovoid()), dart.fn(error => {
+    }, FileToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
 };
@@ -74554,9 +74557,9 @@
     try {
       this[_getCurrentPosition](dart.fn(position => {
         completer.complete(this[_ensurePosition](position));
-      }, GeopositionTovoid()), dart.fn(error => {
+      }, GeopositionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, PositionErrorTovoid()), options);
+      }, PositionErrorToNull()), options);
     } catch (e) {
       let stacktrace = dart.stackTrace(e);
       completer.completeError(e, stacktrace);
@@ -74584,13 +74587,13 @@
         dart.assert(watchId == null);
         watchId = this[_watchPosition](dart.fn(position => {
           controller.add(this[_ensurePosition](position));
-        }, GeopositionTovoid()), dart.fn(error => {
+        }, GeopositionToNull()), dart.fn(error => {
           controller.addError(error);
-        }, PositionErrorTovoid()), options);
-      }, VoidTovoid()), onCancel: dart.fn(() => {
+        }, PositionErrorToNull()), options);
+      }, VoidToNull()), onCancel: dart.fn(() => {
         dart.assert(watchId != null);
         this[_clearWatch](watchId);
-      }, VoidTodynamic())});
+      }, VoidToNull())});
     return controller.stream;
   }
   [_ensurePosition](domPosition) {
@@ -75994,7 +75997,7 @@
     let parts = [];
     data[dartx.forEach](dart.fn((key, value) => {
       parts[dartx.add](dart.str`${core.Uri.encodeQueryComponent(key)}=` + dart.str`${core.Uri.encodeQueryComponent(value)}`);
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
     let formData = parts[dartx.join]('&');
     if (requestHeaders == null) {
       requestHeaders = dart.map({}, core.String, core.String);
@@ -76028,7 +76031,7 @@
     if (requestHeaders != null) {
       requestHeaders[dartx.forEach](dart.fn((header, value) => {
         xhr[dartx.setRequestHeader](header, value);
-      }, StringAndStringTovoid()));
+      }, StringAndStringToNull()));
     }
     if (onProgress != null) {
       xhr[dartx.onProgress].listen(onProgress);
@@ -76043,7 +76046,7 @@
       } else {
         completer.completeError(e);
       }
-    }, ProgressEventTovoid()));
+    }, ProgressEventToNull()));
     xhr[dartx.onError].listen(dart.bind(completer, 'completeError'));
     if (sendData != null) {
       xhr[dartx.send](sendData);
@@ -76080,13 +76083,13 @@
     }
     let xhr = new XDomainRequest();
     xhr.open(method, url);
-    xhr.onload = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+    xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
       let response = xhr.responseText;
       completer.complete(response);
-    }, dynamicTodynamic()), 1);
-    xhr.onerror = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+    }, dynamicToNull()), 1);
+    xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
       completer.completeError(e);
-    }, dynamicTodynamic()), 1);
+    }, dynamicToNull()), 1);
     xhr.onprogress = {};
     xhr.ontimeout = {};
     xhr.timeout = Number.MAX_VALUE;
@@ -79963,7 +79966,7 @@
     let completer = CompleterOfListOfSourceInfo().new();
     html.MediaStreamTrack._getSources(dart.fn(value => {
       completer.complete(value);
-    }, ListOfSourceInfoTovoid()));
+    }, ListOfSourceInfoToNull()));
     return completer.future;
   }
   [dartx.stop](...args) {
@@ -81184,7 +81187,7 @@
     function override(key, value) {
       if (value != null) html.MutationObserver._add(parsedOptions, core.String._check(key), value);
     }
-    dart.fn(override, dynamicAnddynamicTodynamic());
+    dart.fn(override, dynamicAnddynamicToNull());
     override('childList', childList);
     override('attributes', attributes);
     override('characterData', characterData);
@@ -81350,9 +81353,9 @@
     this[_ensureGetUserMedia]();
     this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
       completer.complete(stream);
-    }, MediaStreamTovoid()), dart.fn(error => {
+    }, MediaStreamToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, NavigatorUserMediaErrorTovoid()));
+    }, NavigatorUserMediaErrorToNull()));
     return completer.future;
   }
   [_ensureGetUserMedia]() {
@@ -82224,7 +82227,7 @@
     let completer = CompleterOfString().new();
     html.Notification._requestPermission(dart.fn(value => {
       completer.complete(value);
-    }, StringTovoid()));
+    }, StringToNull()));
     return completer.future;
   }
   get [dartx.onClick]() {
@@ -85239,9 +85242,9 @@
     let completer = CompleterOfRtcSessionDescription().new();
     this[_createOffer](dart.fn(value => {
       completer.complete(value);
-    }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+    }, RtcSessionDescriptionToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, StringTovoid()), mediaConstraints);
+    }, StringToNull()), mediaConstraints);
     return completer.future;
   }
   [dartx.createAnswer](mediaConstraints) {
@@ -85249,16 +85252,16 @@
     let completer = CompleterOfRtcSessionDescription().new();
     this[_createAnswer](dart.fn(value => {
       completer.complete(value);
-    }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+    }, RtcSessionDescriptionToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, StringTovoid()), mediaConstraints);
+    }, StringToNull()), mediaConstraints);
     return completer.future;
   }
   [dartx.getStats](selector) {
     let completer = CompleterOfRtcStatsResponse().new();
     this[_getStats](dart.fn(value => {
       completer.complete(value);
-    }, RtcStatsResponseTovoid()), selector);
+    }, RtcStatsResponseToNull()), selector);
     return completer.future;
   }
   static _() {
@@ -85374,9 +85377,9 @@
     let completer = async.Completer.new();
     this[_setLocalDescription](description, dart.fn(() => {
       completer.complete();
-    }, VoidTovoid()), dart.fn(error => {
+    }, VoidToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, StringTovoid()));
+    }, StringToNull()));
     return completer.future;
   }
   [_setRemoteDescription](...args) {
@@ -85386,9 +85389,9 @@
     let completer = async.Completer.new();
     this[_setRemoteDescription](description, dart.fn(() => {
       completer.complete();
-    }, VoidTovoid()), dart.fn(error => {
+    }, VoidToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, StringTovoid()));
+    }, StringToNull()));
     return completer.future;
   }
   [dartx.updateIce](configuration, mediaConstraints) {
@@ -88206,7 +88209,7 @@
   [dartx.addAll](other) {
     other[dartx.forEach](dart.fn((k, v) => {
       this[dartx._set](k, v);
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
   }
   [dartx.containsValue](value) {
     return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool()));
@@ -92042,7 +92045,7 @@
     let completer = CompleterOfnum().sync();
     this[dartx.requestAnimationFrame](dart.fn(time => {
       completer.complete(time);
-    }, numTovoid()));
+    }, numToNull()));
     return completer.future;
   }
   get [dartx.document]() {
@@ -92497,9 +92500,9 @@
     let completer = CompleterOfFileSystem().new();
     this[__requestFileSystem](type, size, dart.fn(value => {
       completer.complete(value);
-    }, FileSystemTovoid()), dart.fn(error => {
+    }, FileSystemToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [_resolveLocalFileSystemUrl](...args) {
@@ -92509,9 +92512,9 @@
     let completer = CompleterOfEntry().new();
     this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
       completer.complete(value);
-    }, EntryTovoid()), dart.fn(error => {
+    }, EntryToNull()), dart.fn(error => {
       completer.completeError(error);
-    }, FileErrorTovoid()));
+    }, FileErrorToNull()));
     return completer.future;
   }
   [dartx.atob](...args) {
@@ -93201,7 +93204,7 @@
     stream.listen(dart.fn(event => {
       let wrapped = new html._BeforeUnloadEvent(event);
       controller.add(wrapped);
-    }, BeforeUnloadEventTovoid()));
+    }, BeforeUnloadEventToNull()));
     return controller.stream;
   }
   getEventType(target) {
@@ -94907,7 +94910,7 @@
   addAll(other) {
     other[dartx.forEach](dart.fn((k, v) => {
       this._set(k, v);
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
   }
   containsValue(value) {
     for (let v of this.values) {
@@ -95094,7 +95097,7 @@
   addAll(other) {
     other[dartx.forEach](dart.fn((k, v) => {
       this._set(k, v);
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
   }
   containsValue(value) {
     return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool()));
@@ -95125,7 +95128,7 @@
       if (dart.test(this[_matches](key))) {
         f(this[_strip](key), value);
       }
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
   }
   get keys() {
     let keys = JSArrayOfString().of([]);
@@ -95133,7 +95136,7 @@
       if (dart.test(this[_matches](key))) {
         keys[dartx.add](this[_strip](key));
       }
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
     return keys;
   }
   get values() {
@@ -95142,7 +95145,7 @@
       if (dart.test(this[_matches](key))) {
         values[dartx.add](value);
       }
-    }, StringAndStringTovoid()));
+    }, StringAndStringToNull()));
     return values;
   }
   get length() {
@@ -98399,7 +98402,7 @@
       if (request[dartx.readyState] == html.HttpRequest.DONE) {
         onComplete(request);
       }
-    }, ProgressEventTovoid()));
+    }, ProgressEventToNull()));
     request[dartx.send]();
     return request;
   }
@@ -99145,7 +99148,7 @@
       this.writeSlot(slot, copy);
       e[dartx.forEach](dart.fn((key, value) => {
         this.putIntoMap(copy, key, this.walk(value));
-      }, dynamicAnddynamicTovoid()));
+      }, dynamicAnddynamicToNull()));
       return copy;
     }
     if (core.List.is(e)) {
@@ -99354,7 +99357,7 @@
   }
   dict[dartx.forEach](dart.fn((key, value) => {
     object[key] = value;
-  }, StringAnddynamicTovoid()));
+  }, StringAnddynamicToNull()));
   return object;
 };
 dart.fn(html_common.convertDartToNative_Dictionary, Map__Todynamic());
@@ -107350,13 +107353,13 @@
     let completer = CompleterOfAudioBuffer().new();
     this[_decodeAudioData](audioData, dart.fn(value => {
       completer.complete(value);
-    }, AudioBufferTovoid()), dart.fn(error => {
+    }, AudioBufferToNull()), dart.fn(error => {
       if (error == null) {
         completer.completeError('');
       } else {
         completer.completeError(error);
       }
-    }, AudioBufferTovoid()));
+    }, AudioBufferToNull()));
     return completer.future;
   }
 };
diff --git a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
index ababd63..b313c6a 100644
--- a/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
+++ b/pkg/dev_compiler/lib/js/legacy/dart_sdk.js
@@ -550,6 +550,7 @@
   let StreamControllerOfGeoposition = () => (StreamControllerOfGeoposition = dart.constFn(async.StreamController$(html$.Geoposition)))();
   let _CustomEventStreamProviderOfEvent = () => (_CustomEventStreamProviderOfEvent = dart.constFn(html$._CustomEventStreamProvider$(html$.Event)))();
   let CompleterOfHttpRequest = () => (CompleterOfHttpRequest = dart.constFn(async.Completer$(html$.HttpRequest)))();
+  let dynamicToNull = () => (dynamicToNull = dart.constFn(dart.functionType(core.Null, [dart.dynamic])))();
   let ProgressEventTovoid = () => (ProgressEventTovoid = dart.constFn(dart.functionType(dart.void, [html$.ProgressEvent])))();
   let ListOfMap = () => (ListOfMap = dart.constFn(core.List$(core.Map)))();
   let ListOfMediaStreamTrack = () => (ListOfMediaStreamTrack = dart.constFn(core.List$(html$.MediaStreamTrack)))();
@@ -655,13 +656,12 @@
   let dynamicToObject = () => (dynamicToObject = dart.constFn(dart.definiteFunctionType(core.Object, [dart.dynamic])))();
   let dynamicAnddynamicToString = () => (dynamicAnddynamicToString = dart.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynamic])))();
   let dynamicAndStringTobool = () => (dynamicAndStringTobool = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic, core.String])))();
-  let intAnddynamicTovoid = () => (intAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, dart.dynamic])))();
+  let intAnddynamicToNull = () => (intAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.int, dart.dynamic])))();
   let ObjectAndObjectToObject = () => (ObjectAndObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object, core.Object])))();
   let StringTobool$ = () => (StringTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [core.String])))();
   let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [dart.dynamic])))();
-  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
-  let StringAndObjectTovoid = () => (StringAndObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.Object])))();
-  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
+  let dynamicAnddynamicToNull = () => (dynamicAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, dart.dynamic])))();
+  let StringAndObjectToNull = () => (StringAndObjectToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.Object])))();
   let StringToNameValuePair = () => (StringToNameValuePair = dart.constFn(dart.definiteFunctionType(_debugger.NameValuePair, [core.String])))();
   let VoidTodynamic$ = () => (VoidTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
   let StringAndString__Todynamic = () => (StringAndString__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String, core.String], [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -675,19 +675,22 @@
   let FunctionTovoid = () => (FunctionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Function])))();
   let StringAndStringToString$ = () => (StringAndStringToString$ = dart.constFn(dart.definiteFunctionType(core.String, [core.String, core.String])))();
   let TypeAndStringTodynamic = () => (TypeAndStringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.String])))();
+  let dynamicAnddynamicTodynamic$ = () => (dynamicAnddynamicTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, dart.dynamic])))();
   let dynamicAnddynamicToint = () => (dynamicAnddynamicToint = dart.constFn(dart.definiteFunctionType(core.int, [dart.dynamic, dart.dynamic])))();
   let ListOfEToListOfE = () => (ListOfEToListOfE = dart.constFn(dart.definiteFunctionType(E => [core.List$(E), [core.List$(E)]])))();
   let StringTovoid$ = () => (StringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String])))();
   let _IsolateContextAndFunctionTodynamic = () => (_IsolateContextAndFunctionTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [_isolate_helper._IsolateContext, core.Function])))();
   let VoidTobool = () => (VoidTobool = dart.constFn(dart.definiteFunctionType(core.bool, [])))();
   let VoidTo_IsolateContext = () => (VoidTo_IsolateContext = dart.constFn(dart.definiteFunctionType(_isolate_helper._IsolateContext, [])))();
+  let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
+  let dynamicAnddynamicTovoid$ = () => (dynamicAnddynamicTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic])))();
   let VoidTovoid$ = () => (VoidTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [])))();
-  let ListToFutureOr = () => (ListToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [core.List])))();
-  let StringTodynamic = () => (StringTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.String])))();
-  let dynamicToFutureOr$ = () => (dynamicToFutureOr$ = dart.constFn(dart.definiteFunctionType(async.FutureOr, [dart.dynamic])))();
-  let TimerTovoid$ = () => (TimerTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [async.Timer])))();
+  let ListToNull = () => (ListToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.List])))();
+  let StringToNull = () => (StringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String])))();
+  let dynamicToNull$ = () => (dynamicToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic])))();
+  let TimerToNull = () => (TimerToNull = dart.constFn(dart.definiteFunctionType(core.Null, [async.Timer])))();
   let dynamicToFuture = () => (dynamicToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [dart.dynamic])))();
-  let boolTodynamic = () => (boolTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.bool])))();
+  let boolToNull = () => (boolToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.bool])))();
   let dynamicAndStackTraceTovoid = () => (dynamicAndStackTraceTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, core.StackTrace])))();
   let VoidToFuture = () => (VoidToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [])))();
   let VoidToint = () => (VoidToint = dart.constFn(dart.definiteFunctionType(core.int, [])))();
@@ -730,7 +733,7 @@
   let dynamicToSymbol = () => (dynamicToSymbol = dart.constFn(dart.definiteFunctionType(core.Symbol, [dart.dynamic])))();
   let dynamicToMapOfSymbol$dynamic = () => (dynamicToMapOfSymbol$dynamic = dart.constFn(dart.definiteFunctionType(MapOfSymbol$dynamic(), [dart.dynamic])))();
   let TypeAndInvocationTodynamic = () => (TypeAndInvocationTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, core.Invocation])))();
-  let SymbolAnddynamicTovoid = () => (SymbolAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Symbol, dart.dynamic])))();
+  let SymbolAnddynamicToNull = () => (SymbolAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.Symbol, dart.dynamic])))();
   let MapOfSymbol$dynamicTodynamic = () => (MapOfSymbol$dynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [MapOfSymbol$dynamic()])))();
   let dynamicToTypeMirror = () => (dynamicToTypeMirror = dart.constFn(dart.definiteFunctionType(mirrors.TypeMirror, [dart.dynamic])))();
   let dynamicAnddynamicAnddynamicTovoid = () => (dynamicAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic, dart.dynamic])))();
@@ -743,11 +746,12 @@
   let VoidToObject$ = () => (VoidToObject$ = dart.constFn(dart.definiteFunctionType(core.Object, [])))();
   let _FutureAnddynamicAnddynamicTovoid = () => (_FutureAnddynamicAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._Future, dart.dynamic, dart.dynamic])))();
   let ObjectToObject = () => (ObjectToObject = dart.constFn(dart.definiteFunctionType(core.Object, [core.Object])))();
-  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [dart.dynamic])))();
+  let dynamic__ToNull = () => (dynamic__ToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [dart.dynamic])))();
   let dynamicTo_Future = () => (dynamicTo_Future = dart.constFn(dart.definiteFunctionType(async._Future, [dart.dynamic])))();
   let _AsyncCallbackTovoid = () => (_AsyncCallbackTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async._AsyncCallback])))();
+  let FnToNull = () => (FnToNull = dart.constFn(dart.definiteFunctionType(core.Null, [VoidTovoid()])))();
   let _NotificationHandlerToFuture = () => (_NotificationHandlerToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [async._NotificationHandler])))();
-  let dynamicAndStackTraceTodynamic = () => (dynamicAndStackTraceTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic, core.StackTrace])))();
+  let dynamicAndStackTraceToNull = () => (dynamicAndStackTraceToNull = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic, core.StackTrace])))();
   let dynamic__Tovoid = () => (dynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic], [core.StackTrace])))();
   let FnAndFnAndFnTodynamic = () => (FnAndFnAndFnTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [VoidTodynamic(), dynamicTodynamic(), ZoneBinaryCallbackOfdynamic$dynamic$StackTrace()])))();
   let StreamSubscriptionAnd_FutureAnddynamic__Tovoid = () => (StreamSubscriptionAnd_FutureAnddynamic__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [async.StreamSubscription, async._Future, dart.dynamic, core.StackTrace])))();
@@ -788,10 +792,11 @@
   let ObjectToint = () => (ObjectToint = dart.constFn(dart.definiteFunctionType(core.int, [core.Object])))();
   let ObjectTovoid = () => (ObjectTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.Object])))();
   let StringAndStringTovoid$ = () => (StringAndStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, core.String])))();
-  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
+  let StringAnddynamicToNull = () => (StringAnddynamicToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, dart.dynamic])))();
   let MapOfString$StringAndStringToMapOfString$String = () => (MapOfString$StringAndStringToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [MapOfString$String(), core.String])))();
   let intAndintAndintTovoid = () => (intAndintAndintTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.int, core.int, core.int])))();
   let String__Tovoid = () => (String__Tovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], [dart.dynamic])))();
+  let StringAndStringToNull = () => (StringAndStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, core.String])))();
   let __Tobool = () => (__Tobool = dart.constFn(dart.definiteFunctionType(core.bool, [], {when: core.bool, message: core.String})))();
   let String__Tovoid$ = () => (String__Tovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String], {time: core.DateTime, sequenceNumber: core.int, level: core.int, name: core.String, zone: async.Zone, error: core.Object, stackTrace: core.StackTrace})))();
   let StringAndServiceExtensionHandlerTovoid = () => (StringAndServiceExtensionHandlerTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, developer.ServiceExtensionHandler])))();
@@ -816,10 +821,10 @@
   let dynamicToFutureOrOfString = () => (dynamicToFutureOrOfString = dart.constFn(dart.definiteFunctionType(FutureOrOfString(), [dart.dynamic])))();
   let dynamicToFutureOrOfbool = () => (dynamicToFutureOrOfbool = dart.constFn(dart.definiteFunctionType(FutureOrOfbool(), [dart.dynamic])))();
   let dynamicToFutureOrOfint = () => (dynamicToFutureOrOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfint(), [dart.dynamic])))();
-  let ListOfintToFutureOr = () => (ListOfintToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [ListOfint()])))();
+  let ListOfintToNull = () => (ListOfintToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfint()])))();
   let RandomAccessFileTovoid = () => (RandomAccessFileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.RandomAccessFile])))();
   let RandomAccessFileToFutureOr = () => (RandomAccessFileToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RandomAccessFile])))();
-  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+  let RandomAccessFileToNull = () => (RandomAccessFileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RandomAccessFile])))();
   let RandomAccessFileToFutureOfRandomAccessFile = () => (RandomAccessFileToFutureOfRandomAccessFile = dart.constFn(dart.definiteFunctionType(FutureOfRandomAccessFile(), [io.RandomAccessFile])))();
   let dynamicTo_File = () => (dynamicTo_File = dart.constFn(dart.definiteFunctionType(io._File, [dart.dynamic])))();
   let FileSystemEntityTo_File = () => (FileSystemEntityTo_File = dart.constFn(dart.definiteFunctionType(io._File, [io.FileSystemEntity])))();
@@ -836,7 +841,8 @@
   let dynamicToFutureOrOfListOfint = () => (dynamicToFutureOrOfListOfint = dart.constFn(dart.definiteFunctionType(FutureOrOfListOfint(), [dart.dynamic])))();
   let dynamicToFileStat = () => (dynamicToFileStat = dart.constFn(dart.definiteFunctionType(io.FileStat, [dart.dynamic])))();
   let StringAndListOfStringToListOfString = () => (StringAndListOfStringToListOfString = dart.constFn(dart.definiteFunctionType(ListOfString(), [core.String, ListOfString()])))();
-  let StringAndListOfStringTovoid$ = () => (StringAndListOfStringTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, ListOfString()])))();
+  let ListOfintTovoid$ = () => (ListOfintTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint()])))();
+  let StringAndListOfStringToNull = () => (StringAndListOfStringToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.String, ListOfString()])))();
   let CookieToString = () => (CookieToString = dart.constFn(dart.definiteFunctionType(core.String, [io.Cookie])))();
   let CookieTobool = () => (CookieTobool = dart.constFn(dart.definiteFunctionType(core.bool, [io.Cookie])))();
   let _HttpClientRequestToFutureOfHttpClientResponse = () => (_HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io._HttpClientRequest])))();
@@ -847,15 +853,14 @@
   let _CredentialsTovoid = () => (_CredentialsTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._Credentials])))();
   let _AuthenticationSchemeAndStringToFuture = () => (_AuthenticationSchemeAndStringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [io._AuthenticationScheme, core.String])))();
   let dynamicToFutureOrOfHttpClientResponse = () => (dynamicToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [dart.dynamic])))();
-  let CookieTovoid = () => (CookieTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.Cookie])))();
+  let CookieToNull = () => (CookieToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Cookie])))();
   let ListToFutureOrOfHttpClientResponse = () => (ListToFutureOrOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOrOfHttpClientResponse(), [core.List])))();
   let HttpClientResponseTovoid = () => (HttpClientResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpClientResponse])))();
   let dynamicToIterable = () => (dynamicToIterable = dart.constFn(dart.definiteFunctionType(core.Iterable, [dart.dynamic])))();
   let dynamicTo_HttpOutboundMessage = () => (dynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic])))();
   let dynamicAnddynamicTo_HttpOutboundMessage = () => (dynamicAnddynamicTo_HttpOutboundMessage = dart.constFn(dart.definiteFunctionType(io._HttpOutboundMessage, [dart.dynamic, dart.dynamic])))();
-  let dynamic__Todynamic$ = () => (dynamic__Todynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], [core.StackTrace])))();
-  let _HttpIncomingTovoid$ = () => (_HttpIncomingTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpIncoming])))();
-  let _HttpIncomingToFutureOr = () => (_HttpIncomingToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._HttpIncoming])))();
+  let dynamic__ToNull$ = () => (dynamic__ToNull$ = dart.constFn(dart.definiteFunctionType(core.Null, [dart.dynamic], [core.StackTrace])))();
+  let _HttpIncomingToNull = () => (_HttpIncomingToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpIncoming])))();
   let dynamicTo_DetachedSocket = () => (dynamicTo_DetachedSocket = dart.constFn(dart.definiteFunctionType(io._DetachedSocket, [dart.dynamic])))();
   let SecureSocketTo_HttpClientConnection = () => (SecureSocketTo_HttpClientConnection = dart.constFn(dart.definiteFunctionType(io._HttpClientConnection, [io.SecureSocket])))();
   let HttpClientResponseToFutureOfSecureSocket = () => (HttpClientResponseToFutureOfSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfSecureSocket(), [io.HttpClientResponse])))();
@@ -872,8 +877,8 @@
   let _SiteCredentialsAnd_CredentialsTo_SiteCredentials = () => (_SiteCredentialsAnd_CredentialsTo_SiteCredentials = dart.constFn(dart.definiteFunctionType(io._SiteCredentials, [io._SiteCredentials, io._Credentials])))();
   let ServerSocketTo_HttpServer = () => (ServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.ServerSocket])))();
   let SecureServerSocketTo_HttpServer = () => (SecureServerSocketTo_HttpServer = dart.constFn(dart.definiteFunctionType(io._HttpServer, [io.SecureServerSocket])))();
-  let SocketTodynamic = () => (SocketTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [io.Socket])))();
-  let _HttpConnectionTovoid = () => (_HttpConnectionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io._HttpConnection])))();
+  let SocketToNull = () => (SocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.Socket])))();
+  let _HttpConnectionToNull = () => (_HttpConnectionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._HttpConnection])))();
   let _HttpConnectionToMap = () => (_HttpConnectionToMap = dart.constFn(dart.definiteFunctionType(core.Map, [io._HttpConnection])))();
   let _FileResourceInfoToMapOfString$String = () => (_FileResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._FileResourceInfo])))();
   let _ProcessResourceInfoToMapOfString$String = () => (_ProcessResourceInfoToMapOfString$String = dart.constFn(dart.definiteFunctionType(MapOfString$String(), [io._ProcessResourceInfo])))();
@@ -887,22 +892,22 @@
   let RawSecureSocketToSecureSocket = () => (RawSecureSocketToSecureSocket = dart.constFn(dart.definiteFunctionType(io.SecureSocket, [io.RawSecureSocket])))();
   let dynamicToFutureOfRawSecureSocket = () => (dynamicToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [dart.dynamic])))();
   let RawServerSocketToRawSecureServerSocket = () => (RawServerSocketToRawSecureServerSocket = dart.constFn(dart.definiteFunctionType(io.RawSecureServerSocket, [io.RawServerSocket])))();
-  let RawSecureSocketToFutureOr = () => (RawSecureSocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.RawSecureSocket])))();
+  let RawSecureSocketToNull = () => (RawSecureSocketToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.RawSecureSocket])))();
   let RawSocketToFutureOfRawSecureSocket = () => (RawSocketToFutureOfRawSecureSocket = dart.constFn(dart.definiteFunctionType(FutureOfRawSecureSocket(), [io.RawSocket])))();
-  let _FilterStatusToFutureOr = () => (_FilterStatusToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io._FilterStatus])))();
+  let _FilterStatusToNull = () => (_FilterStatusToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io._FilterStatus])))();
   let intToint = () => (intToint = dart.constFn(dart.definiteFunctionType(core.int, [core.int])))();
   let dynamicTo_FilterStatus = () => (dynamicTo_FilterStatus = dart.constFn(dart.definiteFunctionType(io._FilterStatus, [dart.dynamic])))();
   let ListOfintAndStringTovoid = () => (ListOfintAndStringTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfint(), core.String])))();
   let dynamicToStdioType = () => (dynamicToStdioType = dart.constFn(dart.definiteFunctionType(io.StdioType, [dart.dynamic])))();
   let EventSinkTo_WebSocketProtocolTransformer = () => (EventSinkTo_WebSocketProtocolTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketProtocolTransformer, [async.EventSink])))();
   let WebSocketTovoid = () => (WebSocketTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [io.WebSocket])))();
-  let HttpRequestTovoid$ = () => (HttpRequestTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [io.HttpRequest])))();
+  let HttpRequestToNull = () => (HttpRequestToNull = dart.constFn(dart.definiteFunctionType(core.Null, [io.HttpRequest])))();
   let SocketTo_WebSocketImpl = () => (SocketTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [io.Socket])))();
   let StringToFuture = () => (StringToFuture = dart.constFn(dart.definiteFunctionType(async.Future, [core.String])))();
   let EventSinkOfListOfintTo_WebSocketOutgoingTransformer = () => (EventSinkOfListOfintTo_WebSocketOutgoingTransformer = dart.constFn(dart.definiteFunctionType(io._WebSocketOutgoingTransformer, [EventSinkOfListOfint()])))();
   let dynamicTo_WebSocketImpl = () => (dynamicTo_WebSocketImpl = dart.constFn(dart.definiteFunctionType(io._WebSocketImpl, [dart.dynamic])))();
-  let SocketToFutureOr = () => (SocketToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [io.Socket])))();
   let HttpClientResponseToFutureOfWebSocket = () => (HttpClientResponseToFutureOfWebSocket = dart.constFn(dart.definiteFunctionType(FutureOfWebSocket(), [io.HttpClientResponse])))();
+  let StringAnddynamicTovoid = () => (StringAnddynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.String, dart.dynamic])))();
   let HttpClientRequestToFutureOfHttpClientResponse = () => (HttpClientRequestToFutureOfHttpClientResponse = dart.constFn(dart.definiteFunctionType(FutureOfHttpClientResponse(), [io.HttpClientRequest])))();
   let dynamicToMap = () => (dynamicToMap = dart.constFn(dart.definiteFunctionType(core.Map, [dart.dynamic])))();
   let ListToIsolate = () => (ListToIsolate = dart.constFn(dart.definiteFunctionType(isolate.Isolate, [core.List])))();
@@ -921,36 +926,35 @@
   let VoidToMirrorSystem = () => (VoidToMirrorSystem = dart.constFn(dart.definiteFunctionType(mirrors.MirrorSystem, [])))();
   let ObjectToInstanceMirror = () => (ObjectToInstanceMirror = dart.constFn(dart.definiteFunctionType(mirrors.InstanceMirror, [core.Object])))();
   let TypeToClassMirror = () => (TypeToClassMirror = dart.constFn(dart.definiteFunctionType(mirrors.ClassMirror, [core.Type])))();
-  let EventTovoid$ = () => (EventTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Event])))();
+  let EventToNull = () => (EventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Event])))();
   let RequestToFutureOfT = () => (RequestToFutureOfT = dart.constFn(dart.definiteFunctionType(T => [async.Future$(T), [indexed_db.Request]])))();
   let dynamicToTo = () => (dynamicToTo = dart.constFn(dart.definiteFunctionType(To => [To, [dart.dynamic]])))();
-  let EventToFutureOr = () => (EventToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [html$.Event])))();
   let NodeTobool$ = () => (NodeTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Node])))();
   let MapOfString$dynamicTobool = () => (MapOfString$dynamicTobool = dart.constFn(dart.definiteFunctionType(core.bool, [MapOfString$dynamic()])))();
   let UriAndListOfStringAnddynamicToFutureOfIsolate = () => (UriAndListOfStringAnddynamicToFutureOfIsolate = dart.constFn(dart.definiteFunctionType(FutureOfIsolate(), [core.Uri, ListOfString(), dart.dynamic])))();
   let TypeAnddynamicTodynamic = () => (TypeAnddynamicTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Type, dart.dynamic])))();
-  let FileSystemTovoid = () => (FileSystemTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileSystem])))();
-  let FileErrorTovoid = () => (FileErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileError])))();
-  let EntryTovoid = () => (EntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Entry])))();
+  let FileSystemToNull = () => (FileSystemToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileSystem])))();
+  let FileErrorToNull = () => (FileErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileError])))();
+  let EntryToNull = () => (EntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Entry])))();
   let dynamicToCssStyleDeclaration = () => (dynamicToCssStyleDeclaration = dart.constFn(dart.definiteFunctionType(html$.CssStyleDeclaration, [dart.dynamic])))();
   let CssStyleDeclarationTovoid = () => (CssStyleDeclarationTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.CssStyleDeclaration])))();
-  let MetadataTovoid = () => (MetadataTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Metadata])))();
-  let ListOfEntryTovoid = () => (ListOfEntryTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfEntry()])))();
+  let MetadataToNull = () => (MetadataToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Metadata])))();
+  let ListOfEntryToNull = () => (ListOfEntryToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfEntry()])))();
   let ElementTobool$ = () => (ElementTobool$ = dart.constFn(dart.definiteFunctionType(core.bool, [html$.Element])))();
-  let FileWriterTovoid = () => (FileWriterTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.FileWriter])))();
-  let FileTovoid = () => (FileTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.File])))();
-  let GeopositionTovoid = () => (GeopositionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Geoposition])))();
-  let PositionErrorTovoid = () => (PositionErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.PositionError])))();
+  let FileWriterToNull = () => (FileWriterToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.FileWriter])))();
+  let FileToNull = () => (FileToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.File])))();
+  let GeopositionToNull = () => (GeopositionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.Geoposition])))();
+  let PositionErrorToNull = () => (PositionErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.PositionError])))();
   let HttpRequestToString = () => (HttpRequestToString = dart.constFn(dart.definiteFunctionType(core.String, [html$.HttpRequest])))();
-  let ProgressEventTovoid$ = () => (ProgressEventTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.ProgressEvent])))();
-  let ListOfSourceInfoTovoid = () => (ListOfSourceInfoTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [ListOfSourceInfo()])))();
-  let MediaStreamTovoid = () => (MediaStreamTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.MediaStream])))();
-  let NavigatorUserMediaErrorTovoid = () => (NavigatorUserMediaErrorTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.NavigatorUserMediaError])))();
-  let RtcSessionDescriptionTovoid = () => (RtcSessionDescriptionTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.RtcSessionDescription])))();
-  let RtcStatsResponseTovoid = () => (RtcStatsResponseTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.RtcStatsResponse])))();
+  let ProgressEventToNull = () => (ProgressEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.ProgressEvent])))();
+  let ListOfSourceInfoToNull = () => (ListOfSourceInfoToNull = dart.constFn(dart.definiteFunctionType(core.Null, [ListOfSourceInfo()])))();
+  let MediaStreamToNull = () => (MediaStreamToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.MediaStream])))();
+  let NavigatorUserMediaErrorToNull = () => (NavigatorUserMediaErrorToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.NavigatorUserMediaError])))();
+  let RtcSessionDescriptionToNull = () => (RtcSessionDescriptionToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcSessionDescription])))();
+  let RtcStatsResponseToNull = () => (RtcStatsResponseToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.RtcStatsResponse])))();
   let OptionElementTobool = () => (OptionElementTobool = dart.constFn(dart.definiteFunctionType(core.bool, [html$.OptionElement])))();
-  let numTovoid = () => (numTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.num])))();
-  let BeforeUnloadEventTovoid = () => (BeforeUnloadEventTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html$.BeforeUnloadEvent])))();
+  let numToNull = () => (numToNull = dart.constFn(dart.definiteFunctionType(core.Null, [core.num])))();
+  let BeforeUnloadEventToNull = () => (BeforeUnloadEventToNull = dart.constFn(dart.definiteFunctionType(core.Null, [html$.BeforeUnloadEvent])))();
   let ElementTovoid$ = () => (ElementTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [html$.Element])))();
   let ElementToCssClassSet = () => (ElementToCssClassSet = dart.constFn(dart.definiteFunctionType(html$.CssClassSet, [html$.Element])))();
   let CssClassSetImplTovoid = () => (CssClassSetImplTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [html_common.CssClassSetImpl])))();
@@ -977,9 +981,9 @@
   let Map__Todynamic = () => (Map__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.Map], [dynamicTovoid()])))();
   let ListOfStringToList = () => (ListOfStringToList = dart.constFn(dart.definiteFunctionType(core.List, [ListOfString()])))();
   let DateTimeTodynamic = () => (DateTimeTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [core.DateTime])))();
-  let dynamic__Todynamic$0 = () => (dynamic__Todynamic$0 = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
+  let dynamic__Todynamic = () => (dynamic__Todynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [dart.dynamic], {mustCopy: dart.dynamic})))();
   let NodeToElement = () => (NodeToElement = dart.constFn(dart.definiteFunctionType(html$.Element, [html$.Node])))();
-  let AudioBufferTovoid = () => (AudioBufferTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [web_audio.AudioBuffer])))();
+  let AudioBufferToNull = () => (AudioBufferToNull = dart.constFn(dart.definiteFunctionType(core.Null, [web_audio.AudioBuffer])))();
   dart.mixin = function(base, ...mixins) {
     class Mixin extends base {}
     for (let m of mixins) {
@@ -1706,10 +1710,7 @@
         return null;
       }
     }
-    if (ret2 === dart.void) return true;
-    if (ret1 === dart.void) {
-      return ret2 === dart.dynamic || ret2 === async.FutureOr;
-    }
+    if (ret1 === dart.void) return dart._isTop(ret2);
     if (!dart._isSubtype(ret1, ret2, isCovariant)) return null;
     return true;
   };
@@ -1730,13 +1731,13 @@
     };
   };
   dart._isBottom = function(type) {
-    return type == dart.bottom;
+    return type == dart.bottom || type == core.Null;
   };
   dart._isTop = function(type) {
     if (dart.getGenericClass(type) === dart.getGenericClass(async.FutureOr)) {
       return dart._isTop(dart.getGenericArgs(type)[0]);
     }
-    return type == core.Object || type == dart.dynamic;
+    return type == core.Object || type == dart.dynamic || type == dart.void;
   };
   dart._isSubtype = function(t1, t2, isCovariant) {
     if (t1 === t2) return true;
@@ -2183,6 +2184,9 @@
     return false;
   };
   dart.is = function(obj, type) {
+    if (obj == null) {
+      return type == core.Null || dart._isTop(type);
+    }
     let result = dart.strongInstanceOf(obj, type);
     if (result !== null) return result;
     let actual = dart.getReifiedType(obj);
@@ -3293,7 +3297,7 @@
       if (dart.notNull(this.length) <= dart.notNull(_debugger._maxSpanLength)) {
         this.asMap()[dartx.forEach](dart.fn((i, element) => {
           children[dartx.add](new _debugger.NameValuePair({name: dart.toString(dart.notNull(i) + dart.notNull(this.start)), value: element}));
-        }, intAnddynamicTovoid()));
+        }, intAnddynamicToNull()));
       } else {
         for (let i = this.start; dart.notNull(i) < dart.notNull(this.end); i = dart.notNull(i) + dart.notNull(this.subsetSize)) {
           let subSpan = new _debugger.IterableSpan(i, math.min(core.int)(this.end, dart.notNull(this.subsetSize) + dart.notNull(i)), this.iterable);
@@ -3694,14 +3698,14 @@
         } else {
           nonGenericProperties._set(core.String._check(name), value);
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
       nonGenericProperties.forEach(dart.fn((name, value) => {
         if (core.Type.is(value)) {
           children.add(_debugger.NameValuePair._check(this.classChild(name, value)));
         } else {
           children.add(new _debugger.NameValuePair({name: name, value: value}));
         }
-      }, StringAndObjectTovoid()));
+      }, StringAndObjectToNull()));
       return children.toList();
     }
     recordGenericParameters(name, genericTypeConstructor) {
@@ -3770,7 +3774,7 @@
       map[dartx.forEach](dart.fn((key, value) => {
         let entryWrapper = new _debugger.MapEntry({key: key, value: value});
         entries.add(new _debugger.NameValuePair({name: dart.toString(entries.length), value: entryWrapper}));
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       _debugger.addMetadataChildren(object, entries);
       return entries.toList();
     }
@@ -9206,11 +9210,11 @@
     if (_isolate_helper._MainFunctionArgs.is(entry)) {
       rootContext.eval(dart.fn(() => {
         dart.dcall(entry, args);
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     } else if (_isolate_helper._MainFunctionArgsMessage.is(entry)) {
       rootContext.eval(dart.fn(() => {
         dart.dcall(entry, args, null);
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     } else {
       rootContext.eval(core.Function._check(entry));
     }
@@ -9652,7 +9656,7 @@
           if (!dart.test(this.runIteration())) return;
           async.Timer.run(next);
         }).bind(this);
-        dart.fn(next, VoidTodynamic$());
+        dart.fn(next, VoidToNull());
         next();
       } else {
         while (dart.test(this.runIteration())) {
@@ -9805,7 +9809,7 @@
           let context = new _isolate_helper._IsolateContext();
           _isolate_helper._globalState.topEventLoop.enqueue(context, dart.fn(() => {
             _isolate_helper.IsolateNatives._startIsolate(entryPoint, ListOfString()._check(args), message, core.bool._check(isSpawnUri), core.bool._check(startPaused), isolate.SendPort._check(replyTo));
-          }, VoidTodynamic$()), 'worker-start');
+          }, VoidToNull()), 'worker-start');
           _isolate_helper._globalState.currentContext = context;
           _isolate_helper._globalState.topEventLoop.run();
           break;
@@ -9855,9 +9859,9 @@
       let replyPort = dart.dindex(msg, 'replyPort');
       _isolate_helper.IsolateNatives.spawn(core.String._check(dart.dindex(msg, 'functionName')), core.String._check(dart.dindex(msg, 'uri')), ListOfString()._check(dart.dindex(msg, 'args')), dart.dindex(msg, 'msg'), false, core.bool._check(dart.dindex(msg, 'isSpawnUri')), core.bool._check(dart.dindex(msg, 'startPaused'))).then(dart.dynamic)(dart.fn(msg => {
         dart.dsend(replyPort, 'send', msg);
-      }, ListToFutureOr()), {onError: dart.fn(errorMessage => {
+      }, ListToNull()), {onError: dart.fn(errorMessage => {
           dart.dsend(replyPort, 'send', JSArrayOfString().of([_isolate_helper._SPAWN_FAILED_SIGNAL, errorMessage]));
-        }, StringTodynamic())});
+        }, StringToNull())});
     }
     static _log(msg) {
       if (dart.test(_isolate_helper._globalState.isWorker)) {
@@ -9914,7 +9918,7 @@
           dart.assert(dart.equals(dart.dindex(msg, 0), _isolate_helper._SPAWN_FAILED_SIGNAL));
           completer.completeError(dart.dindex(msg, 1));
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
       let signalReply = port.sendPort;
       if (dart.test(_isolate_helper._globalState.useWorkers) && !dart.test(isLight)) {
         _isolate_helper.IsolateNatives._startWorker(functionName, uri, args, message, isSpawnUri, startPaused, signalReply, dart.fn(message => completer.completeError(message), StringTovoid$()));
@@ -9940,7 +9944,7 @@
       _isolate_helper._globalState.topEventLoop.enqueue(new _isolate_helper._IsolateContext(), dart.fn(() => {
         let func = _isolate_helper.IsolateNatives._getJSFunctionFromName(functionName);
         _isolate_helper.IsolateNatives._startIsolate(core.Function._check(func), args, message, isSpawnUri, startPaused, replyPort);
-      }, VoidTodynamic$()), 'nonworker start');
+      }, VoidToNull()), 'nonworker start');
     }
     static get currentIsolate() {
       let context = _isolate_helper._IsolateContext._check(_foreign_helper.JS_CURRENT_ISOLATE_CONTEXT());
@@ -10085,7 +10089,7 @@
         if (!dart.test(this[_receivePort][_isClosed])) {
           this[_receivePort][_add](msg);
         }
-      }, VoidTodynamic$()), dart.str`receive ${message}`);
+      }, VoidToNull()), dart.str`receive ${message}`);
     }
     ['=='](other) {
       return _isolate_helper._NativeJsSendPort.is(other) && dart.equals(this[_receivePort], other[_receivePort]);
@@ -10219,13 +10223,11 @@
     let _EmptyStreamOfT = () => (_EmptyStreamOfT = dart.constFn(async._EmptyStream$(T)))();
     let StreamControllerOfT = () => (StreamControllerOfT = dart.constFn(async.StreamController$(T)))();
     let _StreamControllerOfT = () => (_StreamControllerOfT = dart.constFn(async._StreamController$(T)))();
-    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
     let _GeneratedStreamImplOfT = () => (_GeneratedStreamImplOfT = dart.constFn(async._GeneratedStreamImpl$(T)))();
     let _IterablePendingEventsOfT = () => (_IterablePendingEventsOfT = dart.constFn(async._IterablePendingEvents$(T)))();
     let _BoundSinkStreamOfdynamic$T = () => (_BoundSinkStreamOfdynamic$T = dart.constFn(async._BoundSinkStream$(dart.dynamic, T)))();
     let _AsBroadcastStreamOfT = () => (_AsBroadcastStreamOfT = dart.constFn(async._AsBroadcastStream$(T)))();
     let _WhereStreamOfT = () => (_WhereStreamOfT = dart.constFn(async._WhereStream$(T)))();
-    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
     let _HandleErrorStreamOfT = () => (_HandleErrorStreamOfT = dart.constFn(async._HandleErrorStream$(T)))();
     let StreamConsumerOfT = () => (StreamConsumerOfT = dart.constFn(async.StreamConsumer$(T)))();
     let TAndTToT = () => (TAndTToT = dart.constFn(dart.functionType(T, [T, T])))();
@@ -10240,12 +10242,14 @@
     let _SkipStreamOfT = () => (_SkipStreamOfT = dart.constFn(async._SkipStream$(T)))();
     let _SkipWhileStreamOfT = () => (_SkipWhileStreamOfT = dart.constFn(async._SkipWhileStream$(T)))();
     let _DistinctStreamOfT = () => (_DistinctStreamOfT = dart.constFn(async._DistinctStream$(T)))();
+    let TTovoid = () => (TTovoid = dart.constFn(dart.functionType(dart.void, [T])))();
     let EventSinkOfT = () => (EventSinkOfT = dart.constFn(async.EventSink$(T)))();
     let _SyncBroadcastStreamControllerOfT = () => (_SyncBroadcastStreamControllerOfT = dart.constFn(async._SyncBroadcastStreamController$(T)))();
     let _SyncStreamControllerOfT = () => (_SyncStreamControllerOfT = dart.constFn(async._SyncStreamController$(T)))();
     let StreamSubscriptionOfT = () => (StreamSubscriptionOfT = dart.constFn(async.StreamSubscription$(T)))();
     let StreamSubscriptionOfTTovoid = () => (StreamSubscriptionOfTTovoid = dart.constFn(dart.functionType(dart.void, [StreamSubscriptionOfT()])))();
     let TTobool = () => (TTobool = dart.constFn(dart.functionType(core.bool, [T])))();
+    let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
     let TAndTTobool = () => (TAndTTobool = dart.constFn(dart.functionType(core.bool, [T, T])))();
     let EventSinkOfTTovoid = () => (EventSinkOfTTovoid = dart.constFn(dart.functionType(dart.void, [EventSinkOfT()])))();
     let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
@@ -10253,11 +10257,10 @@
     let IterableOfT = () => (IterableOfT = dart.constFn(core.Iterable$(T)))();
     let intToT = () => (intToT = dart.constFn(dart.functionType(T, [core.int])))();
     let EventSinkOfTToEventSink = () => (EventSinkOfTToEventSink = dart.constFn(dart.functionType(async.EventSink, [EventSinkOfT()])))();
-    let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
-    let TTodynamic$ = () => (TTodynamic$ = dart.constFn(dart.definiteFunctionType(dart.dynamic, [T])))();
+    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
     let VoidTo_IterablePendingEventsOfT = () => (VoidTo_IterablePendingEventsOfT = dart.constFn(dart.definiteFunctionType(_IterablePendingEventsOfT(), [])))();
-    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
     let VoidToT = () => (VoidToT = dart.constFn(dart.definiteFunctionType(T, [])))();
+    let TTovoid$ = () => (TTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [T])))();
     class Stream extends core.Object {
       new() {
       }
@@ -10271,10 +10274,10 @@
         future.then(dart.dynamic)(dart.fn(value => {
           controller[_add$](value);
           controller[_closeUnchecked]();
-        }, TToFutureOr()), {onError: dart.fn((error, stackTrace) => {
+        }, TToNull()), {onError: dart.fn((error, stackTrace) => {
             controller[_addError](error, core.StackTrace._check(stackTrace));
             controller[_closeUnchecked]();
-          }, dynamicAnddynamicTodynamic$())});
+          }, dynamicAnddynamicToNull())});
         return controller.stream;
       }
       static fromFutures(futures) {
@@ -10285,13 +10288,13 @@
             controller[_add$](value);
             if (--count == 0) controller[_closeUnchecked]();
           }
-        }, TTodynamic$());
+        }, TToNull());
         let onError = dart.fn((error, stack) => {
           if (!dart.test(controller.isClosed)) {
             controller[_addError](error, core.StackTrace._check(stack));
             if (--count == 0) controller[_closeUnchecked]();
           }
-        }, dynamicAnddynamicTodynamic$());
+        }, dynamicAnddynamicToNull());
         for (let future of futures) {
           count++;
           future.then(dart.dynamic)(onValue, {onError: onError});
@@ -10328,17 +10331,17 @@
           dart.assert(timer == null);
           timer = async.Timer.periodic(period, dart.fn(timer => {
             sendEvent();
-          }, TimerTovoid$()));
+          }, TimerToNull()));
         }
         dart.fn(startPeriodicTimer, VoidTovoid$());
         controller = StreamControllerOfT().new({sync: true, onListen: dart.fn(() => {
             watch.start();
             startPeriodicTimer();
-          }, VoidTovoid$()), onPause: dart.fn(() => {
+          }, VoidToNull()), onPause: dart.fn(() => {
             timer.cancel();
             timer = null;
             watch.stop();
-          }, VoidTovoid$()), onResume: dart.fn(() => {
+          }, VoidToNull()), onResume: dart.fn(() => {
             dart.assert(timer == null);
             let elapsed = watch.elapsed;
             watch.start();
@@ -10346,11 +10349,11 @@
               timer = null;
               startPeriodicTimer();
               sendEvent();
-            }, VoidTovoid$()));
-          }, VoidTovoid$()), onCancel: dart.fn(() => {
+            }, VoidToNull()));
+          }, VoidToNull()), onCancel: dart.fn(() => {
             if (timer != null) timer.cancel();
             timer = null;
-          }, VoidTodynamic$())});
+          }, VoidToNull())});
         return controller.stream;
       }
       static eventTransformed(source, mapSink) {
@@ -10397,21 +10400,21 @@
               } else {
                 controller.add(E.as(newValue));
               }
-            }, TTovoid$()), {onError: addError, onDone: dart.bind(controller, 'close')});
+            }, TToNull()), {onError: addError, onDone: dart.bind(controller, 'close')});
           }).bind(this);
           dart.fn(onListen, VoidTovoid$());
           if (dart.test(this.isBroadcast)) {
             controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTovoid$()), sync: true});
+              }, VoidToNull()), sync: true});
           } else {
             controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
                 subscription.pause();
-              }, VoidTovoid$()), onResume: dart.fn(() => {
+              }, VoidToNull()), onResume: dart.fn(() => {
                 subscription.resume();
-              }, VoidTovoid$()), onCancel: dart.fn(() => {
+              }, VoidToNull()), onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTodynamic$()), sync: true});
+              }, VoidToNull()), sync: true});
           }
           return controller.stream;
         };
@@ -10437,21 +10440,21 @@
                 subscription.pause();
                 controller.addStream(newStream).whenComplete(dart.bind(subscription, 'resume'));
               }
-            }, TTovoid$()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
+            }, TToNull()), {onError: dart.bind(eventSink, _addError), onDone: dart.bind(controller, 'close')});
           }).bind(this);
           dart.fn(onListen, VoidTovoid$());
           if (dart.test(this.isBroadcast)) {
             controller = async.StreamController$(E).broadcast({onListen: onListen, onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTovoid$()), sync: true});
+              }, VoidToNull()), sync: true});
           } else {
             controller = async.StreamController$(E).new({onListen: onListen, onPause: dart.fn(() => {
                 subscription.pause();
-              }, VoidTovoid$()), onResume: dart.fn(() => {
+              }, VoidToNull()), onResume: dart.fn(() => {
                 subscription.resume();
-              }, VoidTovoid$()), onCancel: dart.fn(() => {
+              }, VoidToNull()), onCancel: dart.fn(() => {
                 subscription.cancel();
-              }, VoidTodynamic$()), sync: true});
+              }, VoidToNull()), sync: true});
           }
           return controller.stream;
         };
@@ -10485,12 +10488,12 @@
           if (seenFirst) {
             async._runUserCode(dart.fn(() => combine(value, element), VoidToT()), dart.fn(newValue => {
               value = newValue;
-            }, TTodynamic$()), async._cancelAndErrorClosure(subscription, result));
+            }, TToNull()), async._cancelAndErrorClosure(subscription, result));
           } else {
             value = element;
             seenFirst = true;
           }
-        }, TTovoid$()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(result, _completeError), onDone: dart.fn(() => {
             if (!seenFirst) {
               try {
                 dart.throw(_internal.IterableElementError.noElement());
@@ -10502,7 +10505,7 @@
             } else {
               result[_complete](value);
             }
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       }
       fold(S) {
@@ -10513,12 +10516,12 @@
           subscription = this.listen(dart.fn(element => {
             async._runUserCode(dart.fn(() => combine(value, element), dart.definiteFunctionType(S, [])), dart.fn(newValue => {
               value = newValue;
-            }, dart.definiteFunctionType(dart.dynamic, [S])), async._cancelAndErrorClosure(subscription, result));
-          }, TTovoid$()), {onError: dart.fn((e, st) => {
+            }, dart.definiteFunctionType(core.Null, [S])), async._cancelAndErrorClosure(subscription, result));
+          }, TToNull()), {onError: dart.fn((e, st) => {
               result[_completeError](e, core.StackTrace._check(st));
-            }, dynamicAnddynamicTodynamic$()), onDone: dart.fn(() => {
+            }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
               result[_complete](value);
-            }, VoidTovoid$()), cancelOnError: true});
+            }, VoidToNull()), cancelOnError: true});
           return result;
         };
       }
@@ -10540,11 +10543,11 @@
             async._cancelAndErrorWithReplacement(subscription, result, e, s);
           }
 
-        }, TTovoid$()), {onError: dart.fn(e => {
+        }, TToNull()), {onError: dart.fn(e => {
             result[_completeError](e);
-          }, dynamicTodynamic$()), onDone: dart.fn(() => {
+          }, dynamicToNull$()), onDone: dart.fn(() => {
             result[_complete](buffer.toString());
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return result;
       }
       contains(needle) {
@@ -10555,10 +10558,10 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, true);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](false);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       forEach(action) {
@@ -10566,10 +10569,10 @@
         let subscription = null;
         subscription = this.listen(dart.fn(element => {
           async._runUserCode(dart.fn(() => action(element), VoidTovoid$()), dart.fn(_ => {
-          }, dynamicTodynamic$()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, dynamicToNull$()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](null);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       every(test) {
@@ -10580,10 +10583,10 @@
             if (!dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, false);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](true);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       any(test) {
@@ -10594,10 +10597,10 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, true);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](false);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get length() {
@@ -10605,9 +10608,9 @@
         let count = 0;
         this.listen(dart.fn(_ => {
           count++;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](count);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get isEmpty() {
@@ -10615,9 +10618,9 @@
         let subscription = null;
         subscription = this.listen(dart.fn(_ => {
           async._cancelAndValue(subscription, future, false);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](true);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       toList() {
@@ -10625,9 +10628,9 @@
         let future = new (_FutureOfListOfT())();
         this.listen(dart.fn(data => {
           result[dartx.add](data);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](result);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       toSet() {
@@ -10635,9 +10638,9 @@
         let future = new (_FutureOfSetOfT())();
         this.listen(dart.fn(data => {
           result.add(data);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_complete](result);
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       drain(E) {
@@ -10667,7 +10670,7 @@
         let subscription = null;
         subscription = this.listen(dart.fn(value => {
           async._cancelAndValue(subscription, future, value);
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             try {
               dart.throw(_internal.IterableElementError.noElement());
             } catch (e) {
@@ -10675,7 +10678,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get last() {
@@ -10685,7 +10688,7 @@
         this.listen(dart.fn(value => {
           foundResult = true;
           result = value;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10697,7 +10700,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       get single() {
@@ -10718,7 +10721,7 @@
           }
           foundResult = true;
           result = value;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10730,7 +10733,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       firstWhere(test, opts) {
@@ -10742,8 +10745,8 @@
             if (dart.test(isMatch)) {
               async._cancelAndValue(subscription, future, value);
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (defaultValue != null) {
               async._runUserCode(defaultValue, dart.bind(future, _complete), dart.bind(future, _completeError));
               return;
@@ -10755,7 +10758,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       lastWhere(test, opts) {
@@ -10770,8 +10773,8 @@
               foundResult = true;
               result = value;
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10787,7 +10790,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       singleWhere(test) {
@@ -10811,8 +10814,8 @@
               foundResult = true;
               result = value;
             }
-          }, boolTodynamic()), async._cancelAndErrorClosure(subscription, future));
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+          }, boolToNull()), async._cancelAndErrorClosure(subscription, future));
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             if (foundResult) {
               future[_complete](result);
               return;
@@ -10824,7 +10827,7 @@
               async._completeWithErrorCallback(future, e, s);
             }
 
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       elementAt(index) {
@@ -10838,9 +10841,9 @@
             return;
           }
           elementIndex = elementIndex + 1;
-        }, TTovoid$()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
+        }, TToNull()), {onError: dart.bind(future, _completeError), onDone: dart.fn(() => {
             future[_completeError](core.RangeError.index(index, this, "index", null, elementIndex));
-          }, VoidTovoid$()), cancelOnError: true});
+          }, VoidToNull()), cancelOnError: true});
         return future;
       }
       timeout(timeLimit, opts) {
@@ -10874,7 +10877,7 @@
           if (onTimeout == null) {
             timeout = dart.fn(() => {
               controller.addError(new async.TimeoutException("No stream event", timeLimit), null);
-            }, VoidTovoid$());
+            }, VoidToNull());
           } else {
             let registeredOnTimeout = zone.registerUnaryCallback(dart.dynamic, EventSinkOfT())(onTimeout);
             let wrapper = new async._ControllerEventSinkWrapper(null);
@@ -10882,7 +10885,7 @@
               wrapper[_sink] = controller;
               zone.runUnaryGuarded(dart.dynamic, EventSinkOfT())(registeredOnTimeout, wrapper);
               wrapper[_sink] = null;
-            }, VoidTovoid$());
+            }, VoidToNull());
           }
           subscription = this.listen(onData, {onError: onError, onDone: onDone});
           timer = zone.createTimer(timeLimit, timeout);
@@ -10898,10 +10901,10 @@
         controller = dart.test(this.isBroadcast) ? new (_SyncBroadcastStreamControllerOfT())(onListen, onCancel) : new (_SyncStreamControllerOfT())(onListen, dart.fn(() => {
           timer.cancel();
           subscription.pause();
-        }, VoidTovoid$()), dart.fn(() => {
+        }, VoidToNull()), dart.fn(() => {
           subscription.resume();
           timer = zone.createTimer(timeLimit, timeout);
-        }, VoidTovoid$()), onCancel);
+        }, VoidToNull()), onCancel);
         return controller.stream;
       }
     }
@@ -11048,7 +11051,7 @@
         _isolate_helper.enterJsAsync();
         this[_handle] = _isolate_helper.global.setInterval(dart.fn(() => {
           callback(this);
-        }, VoidTodynamic$()), milliseconds);
+        }, VoidToNull()), milliseconds);
       } else {
         dart.throw(new core.UnsupportedError("Periodic timer."));
       }
@@ -12479,14 +12482,14 @@
     let LinkedHashMapKeyIterableOfK = () => (LinkedHashMapKeyIterableOfK = dart.constFn(_js_helper.LinkedHashMapKeyIterable$(K)))();
     let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let LinkedHashMapCellOfK$V = () => (LinkedHashMapCellOfK$V = dart.constFn(_js_helper.LinkedHashMapCell$(K, V)))();
     let LinkedHashMapOfK$V = () => (LinkedHashMapOfK$V = dart.constFn(collection.LinkedHashMap$(K, V)))();
     let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
     let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class JsLinkedHashMap extends core.Object {
       new() {
         this[_length$0] = 0;
@@ -12541,7 +12544,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         if (dart.test(_js_helper.JsLinkedHashMap._isStringKey(key))) {
@@ -13811,7 +13814,7 @@
     let obj = {};
     map[dartx.forEach](dart.fn((key, value) => {
       obj[_js_mirrors.getName(key)] = value;
-    }, SymbolAnddynamicTovoid()));
+    }, SymbolAnddynamicToNull()));
     return obj;
   };
   dart.lazyFn(_js_mirrors._toJsMap, () => MapOfSymbol$dynamicTodynamic());
@@ -14026,7 +14029,7 @@
         constructors[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._constructor(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         if (dart.test(constructors[dartx.isEmpty])) {
           let name = 'new';
           let ft = _js_mirrors._defaultConstructorType(_js_mirrors._unwrap(this[_cls]));
@@ -14041,23 +14044,23 @@
             t = dart.dindex(t, 0);
           }
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let methods = _js_mirrors._getMethods(unwrapped);
         methods[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let getters = _js_mirrors._getGetters(unwrapped);
         getters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let setters = _js_mirrors._getSetters(unwrapped);
         setters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = dart.notNull(_js_mirrors.getName(symbol)) + '=';
           symbol = new _internal.Symbol.es6(name, _js_mirrors._getESSymbol(symbol));
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._instanceMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticFields = _js_mirrors._getStaticFields(unwrapped);
         staticFields[dartx.forEach](dart.fn((symbol, t) => {
           let name = _js_mirrors.getName(symbol);
@@ -14067,22 +14070,22 @@
             t = dart.dindex(t, 0);
           }
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsVariableMirror._(symbol, core.Type._check(_js_mirrors._wrap(t)), metadata));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let statics = _js_mirrors._getStatics(unwrapped);
         statics[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticGetters = _js_mirrors._getStaticGetters(unwrapped);
         staticGetters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         let staticSetters = _js_mirrors._getStaticSetters(unwrapped);
         staticSetters[dartx.forEach](dart.fn((symbol, ft) => {
           let name = _js_mirrors.getName(symbol);
           this[_declarations][dartx._set](symbol, new _js_mirrors.JsMethodMirror._staticMethod(this, symbol, ft));
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
         this[_declarations] = MapOfSymbol$DeclarationMirror().unmodifiable(this[_declarations]);
       }
       return this[_declarations];
@@ -17932,11 +17935,11 @@
           let result = new (async._Future$(E))();
           this[_onDone] = dart.fn(() => {
             result[_complete](futureValue);
-          }, VoidTovoid$());
+          }, VoidToNull());
           this[_onError] = dart.fn((error, stackTrace) => {
             this.cancel();
             result[_completeError](error, core.StackTrace._check(stackTrace));
-          }, dynamicAnddynamicTodynamic$());
+          }, dynamicAnddynamicToNull());
           return result;
         };
       }
@@ -18612,7 +18615,7 @@
   async._SyncBroadcastStreamController$ = dart.generic(T => {
     let _BufferingStreamSubscriptionOfT = () => (_BufferingStreamSubscriptionOfT = dart.constFn(async._BufferingStreamSubscription$(T)))();
     let SynchronousStreamControllerOfT = () => (SynchronousStreamControllerOfT = dart.constFn(async.SynchronousStreamController$(T)))();
-    let _BufferingStreamSubscriptionOfTTovoid = () => (_BufferingStreamSubscriptionOfTTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [_BufferingStreamSubscriptionOfT()])))();
+    let _BufferingStreamSubscriptionOfTToNull = () => (_BufferingStreamSubscriptionOfTToNull = dart.constFn(dart.definiteFunctionType(core.Null, [_BufferingStreamSubscriptionOfT()])))();
     class _SyncBroadcastStreamController extends async._BroadcastStreamController$(T) {
       new(onListen, onCancel) {
         super.new(onListen, onCancel);
@@ -18641,19 +18644,19 @@
         }
         this[_forEachListener](dart.fn(subscription => {
           subscription[_add$](data);
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       }
       [_sendError](error, stackTrace) {
         if (dart.test(this[_isEmpty])) return;
         this[_forEachListener](dart.fn(subscription => {
           subscription[_addError](error, stackTrace);
-        }, _BufferingStreamSubscriptionOfTTovoid()));
+        }, _BufferingStreamSubscriptionOfTToNull()));
       }
       [_sendDone]() {
         if (!dart.test(this[_isEmpty])) {
           this[_forEachListener](dart.fn(subscription => {
             subscription[_close$]();
-          }, _BufferingStreamSubscriptionOfTTovoid()));
+          }, _BufferingStreamSubscriptionOfTToNull()));
         } else {
           dart.assert(this[_doneFuture] != null);
           dart.assert(this[_doneFuture][_mayComplete]);
@@ -18904,7 +18907,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static microtask(computation) {
@@ -18917,7 +18920,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static sync(computation) {
@@ -18957,7 +18960,7 @@
             async._completeWithErrorCallback(result, e, s);
           }
 
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return result;
       }
       static wait(T) {
@@ -18977,7 +18980,7 @@
                   if (value != null) {
                     async.Future.sync(dart.fn(() => {
                       cleanUp(value);
-                    }, VoidTodynamic$()));
+                    }, VoidToNull()));
                   }
                 }
               }
@@ -19007,13 +19010,13 @@
                   if (cleanUp != null && value != null) {
                     async.Future.sync(dart.fn(() => {
                       cleanUp(value);
-                    }, VoidTodynamic$()));
+                    }, VoidToNull()));
                   }
                   if (remaining == 0 && !dart.test(eagerError)) {
                     result[_completeError](error, stackTrace);
                   }
                 }
-              }, dart.definiteFunctionType(async.FutureOr, [T])), {onError: handleError});
+              }, dart.definiteFunctionType(core.Null, [T])), {onError: handleError});
               remaining++;
             }
             if (remaining == 0) {
@@ -19038,10 +19041,10 @@
           let completer = async.Completer$(T).sync();
           let onValue = dart.fn(value => {
             if (!dart.test(completer.isCompleted)) completer.complete(value);
-          }, dart.definiteFunctionType(dart.dynamic, [T]));
+          }, dart.definiteFunctionType(core.Null, [T]));
           let onError = dart.fn((error, stack) => {
             if (!dart.test(completer.isCompleted)) completer.completeError(error, core.StackTrace._check(stack));
-          }, dynamicAnddynamicTodynamic$());
+          }, dynamicAnddynamicToNull());
           for (let future of futures) {
             future.then(dart.dynamic)(onValue, {onError: onError});
           }
@@ -19064,7 +19067,7 @@
           } else {
             doneSignal[_complete](null);
           }
-        }, boolTodynamic()), {runGuarded: true});
+        }, boolToNull()), {runGuarded: true});
         dart.dcall(nextIteration, true);
         return doneSignal;
       }
@@ -19417,7 +19420,7 @@
     let StreamOfT = () => (StreamOfT = dart.constFn(async.Stream$(T)))();
     let FutureOfT = () => (FutureOfT = dart.constFn(async.Future$(T)))();
     let TTodynamic = () => (TTodynamic = dart.constFn(dart.functionType(dart.dynamic, [T])))();
-    let TToFutureOr = () => (TToFutureOr = dart.constFn(dart.definiteFunctionType(async.FutureOr, [T])))();
+    let TToNull = () => (TToNull = dart.constFn(dart.definiteFunctionType(core.Null, [T])))();
     class _Future extends core.Object {
       new() {
         this[_zone] = async.Zone.current;
@@ -19555,7 +19558,7 @@
           dart.assert(this[_isComplete]);
           this[_zone].scheduleMicrotask(dart.fn(() => {
             async._Future._propagateToListeners(this, listener);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       [_prependListeners](listeners) {
@@ -19583,7 +19586,7 @@
           listeners = this[_reverseListeners](listeners);
           this[_zone].scheduleMicrotask(dart.fn(() => {
             async._Future._propagateToListeners(this, listeners);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       [_removeListeners]() {
@@ -19612,16 +19615,16 @@
             dart.assert(target[_isPendingComplete]);
             target[_clearPendingComplete]();
             target[_complete](value);
-          }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
               if (stackTrace === void 0) stackTrace = null;
               dart.assert(target[_isPendingComplete]);
               target[_completeError](error, core.StackTrace._check(stackTrace));
-            }, dynamic__Todynamic())});
+            }, dynamic__ToNull())});
         } catch (e) {
           let s = dart.stackTrace(e);
           async.scheduleMicrotask(dart.fn(() => {
             target[_completeError](e, s);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
 
       }
@@ -19679,7 +19682,7 @@
               this[_setPendingComplete]();
               this[_zone].scheduleMicrotask(dart.fn(() => {
                 async._Future._chainCoreFuture(coreFuture, this);
-              }, VoidTovoid$()));
+              }, VoidToNull()));
             } else {
               async._Future._chainCoreFuture(coreFuture, this);
             }
@@ -19692,14 +19695,14 @@
         this[_setPendingComplete]();
         this[_zone].scheduleMicrotask(dart.fn(() => {
           this[_completeWithValue](typedValue);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
       }
       [_asyncCompleteError](error, stackTrace) {
         dart.assert(!dart.test(this[_isComplete]));
         this[_setPendingComplete]();
         this[_zone].scheduleMicrotask(dart.fn(() => {
           this[_completeError](error, stackTrace);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
       }
       static _propagateToListeners(source, listeners) {
         while (true) {
@@ -19843,7 +19846,7 @@
         if (onTimeout == null) {
           timer = async.Timer.new(timeLimit, dart.fn(() => {
             result[_completeError](new async.TimeoutException("Future not completed", timeLimit));
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         } else {
           let zone = async.Zone.current;
           onTimeout = zone.registerCallback(dart.dynamic)(onTimeout);
@@ -19855,19 +19858,19 @@
               result[_completeError](e, s);
             }
 
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
         this.then(dart.dynamic)(dart.fn(v => {
           if (dart.test(timer.isActive)) {
             timer.cancel();
             result[_completeWithValue](v);
           }
-        }, TToFutureOr()), {onError: dart.fn((e, s) => {
+        }, TToNull()), {onError: dart.fn((e, s) => {
             if (dart.test(timer.isActive)) {
               timer.cancel();
               result[_completeError](e, core.StackTrace._check(s));
             }
-          }, dynamicAnddynamicTodynamic$())});
+          }, dynamicAnddynamicToNull())});
         return result;
       }
     }
@@ -20049,7 +20052,7 @@
           storedCallback = null;
           f();
         }
-        dart.fn(internalCallback, dynamicTodynamic$());
+        dart.fn(internalCallback, dynamicToNull$());
         ;
         let observer = new _isolate_helper.global.MutationObserver(internalCallback);
         observer.observe(div, {childList: true});
@@ -20058,7 +20061,7 @@
           _isolate_helper.enterJsAsync();
           storedCallback = callback;
           div.firstChild ? div.removeChild(span) : div.appendChild(span);
-        }, _AsyncCallbackTovoid());
+        }, FnToNull());
       } else if (_isolate_helper.global.setImmediate != null) {
         return async._AsyncRun._scheduleImmediateWithSetImmediate;
       }
@@ -20069,7 +20072,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }
-      dart.fn(internalCallback, VoidTodynamic$());
+      dart.fn(internalCallback, VoidToNull());
       ;
       _isolate_helper.enterJsAsync();
       _isolate_helper.global.scheduleImmediate(internalCallback);
@@ -20079,7 +20082,7 @@
         _isolate_helper.leaveJsAsync();
         callback();
       }
-      dart.fn(internalCallback, VoidTodynamic$());
+      dart.fn(internalCallback, VoidToNull());
       ;
       _isolate_helper.enterJsAsync();
       _isolate_helper.global.setImmediate(internalCallback);
@@ -20493,7 +20496,7 @@
         subscription[_setPendingEvents](pendingEvents);
         subscription[_guardCallback](dart.fn(() => {
           async._runGuarded(this.onListen);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         return subscription;
       }
       [_recordCancel](subscription) {
@@ -20753,7 +20756,7 @@
         return dart.fn((e, s) => {
           controller[_addError](e, s);
           controller[_close$]();
-        }, dynamicAndStackTraceTodynamic());
+        }, dynamicAndStackTraceToNull());
       }
       pause() {
         this.addSubscription.pause();
@@ -20769,7 +20772,7 @@
         }
         return cancel.whenComplete(dart.fn(() => {
           this.addStreamFuture[_asyncComplete](null);
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
       }
       complete() {
         this.addStreamFuture[_asyncComplete](null);
@@ -20886,7 +20889,7 @@
           this[_state] = async._PendingEvents._STATE_UNSCHEDULED;
           if (oldState == async._PendingEvents._STATE_CANCELED) return;
           this.handleNext(dispatch);
-        }, VoidTovoid$()));
+        }, VoidToNull()));
         this[_state] = async._PendingEvents._STATE_SCHEDULED;
       }
       cancelSchedule() {
@@ -21193,7 +21196,7 @@
           let result = new (async._Future$(E))();
           this[_onDone] = dart.fn(() => {
             result[_completeWithValue](null);
-          }, VoidTovoid$());
+          }, VoidToNull());
           return result;
         };
       }
@@ -21612,7 +21615,7 @@
   async._cancelAndErrorClosure = function(subscription, future) {
     return dart.fn((error, stackTrace) => {
       async._cancelAndError(subscription, future, error, stackTrace);
-    }, dynamicAndStackTraceTovoid());
+    }, dynamicAndStackTraceToNull());
   };
   dart.fn(async._cancelAndErrorClosure, StreamSubscriptionAnd_FutureTo_ErrorCallback());
   async._cancelAndValue = function(subscription, future, value) {
@@ -23194,7 +23197,7 @@
         if (error == null) error = new core.NullThrownError();
         if (stackTrace == null) dart.throw(error);
         async._rethrow(error, stackTrace);
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     };
   };
   dart.lazyFn(async._rootHandleUncaughtError, () => ZoneAndZoneDelegateAndZone__ToR());
@@ -23630,13 +23633,13 @@
     let _HashMapKeyIterableOfK = () => (_HashMapKeyIterableOfK = dart.constFn(collection._HashMapKeyIterable$(K)))();
     let MappedIterableOfK$V = () => (MappedIterableOfK$V = dart.constFn(_internal.MappedIterable$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let ListOfK = () => (ListOfK = dart.constFn(core.List$(K)))();
     let HashMapOfK$V = () => (HashMapOfK$V = dart.constFn(collection.HashMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let KToV = () => (KToV = dart.constFn(dart.definiteFunctionType(V, [K])))();
     let KTobool = () => (KTobool = dart.constFn(dart.definiteFunctionType(core.bool, [K])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class _HashMap extends core.Object {
       new() {
         this[_length$1] = 0;
@@ -23684,7 +23687,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         if (dart.test(collection._HashMap._isStringKey(key))) {
@@ -24177,11 +24180,11 @@
   collection._Es6LinkedIdentityHashMap$ = dart.generic((K, V) => {
     let _Es6MapIterableOfK = () => (_Es6MapIterableOfK = dart.constFn(collection._Es6MapIterable$(K)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let InternalMapOfK$V = () => (InternalMapOfK$V = dart.constFn(_js_helper.InternalMap$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let _Es6MapIterableOfV = () => (_Es6MapIterableOfV = dart.constFn(collection._Es6MapIterable$(V)))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     let VTobool = () => (VTobool = dart.constFn(dart.definiteFunctionType(core.bool, [V])))();
     class _Es6LinkedIdentityHashMap extends collection._LinkedIdentityHashMap$(K, V) {
       new() {
@@ -24214,7 +24217,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       _get(key) {
         return this[_map$0].get(key);
@@ -25814,7 +25817,7 @@
         let result = HashMapOfK$V().new();
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -26366,7 +26369,7 @@
         let result = LinkedHashMapOfK$V().new();
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -27121,7 +27124,7 @@
           result.write(k);
           result.write(': ');
           result.write(v);
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         result.write('}');
       } finally {
         dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
@@ -28248,16 +28251,16 @@
     let ComparatorOfK = () => (ComparatorOfK = dart.constFn(core.Comparator$(K)))();
     let SplayTreeMapOfK$V = () => (SplayTreeMapOfK$V = dart.constFn(collection.SplayTreeMap$(K, V)))();
     let MapOfK$V = () => (MapOfK$V = dart.constFn(core.Map$(K, V)))();
-    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let _SplayTreeNodeIteratorOfK = () => (_SplayTreeNodeIteratorOfK = dart.constFn(collection._SplayTreeNodeIterator$(K)))();
     let _SplayTreeKeyIterableOfK = () => (_SplayTreeKeyIterableOfK = dart.constFn(collection._SplayTreeKeyIterable$(K)))();
     let _SplayTreeValueIterableOfK$V = () => (_SplayTreeValueIterableOfK$V = dart.constFn(collection._SplayTreeValueIterable$(K, V)))();
+    let KAndVTovoid = () => (KAndVTovoid = dart.constFn(dart.functionType(dart.void, [K, V])))();
     let dynamicToK = () => (dynamicToK = dart.constFn(dart.functionType(K, [dart.dynamic])))();
     let IterableOfK = () => (IterableOfK = dart.constFn(core.Iterable$(K)))();
     let VoidToV = () => (VoidToV = dart.constFn(dart.functionType(V, [])))();
     let dynamicToV = () => (dynamicToV = dart.constFn(dart.functionType(V, [dart.dynamic])))();
     let IterableOfV = () => (IterableOfV = dart.constFn(core.Iterable$(V)))();
-    let KAndVTovoid$ = () => (KAndVTovoid$ = dart.constFn(dart.definiteFunctionType(dart.void, [K, V])))();
+    let KAndVToNull = () => (KAndVToNull = dart.constFn(dart.definiteFunctionType(core.Null, [K, V])))();
     class SplayTreeMap extends collection._SplayTree$(K, collection._SplayTreeMapNode$(K, V)) {
       new(compare, isValidKey) {
         if (compare === void 0) compare = null;
@@ -28280,7 +28283,7 @@
         let result = new (SplayTreeMapOfK$V())(compare, isValidKey);
         other[dartx.forEach](dart.fn((k, v) => {
           result._set(K.as(k), V.as(v));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return result;
       }
       static fromIterable(iterable, opts) {
@@ -28366,7 +28369,7 @@
         MapOfK$V()._check(other);
         other[dartx.forEach](dart.fn((key, value) => {
           this._set(key, value);
-        }, KAndVTovoid$()));
+        }, KAndVToNull()));
       }
       get isEmpty() {
         return this[_root] == null;
@@ -29039,7 +29042,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((key, value) => {
         this._set(key, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
     }
     containsValue(value) {
       if (dart.test(this[_isUpgraded])) return this[_upgradedMap][dartx.containsValue](value);
@@ -31496,7 +31499,7 @@
         }
         keyValueList[dartx._set](i++, key);
         keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       if (!allStringKeys) return false;
       this.writeString('{');
       let separator = '"';
@@ -31597,7 +31600,7 @@
         }
         keyValueList[dartx._set](i++, key);
         keyValueList[dartx._set](i++, value);
-      }, dynamicAnddynamicTovoid$()));
+      }, dynamicAnddynamicToNull()));
       if (!allStringKeys) return false;
       this.writeString('{\n');
       this[_indentLevel] = dart.notNull(this[_indentLevel]) + 1;
@@ -33843,7 +33846,7 @@
           sb.write(": ");
           sb.write(core.Error.safeToString(value));
           i++;
-        }, SymbolAnddynamicTovoid()));
+        }, SymbolAnddynamicToNull()));
       }
       if (this[_existingArgumentNames] == null) {
         return dart.str`NoSuchMethodError : method not found: '${this[_memberName]}'\n` + dart.str`Receiver: ${core.Error.safeToString(this[_receiver$])}\n` + dart.str`Arguments: [${sb}]`;
@@ -34169,7 +34172,7 @@
       let result = dart.map({}, core.String, dart.dynamic);
       namedArguments[dartx.forEach](dart.fn((symbol, value) => {
         result[dartx._set](core._symbolToString(symbol), value);
-      }, SymbolAnddynamicTovoid()));
+      }, SymbolAnddynamicToNull()));
       return result;
     }
   };
@@ -35164,7 +35167,7 @@
             dart.throw(new core.UnsupportedError(dart.str`Illegal path character ${segment}`));
           }
         }
-      }, StringTovoid$()));
+      }, StringToNull()));
     }
     static _checkWindowsPathReservedCharacters(segments, argumentError, firstSegment) {
       if (firstSegment === void 0) firstSegment = 0;
@@ -35521,7 +35524,7 @@
             writeParameter(key, value);
           }
         }
-      }, StringAnddynamicTovoid()));
+      }, StringAnddynamicToNull()));
       return result.toString();
     }
     static _makeFragment(fragment, start, end) {
@@ -36509,7 +36512,7 @@
         if (indices != null) indices[dartx.add](buffer.length);
         buffer.write('=');
         buffer.write(core.Uri._uriEncode(core.UriData._tokenCharTable, value, convert.UTF8, false));
-      }, StringAndStringTovoid$())));
+      }, StringAndStringToNull())));
     }
     static _validateMimeType(mimeType) {
       let slashIndex = -1;
@@ -39158,7 +39161,7 @@
           this.error(response);
           this.close();
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
     }
     onResume() {
       if (!dart.test(this.nextRunning)) {
@@ -39223,7 +39226,7 @@
         } else {
           this.controller.addError(new io.FileSystemException("Internal error"));
         }
-      }, dynamicToFutureOr$()));
+      }, dynamicToNull$()));
     }
     [_cleanup]() {
       this.controller.close();
@@ -39533,13 +39536,13 @@
         if (dart.test(this[_atEnd])) {
           this[_closeFile]();
         }
-      }, ListOfintToFutureOr())).catchError(dart.fn((e, s) => {
+      }, ListOfintToNull())).catchError(dart.fn((e, s) => {
         if (!dart.test(this[_unsubscribed])) {
           this[_controller$0].addError(e, core.StackTrace._check(s));
           this[_closeFile]();
           this[_unsubscribed] = true;
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
     }
     [_start$2]() {
       if (dart.notNull(this[_position$0]) < 0) {
@@ -39560,7 +39563,7 @@
               this[_controller$0].addError(e, core.StackTrace._check(s));
               this[_readInProgress] = false;
               this[_closeFile]();
-            }, dynamicAnddynamicTodynamic$())});
+            }, dynamicAnddynamicToNull())});
         } else {
           onReady(file);
         }
@@ -39646,10 +39649,10 @@
             error(e, stackTrace);
           }
 
-        }, ListOfintTovoid$()), {onDone: dart.fn(() => {
+        }, ListOfintToNull()), {onDone: dart.fn(() => {
             completer.complete(this[_file]);
-          }, VoidTovoid$()), onError: error, cancelOnError: true});
-      }, RandomAccessFileToFutureOr())).catchError(dart.bind(completer, 'completeError'));
+          }, VoidToNull()), onError: error, cancelOnError: true});
+      }, RandomAccessFileToNull())).catchError(dart.bind(completer, 'completeError'));
       return completer.future;
     }
     close() {
@@ -39887,7 +39890,7 @@
             } else {
               completer.complete(builder.takeBytes());
             }
-          }, dynamicTodynamic$()), {onError: dart.bind(completer, 'completeError')});
+          }, dynamicToNull$()), {onError: dart.bind(completer, 'completeError')});
         }
         dart.fn(read, VoidTovoid$());
         read();
@@ -40438,7 +40441,7 @@
       data[dartx._set](0, this[_pointer]());
       return io._IOService._dispatch(request, data).whenComplete(dart.fn(() => {
         this[_asyncDispatched] = false;
-      }, VoidTodynamic$()));
+      }, VoidToNull()));
     }
     [_checkAvailable]() {
       if (dart.test(this[_asyncDispatched])) {
@@ -42075,7 +42078,7 @@
           sb.write(values[dartx._get](i));
         }
         sb.write("\n");
-      }, StringAndListOfStringTovoid$()));
+      }, StringAndListOfStringToNull()));
       return sb.toString();
     }
     [_parseCookies]() {
@@ -42287,7 +42290,7 @@
           sb.write(name);
           sb.write("=");
           sb.write(value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       return sb.toString();
     }
@@ -42435,7 +42438,7 @@
             value = value[dartx.toLowerCase]();
           }
           this[_parameters][dartx._set](lowerCaseKey, value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       if (charset != null) {
         this[_ensureParameters]();
@@ -42700,7 +42703,7 @@
       this.hasSubscriber = true;
       return this[_stream$].handleError(dart.fn(error => {
         dart.throw(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this.uri}));
-      }, dynamicTodynamic$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
+      }, dynamicToNull$())).listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
     }
     get dataDone() {
       return this[_dataCompleter].future;
@@ -42923,7 +42926,7 @@
       if (values != null) {
         values[dartx.forEach](dart.fn(value => {
           this[_cookies][dartx.add](io.Cookie.fromSetCookieValue(value));
-        }, StringTovoid$()));
+        }, StringToNull()));
       }
       return this[_cookies];
     }
@@ -43147,7 +43150,7 @@
         const targetAddStream = (function() {
           return this[_target$].addStream(stream).whenComplete(dart.fn(() => {
             this[_isBound] = false;
-          }, VoidTodynamic$()));
+          }, VoidToNull()));
         }).bind(this);
         dart.fn(targetAddStream, VoidToFuture());
         if (this[_controllerInstance] == null) return targetAddStream();
@@ -43165,7 +43168,7 @@
         this[_controllerInstance].close();
         return future.whenComplete(dart.fn(() => {
           this[_isBound] = false;
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
       }
       close() {
         if (dart.test(this[_isBound])) {
@@ -43216,7 +43219,7 @@
             } else {
               this[_closeTarget]();
             }
-          }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+          }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
               if (dart.test(this[_isBound])) {
                 this[_controllerCompleter].completeError(error, core.StackTrace._check(stackTrace));
                 this[_controllerCompleter] = null;
@@ -43224,7 +43227,7 @@
               } else {
                 this[_completeDoneError](error, core.StackTrace._check(stackTrace));
               }
-            }, dynamicAnddynamicTodynamic$())});
+            }, dynamicAnddynamicToNull())});
         }
         return this[_controllerInstance];
       }
@@ -43469,7 +43472,7 @@
       }
       this.close();
       this.done.catchError(dart.fn(_ => {
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return future;
     }
     get connectionInfo() {
@@ -43484,7 +43487,7 @@
       if (this[_deadline] == null) return;
       this[_deadlineTimer] = async.Timer.new(this[_deadline], dart.fn(() => {
         this[_httpRequest][_httpConnection].destroy();
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
     [_writeHeader]() {
       let buffer = typed_data.Uint8List.new(io._OUTGOING_BUFFER_SIZE);
@@ -43549,7 +43552,7 @@
       if (this[_cookies] != null) {
         this[_cookies][dartx.forEach](dart.fn(cookie => {
           this.headers.add(io.HttpHeaders.SET_COOKIE, cookie);
-        }, CookieTovoid()));
+        }, CookieToNull()));
       }
       this.headers[_finalize]();
       offset = this.headers[_write](buffer, offset);
@@ -44053,7 +44056,7 @@
         }
         if (dart.test(drainRequest) && !dart.test(response[_httpRequest][_incoming].hasSubscriber)) {
           drainFuture = response[_httpRequest].drain(dart.dynamic)().catchError(dart.fn(_ => {
-          }, dynamicTodynamic$()));
+          }, dynamicToNull$()));
         }
       } else {
         drainRequest = false;
@@ -44082,7 +44085,7 @@
       }
       if (dart.test(this.ignoreBody)) {
         stream.drain(dart.dynamic)().catchError(dart.fn(_ => {
-        }, dynamicTodynamic$()));
+        }, dynamicToNull$()));
         let future = this.writeHeaders();
         if (future != null) {
           return future.then(dart.dynamic)(dart.fn(_ => this.close(), dynamicToFuture()));
@@ -44209,7 +44212,7 @@
           this[_addChunk$](this[_chunkHeader](core.int._check(dart.dload(data, 'length'))), ListOfintTovoid()._check(this[_gzipAdd]));
           this[_pendingChunkedFooter] = 2;
           this[_addChunk$](data, ListOfintTovoid()._check(this[_gzipAdd]));
-        }, dynamicTodynamic$())));
+        }, dynamicToNull$())));
       }
     }
     [_ignoreError](error) {
@@ -44365,28 +44368,28 @@
         if (incoming.statusCode == 100) {
           incoming.drain(dart.dynamic)().then(dart.dynamic)(dart.fn(_ => {
             this[_subscription$].resume();
-          }, dynamicToFutureOr$())).catchError(dart.fn((error, stackTrace) => {
+          }, dynamicToNull$())).catchError(dart.fn((error, stackTrace) => {
             if (stackTrace === void 0) stackTrace = null;
             this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
             this[_nextResponseCompleter] = null;
-          }, dynamic__Todynamic$()));
+          }, dynamic__ToNull$()));
         } else {
           this[_nextResponseCompleter].complete(incoming);
           this[_nextResponseCompleter] = null;
         }
-      }, _HttpIncomingTovoid$()), {onError: dart.fn((error, stackTrace) => {
+      }, _HttpIncomingToNull()), {onError: dart.fn((error, stackTrace) => {
           if (stackTrace === void 0) stackTrace = null;
           if (this[_nextResponseCompleter] != null) {
             this[_nextResponseCompleter].completeError(new io.HttpException(core.String._check(dart.dload(error, 'message')), {uri: this[_currentUri]}), stackTrace);
             this[_nextResponseCompleter] = null;
           }
-        }, dynamic__Todynamic$()), onDone: dart.fn(() => {
+        }, dynamic__ToNull$()), onDone: dart.fn(() => {
           if (this[_nextResponseCompleter] != null) {
             this[_nextResponseCompleter].completeError(new io.HttpException("Connection closed before response was received", {uri: this[_currentUri]}));
             this[_nextResponseCompleter] = null;
           }
           this.close();
-        }, VoidTovoid$())});
+        }, VoidToNull())});
     }
     send(uri, port, method, proxy) {
       if (dart.test(this.closed)) {
@@ -44442,7 +44445,7 @@
             } else {
               this.destroy();
             }
-          }, dynamicToFutureOr$()));
+          }, dynamicToNull$()));
           if (proxyCreds != null && dart.equals(proxyCreds.scheme, io._AuthenticationScheme.DIGEST)) {
             let authInfo = incoming.headers._get("proxy-authentication-info");
             if (authInfo != null && authInfo[dartx.length] == 1) {
@@ -44460,17 +44463,17 @@
             }
           }
           request[_onIncoming](incoming);
-        }, _HttpIncomingToFutureOr())).catchError(dart.fn(error => {
+        }, _HttpIncomingToNull())).catchError(dart.fn(error => {
           dart.throw(new io.HttpException("Connection closed before data was received", {uri: uri}));
-        }, dynamicTodynamic$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
+        }, dynamicToNull$()), {test: dart.fn(error => core.StateError.is(error), ObjectTobool())}).catchError(dart.fn((error, stackTrace) => {
           this.destroy();
           request[_onError$](error, core.StackTrace._check(stackTrace));
-        }, dynamicAnddynamicTodynamic$()));
+        }, dynamicAnddynamicToNull()));
         this[_subscription$].resume();
         return s;
       }, dynamicTodynamic$()), {onError: dart.fn(e => {
           this.destroy();
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
       return request;
     }
     detachSocket() {
@@ -44520,7 +44523,7 @@
       this[_idleTimer] = async.Timer.new(this[_httpClient].idleTimeout, dart.fn(() => {
         this[_idleTimer] = null;
         this.close();
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
   };
   dart.setSignature(io._HttpClientConnection, {
@@ -44644,7 +44647,7 @@
         let completer = async.Completer.new();
         this[_pending$].add(dart.fn(() => {
           this.connect(uriHost, uriPort, proxy, client).then(dart.void)(dart.bind(completer, 'complete'), {onError: dart.bind(completer, 'completeError')});
-        }, VoidTodynamic$()));
+        }, VoidToNull()));
         return FutureOf_ConnectionInfo()._check(completer.future);
       }
       let currentBadCertificateCallback = client[_badCertificateCallback];
@@ -44673,7 +44676,7 @@
           this[_connecting] = dart.notNull(this[_connecting]) - 1;
           this[_checkPending]();
           dart.throw(error);
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
     }
   };
   dart.setSignature(io._ConnectionTarget, {
@@ -45152,7 +45155,7 @@
         this[_httpServer][_markActive](this);
         incoming.dataDone.then(dart.dynamic)(dart.fn(closing => {
           if (dart.test(closing)) this.destroy();
-        }, dynamicToFutureOr$()));
+        }, dynamicToNull$()));
         this[_subscription$].pause();
         this[_state$1] = io._HttpConnection._ACTIVE;
         let outgoing = new io._HttpOutgoing(io.Socket._check(this[_socket]));
@@ -45169,17 +45172,17 @@
           } else {
             this.destroy();
           }
-        }, dynamicToFutureOr$()), {onError: dart.fn(_ => {
+        }, dynamicToNull$()), {onError: dart.fn(_ => {
             this.destroy();
-          }, dynamicTodynamic$())});
+          }, dynamicToNull$())});
         outgoing.ignoreBody = request.method == "HEAD";
         response[_httpRequest] = request;
         this[_httpServer][_handleRequest](request);
-      }, _HttpIncomingTovoid$()), {onDone: dart.fn(() => {
+      }, _HttpIncomingToNull()), {onDone: dart.fn(() => {
           this.destroy();
-        }, VoidTovoid$()), onError: dart.fn(error => {
+        }, VoidToNull()), onError: dart.fn(error => {
           this.destroy();
-        }, dynamicTodynamic$())});
+        }, dynamicToNull$())});
     }
     markIdle() {
       this[_idleMark] = true;
@@ -45395,7 +45398,7 @@
               idle.markIdle();
             }
           }
-        }, TimerTovoid$()));
+        }, TimerToNull()));
       }
     }
     listen(onData, opts) {
@@ -45406,11 +45409,11 @@
         socket.setOption(io.SocketOption.TCP_NODELAY, true);
         let connection = new io._HttpConnection(socket, this);
         this[_idleConnections].add(connection);
-      }, SocketTodynamic()), {onError: dart.fn((error, stackTrace) => {
+      }, SocketToNull()), {onError: dart.fn((error, stackTrace) => {
           if (!io.HandshakeException.is(error)) {
             this[_controller$0].addError(error, core.StackTrace._check(stackTrace));
           }
-        }, dynamicAnddynamicTodynamic$()), onDone: dart.bind(this[_controller$0], 'close')});
+        }, dynamicAnddynamicToNull()), onDone: dart.bind(this[_controller$0], 'close')});
       return this[_controller$0].stream.listen(onData, {onError: onError, onDone: onDone, cancelOnError: cancelOnError});
     }
     close(opts) {
@@ -45488,11 +45491,11 @@
           dart.assert(conn[_isClosing]);
           result.closing = dart.notNull(result.closing) + 1;
         }
-      }, _HttpConnectionTovoid()));
+      }, _HttpConnectionToNull()));
       this[_idleConnections].forEach(dart.fn(conn => {
         result.idle = dart.notNull(result.idle) + 1;
         dart.assert(conn[_isIdle]);
-      }, _HttpConnectionTovoid()));
+      }, _HttpConnectionToNull()));
       return result;
     }
     get [_serviceTypePath]() {
@@ -45667,7 +45670,7 @@
             dart.throw(new io.HttpException(dart.str`Invalid proxy configuration ${configuration}`));
           }
         }
-      }, StringTovoid$()));
+      }, StringToNull()));
     }
     direct() {
       this.proxies = const$74 || (const$74 = dart.constList([const$73 || (const$73 = dart.const(new io._Proxy.direct()))], io._Proxy));
@@ -46315,7 +46318,7 @@
         if (this[_userOnData] != null) {
           dart.dcall(this[_userOnData], data);
         }
-      }, VoidTovoid$()));
+      }, VoidToNull()));
     }
   };
   io._HttpDetachedStreamSubscription[dart.implements] = () => [StreamSubscriptionOfListOfint()];
@@ -46448,17 +46451,17 @@
       super.new();
       this[_controller$0] = StreamControllerOf_HttpIncoming().new({sync: true, onListen: dart.fn(() => {
           this[_paused] = false;
-        }, VoidTovoid$()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           this[_paused] = true;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           this[_paused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (this[_socketSubscription] != null) {
             this[_socketSubscription].cancel();
           }
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       this[_reset]();
     }
     listen(onData, opts) {
@@ -47078,24 +47081,24 @@
           dart.assert(this[_bodyPaused]);
           this[_bodyPaused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onPause: dart.fn(() => {
+        }, VoidToNull()), onPause: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           dart.assert(!dart.test(this[_bodyPaused]));
           this[_bodyPaused] = true;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onResume: dart.fn(() => {
+        }, VoidToNull()), onResume: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           dart.assert(this[_bodyPaused]);
           this[_bodyPaused] = false;
           this[_pauseStateChanged]();
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           if (!dart.equals(incoming, this[_incoming])) return;
           if (this[_socketSubscription] != null) {
             this[_socketSubscription].cancel();
           }
           this[_closeIncoming](true);
           this[_controller$0].close();
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       incoming = this[_incoming] = new io._HttpIncoming(this[_headers], transferLength, this[_bodyController].stream);
       this[_bodyPaused] = true;
       this[_pauseStateChanged]();
@@ -48719,7 +48722,7 @@
       let completer = async.Completer.new();
       dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secure(io.RawSocket._check(dart.dindex(detachedRaw, 0)), {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), host: host, context: context, onBadCertificate: onBadCertificate}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
         completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return FutureOfSecureSocket()._check(completer.future);
     }
     static secureServer(socket, context, opts) {
@@ -48730,7 +48733,7 @@
       let completer = async.Completer.new();
       dart.dsend(dart.dsend(dart.dsend(socket, _detachRaw), 'then', dart.fn(detachedRaw => io.RawSecureSocket.secureServer(io.RawSocket._check(dart.dindex(detachedRaw, 0)), context, {subscription: async.StreamSubscription._check(dart.dindex(detachedRaw, 1)), bufferedData: bufferedData, requestClientCertificate: requestClientCertificate, requireClientCertificate: requireClientCertificate, supportedProtocols: supportedProtocols}), dynamicToFutureOfRawSecureSocket())), 'then', dart.fn(raw => {
         completer.complete(io.SecureSocket._(io.RawSecureSocket._check(raw)));
-      }, dynamicTodynamic$()));
+      }, dynamicToNull$()));
       return FutureOfSecureSocket()._check(completer.future);
     }
   };
@@ -48886,11 +48889,11 @@
         } else {
           this[_controller$0].add(secureConnection);
         }
-      }, RawSecureSocketToFutureOr())).catchError(dart.fn((e, s) => {
+      }, RawSecureSocketToNull())).catchError(dart.fn((e, s) => {
         if (!dart.test(this[_closed])) {
           this[_controller$0].addError(e, core.StackTrace._check(s));
         }
-      }, dynamicAnddynamicTodynamic$()));
+      }, dynamicAnddynamicToNull()));
     }
     [_onPauseStateChange]() {
       if (dart.test(this[_controller$0].isPaused)) {
@@ -49470,7 +49473,7 @@
             }
           }
           this[_tryFilter]();
-        }, _FilterStatusToFutureOr())).catchError(dart.bind(this, _reportError));
+        }, _FilterStatusToNull())).catchError(dart.bind(this, _reportError));
       }
     }
     [_readSocketOrBufferedData](bytes) {
@@ -50555,7 +50558,7 @@
           completer.completeError(e, s);
         }
 
-      }, ListOfintTovoid$()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
+      }, ListOfintToNull()), {onError: dart.bind(completer, 'completeError'), onDone: dart.bind(completer, 'complete'), cancelOnError: true});
       return completer.future;
     }
     close() {
@@ -51547,9 +51550,9 @@
     bind(stream) {
       stream.listen(dart.fn(request => {
         io._WebSocketTransformerImpl._upgrade(request, this[_protocolSelector], this[_compression]).then(dart.void)(dart.fn(webSocket => this[_controller$0].add(webSocket), WebSocketTovoid())).catchError(dart.bind(this[_controller$0], 'addError'));
-      }, HttpRequestTovoid$()), {onDone: dart.fn(() => {
+      }, HttpRequestToNull()), {onDone: dart.fn(() => {
           this[_controller$0].close();
-        }, VoidTovoid$())});
+        }, VoidToNull())});
       return this[_controller$0].stream;
     }
     static _upgrade(request, _protocolSelector, compression) {
@@ -51588,7 +51591,7 @@
           response.statusCode = io.HttpStatus.INTERNAL_SERVER_ERROR;
           response.close();
           dart.throw(error);
-        }, dynamicTodynamic$())).then(io.WebSocket)(upgrade);
+        }, dynamicToNull$())).then(io.WebSocket)(upgrade);
       } else {
         return FutureOfWebSocket()._check(upgrade(null));
       }
@@ -51618,7 +51621,7 @@
       let isUpgrade = false;
       request.headers._get(io.HttpHeaders.CONNECTION)[dartx.forEach](dart.fn(value => {
         if (value[dartx.toLowerCase]() == "upgrade") isUpgrade = true;
-      }, StringTovoid$()));
+      }, StringToNull()));
       if (!isUpgrade) return false;
       let upgrade = request.headers.value(io.HttpHeaders.UPGRADE);
       if (upgrade == null || upgrade[dartx.toLowerCase]() != "websocket") {
@@ -51813,7 +51816,7 @@
     addFrame(opcode, data) {
       return io._WebSocketOutgoingTransformer.createFrame(opcode, data, this.webSocket[_serverSide], this[_deflateHelper] != null && (opcode == io._WebSocketOpcode.TEXT || opcode == io._WebSocketOpcode.BINARY))[dartx.forEach](dart.fn(e => {
         this[_eventSink$].add(e);
-      }, ListOfintTovoid$()));
+      }, ListOfintToNull()));
     }
     static createFrame(opcode, data, serverSide, compressed) {
       let mask = !dart.test(serverSide);
@@ -51959,7 +51962,7 @@
       this.socket.addStream(stream).then(dart.dynamic)(dart.fn(_ => {
         this[_done$]();
         this[_closeCompleter].complete(this.webSocket);
-      }, dynamicToFutureOr$()), {onError: dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
           this[_closed] = true;
           this[_cancel$]();
           if (core.ArgumentError.is(error)) {
@@ -51970,7 +51973,7 @@
             this[_done$]();
             this[_closeCompleter].complete(this.webSocket);
           }
-        }, dynamicAndStackTraceTodynamic())});
+        }, dynamicAndStackTraceToNull())});
     }
     [_done$](error, stackTrace) {
       if (error === void 0) error = null;
@@ -51993,7 +51996,7 @@
       this[_completer] = async.Completer.new();
       this[_subscription$] = stream.listen(dart.fn(data => {
         this[_controller$0].add(data);
-      }, dynamicTovoid$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
+      }, dynamicToNull$()), {onDone: dart.bind(this, _done$), onError: dart.bind(this, _done$), cancelOnError: true});
       if (dart.test(this[_issuedPause])) {
         this[_subscription$].pause();
         this[_issuedPause] = false;
@@ -52004,7 +52007,7 @@
       this[_ensureController]();
       const closeSocket = (function() {
         return this.socket.close().catchError(dart.fn(_ => {
-        }, dynamicTodynamic$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
+        }, dynamicToNull$())).then(io._WebSocketImpl)(dart.fn(_ => this.webSocket, dynamicTo_WebSocketImpl()));
       }).bind(this);
       dart.fn(closeSocket, VoidToFuture());
       this[_controller$0].close();
@@ -52095,7 +52098,7 @@
         function error(message) {
           response.detachSocket().then(dart.dynamic)(dart.fn(socket => {
             socket.destroy();
-          }, SocketToFutureOr()));
+          }, SocketToNull()));
           dart.throw(new io.WebSocketException(message));
         }
         dart.fn(error, StringTovoid$());
@@ -52178,7 +52181,7 @@
         } else {
           this[_controller$0].add(data);
         }
-      }, dynamicTodynamic$()), {onError: dart.fn((error, stackTrace) => {
+      }, dynamicToNull$()), {onError: dart.fn((error, stackTrace) => {
           if (this[_closeTimer] != null) this[_closeTimer].cancel();
           if (core.FormatException.is(error)) {
             this[_close$0](io.WebSocketStatus.INVALID_FRAME_PAYLOAD_DATA);
@@ -52188,7 +52191,7 @@
           this[_closeCode] = this[_outCloseCode];
           this[_closeReason] = this[_outCloseReason];
           this[_controller$0].close();
-        }, dynamicAnddynamicTodynamic$()), onDone: dart.fn(() => {
+        }, dynamicAnddynamicToNull()), onDone: dart.fn(() => {
           if (this[_closeTimer] != null) this[_closeTimer].cancel();
           if (this[_readyState] == io.WebSocket.OPEN) {
             this[_readyState] = io.WebSocket.CLOSING;
@@ -52202,12 +52205,12 @@
           this[_closeCode] = transformer.closeCode;
           this[_closeReason] = transformer.closeReason;
           this[_controller$0].close();
-        }, VoidTodynamic$()), cancelOnError: true}));
+        }, VoidToNull()), cancelOnError: true}));
       this[_subscription$].pause();
       this[_controller$0] = async.StreamController.new({sync: true, onListen: dart.bind(this[_subscription$], 'resume'), onCancel: dart.fn(() => {
           this[_subscription$].cancel();
           this[_subscription$] = null;
-        }, VoidTodynamic$()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
+        }, VoidToNull()), onPause: dart.bind(this[_subscription$], 'pause'), onResume: dart.bind(this[_subscription$], 'resume')});
       io._WebSocketImpl._webSockets[dartx._set](this[_serviceId], this);
       try {
         dart.dput(this[_socket], _owner, this);
@@ -52234,8 +52237,8 @@
         this[_consumer].add(new io._WebSocketPing());
         this[_pingTimer] = async.Timer.new(this[_pingInterval], dart.fn(() => {
           this[_close$0](io.WebSocketStatus.GOING_AWAY);
-        }, VoidTovoid$()));
-      }, VoidTovoid$()));
+        }, VoidToNull()));
+      }, VoidToNull()));
     }
     get readyState() {
       return this[_readyState];
@@ -52283,7 +52286,7 @@
             if (this[_subscription$] != null) this[_subscription$].cancel();
             this[_controller$0].close();
             io._WebSocketImpl._webSockets[dartx.remove](this[_serviceId]);
-          }, VoidTovoid$()));
+          }, VoidToNull()));
         }
       }
       return this[_sink$0].close();
@@ -52523,11 +52526,11 @@
       controller = async.StreamController.broadcast({sync: true, onListen: dart.fn(() => {
           port = isolate.RawReceivePort.new(handleError);
           this.addErrorListener(port.sendPort);
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+        }, VoidToNull()), onCancel: dart.fn(() => {
           this.removeErrorListener(port.sendPort);
           port.close();
           port = null;
-        }, VoidTovoid$())});
+        }, VoidToNull())});
       return controller.stream;
     }
   };
@@ -54792,7 +54795,7 @@
         let completer = CompleterOfIdbFactory().sync();
         request[dartx.onSuccess].listen(dart.fn(e => {
           completer.complete(this);
-        }, EventTovoid$()));
+        }, EventToNull()));
         request[dartx.onError].listen(dart.bind(completer, 'completeError'));
         return completer.future;
       } catch (e) {
@@ -54851,7 +54854,7 @@
       request[dartx.onSuccess].listen(dart.fn(e => {
         let result = indexed_db._cast(T)(request[dartx.result]);
         completer.complete(result);
-      }, EventTovoid$()));
+      }, EventToNull()));
       request[dartx.onError].listen(dart.bind(completer, 'completeError'));
       return completer.future;
     };
@@ -55323,7 +55326,7 @@
               cursor[dartx.next]();
             }
           }
-        }, EventTovoid$()));
+        }, EventToNull()));
         return controller.stream;
       };
     }
@@ -55496,15 +55499,15 @@
       let completer = CompleterOfDatabase().new();
       this[dartx.onComplete].first.then(dart.dynamic)(dart.fn(_ => {
         completer.complete(this[dartx.db]);
-      }, EventToFutureOr()));
+      }, EventToNull()));
       this[dartx.onError].first.then(dart.dynamic)(dart.fn(e => {
         completer.completeError(e);
-      }, EventToFutureOr()));
+      }, EventToNull()));
       this[dartx.onAbort].first.then(dart.dynamic)(dart.fn(e => {
         if (!dart.test(completer.isCompleted)) {
           completer.completeError(e);
         }
-      }, EventToFutureOr()));
+      }, EventToNull()));
       return completer.future;
     }
     static _() {
@@ -61641,9 +61644,9 @@
       let completer = CompleterOfFileSystem().new();
       this[_webkitRequestFileSystem](type, size, dart.fn(value => {
         completer.complete(value);
-      }, FileSystemTovoid()), dart.fn(error => {
+      }, FileSystemToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.requestFileSystemSync](...args) {
@@ -61659,9 +61662,9 @@
       let completer = CompleterOfEntry().new();
       this[_webkitResolveLocalFileSystemUrl](url, dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.atob](...args) {
@@ -69301,7 +69304,7 @@
       let completer = CompleterOfString().new();
       this[_getAsString](dart.fn(value => {
         completer.complete(value);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [dartx.getAsEntry](...args) {
@@ -69843,9 +69846,9 @@
       let completer = CompleterOfEntry().new();
       this[_copyTo](parent, {name: name, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_getMetadata](...args) {
@@ -69855,9 +69858,9 @@
       let completer = CompleterOfMetadata().new();
       this[_getMetadata](dart.fn(value => {
         completer.complete(value);
-      }, MetadataTovoid()), dart.fn(error => {
+      }, MetadataToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_getParent](...args) {
@@ -69867,9 +69870,9 @@
       let completer = CompleterOfEntry().new();
       this[_getParent](dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_moveTo](...args) {
@@ -69880,9 +69883,9 @@
       let completer = CompleterOfEntry().new();
       this[_moveTo](parent, {name: name, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_remove$](...args) {
@@ -69892,9 +69895,9 @@
       let completer = async.Completer.new();
       this[_remove$](dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.toUrl](...args) {
@@ -69993,9 +69996,9 @@
       let completer = CompleterOfEntry().new();
       this[__getDirectory](path, {options: options, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [__getFile](path, opts) {
@@ -70037,9 +70040,9 @@
       let completer = CompleterOfEntry().new();
       this[__getFile](path, {options: options, successCallback: dart.fn(value => {
           completer.complete(value);
-        }, EntryTovoid()), errorCallback: dart.fn(error => {
+        }, EntryToNull()), errorCallback: dart.fn(error => {
           completer.completeError(error);
-        }, FileErrorTovoid())});
+        }, FileErrorToNull())});
       return completer.future;
     }
     [_removeRecursively](...args) {
@@ -70049,9 +70052,9 @@
       let completer = async.Completer.new();
       this[_removeRecursively](dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -70095,9 +70098,9 @@
       let completer = CompleterOfListOfEntry().new();
       this[_readEntries](dart.fn(value => {
         completer.complete(value);
-      }, ListOfEntryTovoid()), dart.fn(error => {
+      }, ListOfEntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -73479,9 +73482,9 @@
       let completer = CompleterOfFileWriter().new();
       this[_createWriter](dart.fn(value => {
         completer.complete(value);
-      }, FileWriterTovoid()), dart.fn(error => {
+      }, FileWriterToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_file$](...args) {
@@ -73491,9 +73494,9 @@
       let completer = CompleterOfFile$().new();
       this[_file$](dart.fn(value => {
         completer.complete(value);
-      }, FileTovoid()), dart.fn(error => {
+      }, FileToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
   };
@@ -74557,9 +74560,9 @@
       try {
         this[_getCurrentPosition](dart.fn(position => {
           completer.complete(this[_ensurePosition](position));
-        }, GeopositionTovoid()), dart.fn(error => {
+        }, GeopositionToNull()), dart.fn(error => {
           completer.completeError(error);
-        }, PositionErrorTovoid()), options);
+        }, PositionErrorToNull()), options);
       } catch (e) {
         let stacktrace = dart.stackTrace(e);
         completer.completeError(e, stacktrace);
@@ -74587,13 +74590,13 @@
           dart.assert(watchId == null);
           watchId = this[_watchPosition](dart.fn(position => {
             controller.add(this[_ensurePosition](position));
-          }, GeopositionTovoid()), dart.fn(error => {
+          }, GeopositionToNull()), dart.fn(error => {
             controller.addError(error);
-          }, PositionErrorTovoid()), options);
-        }, VoidTovoid$()), onCancel: dart.fn(() => {
+          }, PositionErrorToNull()), options);
+        }, VoidToNull()), onCancel: dart.fn(() => {
           dart.assert(watchId != null);
           this[_clearWatch](watchId);
-        }, VoidTodynamic$())});
+        }, VoidToNull())});
       return controller.stream;
     }
     [_ensurePosition](domPosition) {
@@ -75997,7 +76000,7 @@
       let parts = [];
       data[dartx.forEach](dart.fn((key, value) => {
         parts[dartx.add](dart.str`${core.Uri.encodeQueryComponent(key)}=` + dart.str`${core.Uri.encodeQueryComponent(value)}`);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       let formData = parts[dartx.join]('&');
       if (requestHeaders == null) {
         requestHeaders = dart.map({}, core.String, core.String);
@@ -76031,7 +76034,7 @@
       if (requestHeaders != null) {
         requestHeaders[dartx.forEach](dart.fn((header, value) => {
           xhr[dartx.setRequestHeader](header, value);
-        }, StringAndStringTovoid$()));
+        }, StringAndStringToNull()));
       }
       if (onProgress != null) {
         xhr[dartx.onProgress].listen(onProgress);
@@ -76046,7 +76049,7 @@
         } else {
           completer.completeError(e);
         }
-      }, ProgressEventTovoid$()));
+      }, ProgressEventToNull()));
       xhr[dartx.onError].listen(dart.bind(completer, 'completeError'));
       if (sendData != null) {
         xhr[dartx.send](sendData);
@@ -76083,13 +76086,13 @@
       }
       let xhr = new XDomainRequest();
       xhr.open(method, url);
-      xhr.onload = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+      xhr.onload = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
         let response = xhr.responseText;
         completer.complete(response);
-      }, dynamicTodynamic$()), 1);
-      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicTodynamic())(dart.fn(e => {
+      }, dynamicToNull$()), 1);
+      xhr.onerror = _js_helper.convertDartClosureToJS(dynamicToNull())(dart.fn(e => {
         completer.completeError(e);
-      }, dynamicTodynamic$()), 1);
+      }, dynamicToNull$()), 1);
       xhr.onprogress = {};
       xhr.ontimeout = {};
       xhr.timeout = Number.MAX_VALUE;
@@ -79966,7 +79969,7 @@
       let completer = CompleterOfListOfSourceInfo().new();
       html$.MediaStreamTrack._getSources(dart.fn(value => {
         completer.complete(value);
-      }, ListOfSourceInfoTovoid()));
+      }, ListOfSourceInfoToNull()));
       return completer.future;
     }
     [dartx.stop](...args) {
@@ -81187,7 +81190,7 @@
       function override(key, value) {
         if (value != null) html$.MutationObserver._add(parsedOptions, core.String._check(key), value);
       }
-      dart.fn(override, dynamicAnddynamicTodynamic$());
+      dart.fn(override, dynamicAnddynamicToNull());
       override('childList', childList);
       override('attributes', attributes);
       override('characterData', characterData);
@@ -81353,9 +81356,9 @@
       this[_ensureGetUserMedia]();
       this[_getUserMedia](html_common.convertDartToNative_SerializedScriptValue(options), dart.fn(stream => {
         completer.complete(stream);
-      }, MediaStreamTovoid()), dart.fn(error => {
+      }, MediaStreamToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, NavigatorUserMediaErrorTovoid()));
+      }, NavigatorUserMediaErrorToNull()));
       return completer.future;
     }
     [_ensureGetUserMedia]() {
@@ -82227,7 +82230,7 @@
       let completer = CompleterOfString().new();
       html$.Notification._requestPermission(dart.fn(value => {
         completer.complete(value);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     get [dartx.onClick]() {
@@ -85242,9 +85245,9 @@
       let completer = CompleterOfRtcSessionDescription().new();
       this[_createOffer](dart.fn(value => {
         completer.complete(value);
-      }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+      }, RtcSessionDescriptionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()), mediaConstraints);
+      }, StringToNull()), mediaConstraints);
       return completer.future;
     }
     [dartx.createAnswer](mediaConstraints) {
@@ -85252,16 +85255,16 @@
       let completer = CompleterOfRtcSessionDescription().new();
       this[_createAnswer](dart.fn(value => {
         completer.complete(value);
-      }, RtcSessionDescriptionTovoid()), dart.fn(error => {
+      }, RtcSessionDescriptionToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()), mediaConstraints);
+      }, StringToNull()), mediaConstraints);
       return completer.future;
     }
     [dartx.getStats](selector) {
       let completer = CompleterOfRtcStatsResponse().new();
       this[_getStats](dart.fn(value => {
         completer.complete(value);
-      }, RtcStatsResponseTovoid()), selector);
+      }, RtcStatsResponseToNull()), selector);
       return completer.future;
     }
     static _() {
@@ -85377,9 +85380,9 @@
       let completer = async.Completer.new();
       this[_setLocalDescription](description, dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [_setRemoteDescription](...args) {
@@ -85389,9 +85392,9 @@
       let completer = async.Completer.new();
       this[_setRemoteDescription](description, dart.fn(() => {
         completer.complete();
-      }, VoidTovoid$()), dart.fn(error => {
+      }, VoidToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, StringTovoid$()));
+      }, StringToNull()));
       return completer.future;
     }
     [dartx.updateIce](configuration, mediaConstraints) {
@@ -88209,7 +88212,7 @@
     [dartx.addAll](other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this[dartx._set](k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     [dartx.containsValue](value) {
       return this[dartx.values][dartx.any](dart.fn(e => dart.equals(e, value), StringTobool$()));
@@ -92045,7 +92048,7 @@
       let completer = CompleterOfnum().sync();
       this[dartx.requestAnimationFrame](dart.fn(time => {
         completer.complete(time);
-      }, numTovoid()));
+      }, numToNull()));
       return completer.future;
     }
     get [dartx.document]() {
@@ -92500,9 +92503,9 @@
       let completer = CompleterOfFileSystem().new();
       this[__requestFileSystem](type, size, dart.fn(value => {
         completer.complete(value);
-      }, FileSystemTovoid()), dart.fn(error => {
+      }, FileSystemToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [_resolveLocalFileSystemUrl](...args) {
@@ -92512,9 +92515,9 @@
       let completer = CompleterOfEntry().new();
       this[_resolveLocalFileSystemUrl](url, dart.fn(value => {
         completer.complete(value);
-      }, EntryTovoid()), dart.fn(error => {
+      }, EntryToNull()), dart.fn(error => {
         completer.completeError(error);
-      }, FileErrorTovoid()));
+      }, FileErrorToNull()));
       return completer.future;
     }
     [dartx.atob](...args) {
@@ -93204,7 +93207,7 @@
       stream.listen(dart.fn(event => {
         let wrapped = new html$._BeforeUnloadEvent(event);
         controller.add(wrapped);
-      }, BeforeUnloadEventTovoid()));
+      }, BeforeUnloadEventToNull()));
       return controller.stream;
     }
     getEventType(target) {
@@ -94910,7 +94913,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this._set(k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     containsValue(value) {
       for (let v of this.values) {
@@ -95097,7 +95100,7 @@
     addAll(other) {
       other[dartx.forEach](dart.fn((k, v) => {
         this._set(k, v);
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     containsValue(value) {
       return this.values[dartx.any](dart.fn(v => dart.equals(v, value), StringTobool$()));
@@ -95128,7 +95131,7 @@
         if (dart.test(this[_matches](key))) {
           f(this[_strip](key), value);
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
     }
     get keys() {
       let keys = JSArrayOfString().of([]);
@@ -95136,7 +95139,7 @@
         if (dart.test(this[_matches](key))) {
           keys[dartx.add](this[_strip](key));
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       return keys;
     }
     get values() {
@@ -95145,7 +95148,7 @@
         if (dart.test(this[_matches](key))) {
           values[dartx.add](value);
         }
-      }, StringAndStringTovoid$()));
+      }, StringAndStringToNull()));
       return values;
     }
     get length() {
@@ -98402,7 +98405,7 @@
         if (request[dartx.readyState] == html$.HttpRequest.DONE) {
           onComplete(request);
         }
-      }, ProgressEventTovoid$()));
+      }, ProgressEventToNull()));
       request[dartx.send]();
       return request;
     }
@@ -99148,7 +99151,7 @@
         this.writeSlot(slot, copy);
         e[dartx.forEach](dart.fn((key, value) => {
           this.putIntoMap(copy, key, this.walk(value));
-        }, dynamicAnddynamicTovoid$()));
+        }, dynamicAnddynamicToNull()));
         return copy;
       }
       if (core.List.is(e)) {
@@ -99357,7 +99360,7 @@
     }
     dict[dartx.forEach](dart.fn((key, value) => {
       object[key] = value;
-    }, StringAnddynamicTovoid()));
+    }, StringAnddynamicToNull()));
     return object;
   };
   dart.fn(html_common.convertDartToNative_Dictionary, Map__Todynamic());
@@ -99382,7 +99385,7 @@
     let mustCopy = opts && 'mustCopy' in opts ? opts.mustCopy : false;
     return new html_common._AcceptStructuredCloneDart2Js().convertNativeToDart_AcceptStructuredClone(object, {mustCopy: mustCopy});
   };
-  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic$0());
+  dart.fn(html_common.convertNativeToDart_AcceptStructuredClone, dynamic__Todynamic());
   html_common._StructuredCloneDart2Js = class _StructuredCloneDart2Js extends html_common._StructuredClone {
     new() {
       super.new();
@@ -107353,13 +107356,13 @@
       let completer = CompleterOfAudioBuffer().new();
       this[_decodeAudioData](audioData, dart.fn(value => {
         completer.complete(value);
-      }, AudioBufferTovoid()), dart.fn(error => {
+      }, AudioBufferToNull()), dart.fn(error => {
         if (error == null) {
           completer.completeError('');
         } else {
           completer.completeError(error);
         }
-      }, AudioBufferTovoid()));
+      }, AudioBufferToNull()));
       return completer.future;
     }
   };
diff --git a/pkg/dev_compiler/test/browser/runtime_tests.js b/pkg/dev_compiler/test/browser/runtime_tests.js
index 39d9a53..3cb562a 100644
--- a/pkg/dev_compiler/test/browser/runtime_tests.js
+++ b/pkg/dev_compiler/test/browser/runtime_tests.js
@@ -4,6 +4,7 @@
 
 define(['dart_sdk'], function(dart_sdk) {
   const assert = chai.assert;
+  const async = dart_sdk.async;
   const core = dart_sdk.core;
   const collection = dart_sdk.collection;
   const dart = dart_sdk.dart;
@@ -211,10 +212,13 @@
 
     function checkType(x, type, expectedTrue, strongOnly) {
       if (expectedTrue === undefined) expectedTrue = true;
-      if (strongOnly == undefined) strongOnly = false;
+      if (strongOnly === undefined) strongOnly = false;
       if (!strongOnly) {
         assert.doesNotThrow(() => instanceOf(x, type));
-        expect(instanceOf(x, type), expectedTrue);
+        expect(instanceOf(x, type), expectedTrue,
+          '"' + x + '" ' +
+          (expectedTrue ? 'should' : 'should not') +
+          ' be an instance of "' + dart.typeName(type) + '"');
       } else {
         assert.throws(() => instanceOf(x, type), dart.StrongModeError);
         expect(expectedTrue, false);
@@ -801,25 +805,34 @@
     let dyn = dart.dynamic;
 
     function always(t1, t2) {
-      assert.equal(isSubtype(t1, t2), true);
+      assert.equal(isSubtype(t1, t2), true,
+          dart.toString(t1) +
+          " should always be a subtype of " +
+          dart.toString(t2));
     }
     function never(t1, t2) {
-      assert.equal(isSubtype(t1, t2), false);
+      assert.equal(isSubtype(t1, t2), false,
+          dart.toString(t1) +
+          " should never be a subtype of " +
+          dart.toString(t2));
     }
     function maybe(t1, t2) {
-      assert.equal(isSubtype(t1, t2), null);
+      assert.equal(isSubtype(t1, t2), null,
+          dart.toString(t1) +
+          " should maybe be a subtype of " +
+          dart.toString(t2));
     }
 
     function always2(t1, t2) {
-      assert.equal(isSubtype(t1, t2), true);
+      always(t1, t2);
       always(functionType(t1, [t2]), functionType(t2, [t1]));
     }
     function never2(t1, t2) {
-      assert.equal(isSubtype(t1, t2), false);
+      never(t1, t2);
       maybe(functionType(t1, [t2]), functionType(t2, [t1]));
     }
     function maybe2(t1, t2) {
-      assert.equal(isSubtype(t1, t2), null);
+      maybe(t1, t2);
       maybe(functionType(t1, [t2]), functionType(t2, [t1]));
     }
 
@@ -919,6 +932,44 @@
       run_test(func1, func2, func2opt, func1extra, func2extra);
     });
 
+    test('top and bottom types', () => {
+      let FutureOr = async.FutureOr$;
+      let tops = [
+        dart.dynamic,
+        core.Object,
+        dart.void,
+        FutureOr(dart.dynamic),
+        FutureOr(core.Object),
+        FutureOr(dart.void),
+        FutureOr(FutureOr(core.Object)),
+        // ... skip the (infinite) rest of the top types :D
+      ];
+      let bottoms = [dart.bottom, core.Null];
+
+      for (let top of tops) {
+        for (let bottom of bottoms) {
+          always(bottom, top);
+          always(
+              definiteFunctionType(bottom, [top]),
+              definiteFunctionType(top, [bottom]));
+        }
+      }
+
+      for (let equalTypes of [tops, bottoms]) {
+        for (let t1 of equalTypes) {
+          for (let t2 of equalTypes) {
+            always(t1, t2);
+            always(t2, t1);
+
+            let t11 = definiteFunctionType(t1, [t1]);
+            let t22 = definiteFunctionType(t2, [t2]);
+            always(t11, t22);
+            always(t22, t11);
+          }
+        }
+      }
+    });
+
     test('basic typedefs', () => {
       function func1(S) {
         return dart.typedef('Func1', () => functionType(S, []))
@@ -975,7 +1026,6 @@
       always(functionType(dyn, [], [dyn]), functionType(dyn, [dyn]));
       always(functionType(dyn, [], [dyn]), functionType(dyn, []));
       always(functionType(dyn, [dyn], {extra: dyn}), functionType(dyn, [dyn]));
-
     });
 
     test('void function types', () => {
@@ -1020,7 +1070,6 @@
       never(functionType(dart.void, [], [int]), functionType(int, [int]));
       never(functionType(dart.void, [], [int]), functionType(int, []));
       never(functionType(dart.void, [int], {extra: int}), functionType(int, [int]));
-
     });
 
     test('higher-order typedef', () => {
@@ -1060,10 +1109,7 @@
       maybe(AA$(functionType(dyn, [dyn])), AA$(functionType(int, [int])));
       maybe(AA$(functionType(core.Object, [core.Object])),
             AA$(functionType(int, [int])));
-
-
     });
-
   });
 
   suite('canonicalization', function() {
diff --git a/pkg/dev_compiler/test/codegen_expected/BenchmarkBase.js b/pkg/dev_compiler/test/codegen_expected/BenchmarkBase.js
index 48a5eb6..d303d7d 100644
--- a/pkg/dev_compiler/test/codegen_expected/BenchmarkBase.js
+++ b/pkg/dev_compiler/test/codegen_expected/BenchmarkBase.js
@@ -4,7 +4,7 @@
   const dart = dart_sdk.dart;
   const dartx = dart_sdk.dartx;
   const BenchmarkBase$ = Object.create(null);
-  let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
+  let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
   BenchmarkBase$.Expect = class Expect extends core.Object {
     static equals(expected, actual) {
       if (!dart.equals(expected, actual)) {
@@ -63,10 +63,10 @@
       this.setup();
       BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => {
         this.warmup();
-      }, VoidTodynamic()), 100);
+      }, VoidToNull()), 100);
       let result = BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => {
         this.exercise();
-      }, VoidTodynamic()), 2000);
+      }, VoidToNull()), 2000);
       this.teardown();
       return result;
     }
diff --git a/pkg/dev_compiler/test/codegen_expected/closure.js b/pkg/dev_compiler/test/codegen_expected/closure.js
index 698b90f..3db08c0 100644
--- a/pkg/dev_compiler/test/codegen_expected/closure.js
+++ b/pkg/dev_compiler/test/codegen_expected/closure.js
@@ -10,7 +10,7 @@
 let Foo = () => (Foo = dart.constFn(closure.Foo$()))();
 let ListOfTAndTToListOfT = () => (ListOfTAndTToListOfT = dart.constFn(dart.definiteFunctionType(T => [core.List$(T), [core.List$(T), T]])))();
 let dynamicTovoid = () => (dynamicTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [dart.dynamic])))();
-let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
+let VoidToNull = () => (VoidToNull = dart.constFn(dart.definiteFunctionType(core.Null, [])))();
 closure.generic_function = function(T) {
   return (items: core.List<T>, seed: T): core.List<T> => {
     let strings = items[dartx.map](core.String)(dart.fn((i: T): string => dart.str`${i}`, dart.definiteFunctionType(core.String, [T])))[dartx.toList]();
@@ -119,9 +119,9 @@
 dart.fn(closure.main, dynamicTovoid());
 dart.defineLazy(closure, {
   get closure() {
-    return dart.fn(() => {
+    return dart.fn((): core.Null => {
       return;
-    }, VoidTodynamic());
+    }, VoidToNull());
   },
   set closure(_) {}
 });
diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
index 5975ddc..69b01a5 100644
--- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
+++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/operations.dart
@@ -456,6 +456,9 @@
 instanceOf(obj, type) => JS(
     '',
     '''(() => {
+  if ($obj == null) {
+    return $type == $Null || $_isTop($type);
+  }
   let result = $strongInstanceOf($obj, $type);
   if (result !== null) return result;
   let actual = $getReifiedType($obj);
diff --git a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart
index abc476d..e64daf7 100644
--- a/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart
+++ b/pkg/dev_compiler/tool/input_sdk/private/ddc_runtime/types.dart
@@ -656,15 +656,9 @@
   // Check return type last, so that arity mismatched functions can be
   // definitively rejected.
 
-  // We allow any type to subtype a void return type, but not vice versa
-  if (ret2 === $_void) return true;
-  // Dart allows void functions to subtype dynamic functions, but not
-  // other functions.
-  // TODO(jmesserly): this check does not match our compile time subtype
-  // implementation. Reconcile.
-  if (ret1 === $_void) {
-    return ret2 === $dynamic || ret2 === $FutureOr;
-  }
+  // For `void` we will give the same answer as the VM, so don't return null.
+  if (ret1 === $_void) return $_isTop(ret2);
+
   if (!$_isSubtype(ret1, ret2, $isCovariant)) return null;
   return true;
 })()''');
@@ -698,13 +692,14 @@
 final isSubtype = JS(
     '', '$_subtypeMemo((t1, t2) => (t1 === t2) || $_isSubtype(t1, t2, true))');
 
-_isBottom(type) => JS('bool', '# == #', type, bottom);
+_isBottom(type) => JS('bool', '# == # || # == #', type, bottom, type, Null);
 
 _isTop(type) {
   if (JS('bool', '# === #', getGenericClass(type), getGenericClass(FutureOr))) {
     return _isTop(JS('', '#[0]', getGenericArgs(type)));
   }
-  return JS('bool', '# == # || # == #', type, Object, type, dynamic);
+  return JS('bool', '# == # || # == # || # == #',
+      type, Object, type, dynamic, type, _void);
 }
 
 _isSubtype(t1, t2, isCovariant) => JS(
diff --git a/pkg/dev_compiler/tool/sdk_expected_errors.txt b/pkg/dev_compiler/tool/sdk_expected_errors.txt
index b60c5bd..381ac61 100644
--- a/pkg/dev_compiler/tool/sdk_expected_errors.txt
+++ b/pkg/dev_compiler/tool/sdk_expected_errors.txt
@@ -13,7 +13,6 @@
 [error] Couldn't infer type parameter 'S'; 'RandomAccessFile' must be of type 'File'. (dart:io/file_impl.dart, line 216, col 19)
 [error] The argument type '(RandomAccessFile) → Future<RandomAccessFile>' can't be assigned to the parameter type '(RandomAccessFile) → FutureOr<File>'. (dart:io/file_impl.dart, line 216, col 24)
 [error] The return type 'Future' isn't a 'FutureOr<File>', as defined by the method ''. (dart:io/file_impl.dart, line 545, col 14)
-[error] The argument type '([dynamic]) → void' can't be assigned to the parameter type '(_ConnectionInfo) → FutureOr<void>'. (dart:io/http_impl.dart, line 1633, col 19)
 [error] The return type 'StreamSubscription<int>' isn't a 'StreamSubscription<List<int>>', as defined by the method 'listen'. (dart:io/http_parser.dart, line 208, col 14)
 [error] The argument type '(List<int>) → void' can't be assigned to the parameter type '(int) → void'. (dart:io/http_parser.dart, line 209, col 19)
 [error] Couldn't infer type parameter 'V'; 'Object' must be of type 'String'. (dart:io/io_resource_info.dart, line 27, col 7)
@@ -29,7 +28,6 @@
 [error] Couldn't infer type parameter 'V'; 'Object' must be of type 'String'. (dart:io/io_resource_info.dart, line 159, col 5)
 [error] The element type 'int' can't be assigned to the map value type 'String'. (dart:io/io_resource_info.dart, line 161, col 13)
 [error] The element type 'double' can't be assigned to the map value type 'String'. (dart:io/io_resource_info.dart, line 164, col 20)
-[error] The argument type '([dynamic]) → void' can't be assigned to the parameter type '(RawSocket) → FutureOr<void>'. (dart:io/secure_socket.dart, line 591, col 28)
 [error] The argument type 'List' can't be assigned to the parameter type 'Iterable<int>'. (dart:io/secure_socket.dart, line 1129, col 23)
 [error] Undefined name 'lineMode'. (dart:io/stdio.dart, line 64, col 10)
 [error] The name 'echoMode=' is already defined. (dart:io/stdio.dart, line 126, col 12)
@@ -77,18 +75,13 @@
 [warning] Unsafe implicit cast from '(T) → void' to '(Event) → dynamic'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:html, line 40126, col 45)
 [warning] Unsafe implicit cast from 'List<dynamic>' to 'List<int>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/data_transformer.dart, line 492, col 23)
 [warning] Unsafe implicit cast from 'Stream<dynamic>' to 'Stream<FileSystemEntity>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/directory_impl.dart, line 239, col 12)
-[warning] Missing return value after 'return'. (dart:io/directory_impl.dart, line 394, col 15)
-[warning] Missing return value after 'return'. (dart:io/file_impl.dart, line 101, col 11)
 [warning] Unsafe implicit cast from 'Future<dynamic>' to 'Future<List<int>>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/file_impl.dart, line 484, col 14)
 [warning] Unsafe implicit cast from 'List<dynamic>' to 'List<int>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/file_impl.dart, line 831, col 33)
 [warning] Unsafe implicit cast from 'StreamSubscription<dynamic>' to 'StreamSubscription<List<int>>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_impl.dart, line 269, col 14)
 [warning] Unsafe implicit cast from 'Stream<dynamic>' to 'Stream<List<int>>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_impl.dart, line 1056, col 29)
 [warning] Unsafe implicit cast from 'Function' to '(List<int>) → void'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_impl.dart, line 1173, col 54)
 [warning] Unsafe implicit cast from 'Function' to '(List<int>) → void'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_impl.dart, line 1175, col 33)
-[warning] Missing return value after 'return'. (dart:io/http_impl.dart, line 1401, col 21)
-[warning] Missing return value after 'return'. (dart:io/http_impl.dart, line 1403, col 31)
 [warning] Unsafe implicit cast from 'Future<dynamic>' to 'Future<_ConnectionInfo>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_impl.dart, line 1635, col 14)
-[warning] Missing return value after 'return'. (dart:io/http_impl.dart, line 2111, col 42)
 [warning] Unsafe implicit cast from 'StreamSubscription<dynamic>' to 'StreamSubscription<List<int>>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_parser.dart, line 201, col 16)
 [warning] Unsafe implicit cast from 'StreamSubscription<dynamic>' to 'StreamSubscription<List<int>>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/http_parser.dart, line 203, col 50)
 [warning] Unsafe implicit cast from 'Map<dynamic, dynamic>' to 'Map<String, String>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/platform_impl.dart, line 100, col 69)
@@ -96,9 +89,6 @@
 [warning] Unsafe implicit cast from 'Future<dynamic>' to 'Future<SecureSocket>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/secure_socket.dart, line 138, col 12)
 [warning] Unsafe implicit cast from 'StreamSubscription<dynamic>' to 'StreamSubscription<RawSocketEvent>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/secure_socket.dart, line 446, col 33)
 [warning] Unsafe implicit cast from 'Future<dynamic>' to 'Future<RawSecureSocket>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/secure_socket.dart, line 580, col 12)
-[warning] Missing return value after 'return'. (dart:io/secure_socket.dart, line 861, col 11)
-[warning] Missing return value after 'return'. (dart:io/secure_socket.dart, line 868, col 13)
-[warning] Missing return value after 'return'. (dart:io/secure_socket.dart, line 882, col 11)
 [warning] Unsafe implicit cast from 'List<dynamic>' to 'List<int>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/secure_socket.dart, line 1176, col 32)
 [warning] Unsafe implicit cast from 'List<dynamic>' to 'List<int>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/stdio.dart, line 109, col 28)
 [warning] Unsafe implicit cast from 'Future<dynamic>' to 'Future<WebSocket>'. This usually indicates that type information was lost and resulted in 'dynamic' and/or a place that will have a failure at runtime. (dart:io/websocket_impl.dart, line 471, col 14)
diff --git a/tests/lib_strong/collection/hash_map_test.dart b/tests/lib_strong/collection/hash_map_test.dart
index f0f1d54..5a6b52e9 100644
--- a/tests/lib_strong/collection/hash_map_test.dart
+++ b/tests/lib_strong/collection/hash_map_test.dart
@@ -9,8 +9,8 @@
   // Test customized maps.
   // Regression test for issue http://dartbug.com/18109
 
-  hash(s) => s.toLowerCase().hashCode;
-  equals(a, b) => a.toLowerCase() == b.toLowerCase();
+  int hash(s) => s.toLowerCase().hashCode;
+  bool equals(a, b) => a.toLowerCase() == b.toLowerCase();
 
   for (var m in [
     new HashMap<String,int>(equals: equals, hashCode: hash),
@@ -25,8 +25,8 @@
     }
   }
 
-  abshash(n) => n.abs();
-  abseq(a, b) => a.abs() == b.abs();
+  int abshash(n) => n.abs();
+  bool abseq(a, b) => a.abs() == b.abs();
   for (var m in [
     new HashMap<int,int>(equals: abseq, hashCode: abshash),
     new LinkedHashMap<int,int>(equals: abseq, hashCode: abshash),
diff --git a/tests/lib_strong/collection/hash_set_test.dart b/tests/lib_strong/collection/hash_set_test.dart
index ab03284..c8ede1f 100644
--- a/tests/lib_strong/collection/hash_set_test.dart
+++ b/tests/lib_strong/collection/hash_set_test.dart
@@ -9,8 +9,8 @@
   // Test customized sets.
   // Regression test for issue http://dartbug.com/18109
 
-  hash(s) => s.toLowerCase().hashCode;
-  equals(a, b) => a.toLowerCase() == b.toLowerCase();
+  int hash(s) => s.toLowerCase().hashCode;
+  bool equals(a, b) => a.toLowerCase() == b.toLowerCase();
 
   for (var m in [
     new HashSet<String>(equals: equals, hashCode: hash),
@@ -27,8 +27,8 @@
     }
   }
 
-  abshash(n) => n.abs();
-  abseq(a, b) => a.abs() == b.abs();
+  int abshash(n) => n.abs();
+  bool abseq(a, b) => a.abs() == b.abs();
   for (var m in [
     new HashSet<int>(equals: abseq, hashCode: abshash),
     new LinkedHashSet<int>(equals: abseq, hashCode: abshash),
diff --git a/tools/VERSION b/tools/VERSION
index 130540a..790d464 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 22
 PATCH 0
 PRERELEASE 10
-PRERELEASE_PATCH 4
+PRERELEASE_PATCH 5