diff --git a/DEPS b/DEPS
index 43df7a6..d96c4d0 100644
--- a/DEPS
+++ b/DEPS
@@ -39,7 +39,7 @@
 
   # Checked-in SDK version. The checked-in SDK is a Dart SDK distribution in a
   # cipd package used to run Dart scripts in the build and test infrastructure.
-  "sdk_tag": "version:2.10.0-79.0.dev",
+  "sdk_tag": "version:2.10.0-110.3.beta",
 
   # co19 is a cipd package. Use update.sh in tests/co19[_2] to update these
   # hashes. It requires access to the dart-build-access group, which EngProd
diff --git a/runtime/vm/type_testing_stubs.cc b/runtime/vm/type_testing_stubs.cc
index c68f655..90b40a3 100644
--- a/runtime/vm/type_testing_stubs.cc
+++ b/runtime/vm/type_testing_stubs.cc
@@ -23,7 +23,6 @@
     : lib_(Library::Handle()),
       klass_(Class::Handle()),
       type_(AbstractType::Handle()),
-      type_arguments_(TypeArguments::Handle()),
       string_(String::Handle()) {}
 
 const char* TypeTestingStubNamer::StubNameForType(
@@ -56,16 +55,18 @@
         OS::SCreate(Z, "%s_%s", curl, klass_.ScrubbedNameCString()));
 
     const intptr_t type_parameters = klass_.NumTypeParameters();
+    auto& type_arguments = TypeArguments::Handle();
     if (type.arguments() != TypeArguments::null() && type_parameters > 0) {
-      type_arguments_ = type.arguments();
-      ASSERT(type_arguments_.Length() >= type_parameters);
-      const intptr_t length = type_arguments_.Length();
+      type_arguments = type.arguments();
+      ASSERT(type_arguments.Length() >= type_parameters);
+      const intptr_t length = type_arguments.Length();
       for (intptr_t i = 0; i < type_parameters; ++i) {
-        type_ = type_arguments_.TypeAt(length - type_parameters + i);
+        type_ = type_arguments.TypeAt(length - type_parameters + i);
         concatenated =
             OS::SCreate(Z, "%s__%s", concatenated, StringifyType(type_));
       }
     }
+
     return concatenated;
   } else if (type.IsTypeParameter()) {
     string_ = TypeParameter::Cast(type).name();
diff --git a/runtime/vm/type_testing_stubs.h b/runtime/vm/type_testing_stubs.h
index b602c6a..09c6f1d 100644
--- a/runtime/vm/type_testing_stubs.h
+++ b/runtime/vm/type_testing_stubs.h
@@ -32,7 +32,6 @@
   Library& lib_;
   Class& klass_;
   AbstractType& type_;
-  TypeArguments& type_arguments_;
   String& string_;
 };
 
diff --git a/tests/dart2js/async_stacktrace_test.dart b/tests/dart2js/async_stacktrace_test.dart
index fffb946..74a85fd 100644
--- a/tests/dart2js/async_stacktrace_test.dart
+++ b/tests/dart2js/async_stacktrace_test.dart
@@ -26,10 +26,8 @@
   }
 }
 
-Future test1(Tracer tracer) {
-  foo() async
-      * //# asyncStar: ok
-  {
+Future<void> test1(Tracer tracer) {
+  Future<void> foo() async {
     var savedStackTrace;
     try {
       try {
@@ -49,16 +47,36 @@
     tracer.trace("f");
   }
 
-  return foo()
-      .toList() //# asyncStar: continued
-      ;
+  return foo();
 }
 
-Future test2(Tracer tracer) {
+Future<List<void>> test1star(Tracer tracer) {
+  Stream<void> foo() async* {
+    var savedStackTrace;
+    try {
+      try {
+        tracer.trace("a");
+        throw "Error";
+      } catch (e, st) {
+        tracer.trace("b");
+        savedStackTrace = st;
+      }
+      tracer.trace("c");
+      await new Future.error("Error 2", savedStackTrace);
+      tracer.trace("d");
+    } catch (e, st) {
+      tracer.trace("e");
+      Expect.equals(savedStackTrace.toString(), st.toString());
+    }
+    tracer.trace("f");
+  }
+
+  return foo().toList();
+}
+
+Future<void> test2(Tracer tracer) {
   var savedStackTrace;
-  foo() async
-      * //# asyncStar: continued
-  {
+  Future<void> foo() async {
     try {
       tracer.trace("a");
       throw "Error";
@@ -71,19 +89,37 @@
     tracer.trace("d");
   }
 
-  return foo()
-      .toList() //# asyncStar: continued
-      .catchError((e, st) {
+  return foo().catchError((e, st) {
     tracer.trace("e");
     Expect.equals(savedStackTrace.toString(), st.toString());
   });
 }
 
-Future test3(Tracer tracer) {
+Future<List<void>> test2star(Tracer tracer) {
   var savedStackTrace;
-  foo() async
-      * //# asyncStar: continued
-  {
+  Stream<void> foo() async* {
+    try {
+      tracer.trace("a");
+      throw "Error";
+    } catch (e, st) {
+      tracer.trace("b");
+      savedStackTrace = st;
+    }
+    tracer.trace("c");
+    await new Future.error("Error 2", savedStackTrace);
+    tracer.trace("d");
+  }
+
+  return foo().toList().catchError((e, st) {
+    tracer.trace("e");
+    Expect.equals(savedStackTrace.toString(), st.toString());
+    return [];
+  });
+}
+
+Future<void> test3(Tracer tracer) {
+  var savedStackTrace;
+  Future<void> foo() async {
     try {
       tracer.trace("a");
       throw "Error";
@@ -94,14 +130,32 @@
     }
   }
 
-  return foo()
-      .toList() //# asyncStar: continued
-      .catchError((e, st) {
+  return foo().catchError((e, st) {
     tracer.trace("c");
     Expect.equals(savedStackTrace.toString(), st.toString());
   });
 }
 
+Future<List<void>> test3star(Tracer tracer) {
+  var savedStackTrace;
+  Stream<void> foo() async* {
+    try {
+      tracer.trace("a");
+      throw "Error";
+    } catch (e, st) {
+      tracer.trace("b");
+      savedStackTrace = st;
+      rethrow;
+    }
+  }
+
+  return foo().toList().catchError((e, st) {
+    tracer.trace("c");
+    Expect.equals(savedStackTrace.toString(), st.toString());
+    return [];
+  });
+}
+
 runTest(String expectedTrace, Future test(Tracer tracer)) async {
   Tracer tracer = new Tracer(expectedTrace);
   await test(tracer);
@@ -110,8 +164,11 @@
 
 runTests() async {
   await runTest("abcef", test1);
+  await runTest("abcef", test1star);
   await runTest("abce", test2);
+  await runTest("abce", test2star);
   await runTest("abc", test3);
+  await runTest("abc", test3star);
 }
 
 main() {
diff --git a/tests/language/variance/variance_in_inference_error_test.dart b/tests/language/variance/variance_in_inference_error_test.dart
index d73f8b0..34c6fb3 100644
--- a/tests/language/variance/variance_in_inference_error_test.dart
+++ b/tests/language/variance/variance_in_inference_error_test.dart
@@ -47,41 +47,31 @@
   inferCovContra(Covariant<int>(), Contravariant<String>());
 //^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-//                                 ^^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
-// [cfe] The argument type 'Contravariant<String>' can't be assigned to the parameter type 'Contravariant<int>'.
+// [cfe] unspecified
 
   // String <: T <: int is not a valid constraint.
   inferCovContra(Covariant<String>(), Contravariant<int>());
 //^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-//                                    ^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
-// [cfe] The argument type 'Contravariant<int>' can't be assigned to the parameter type 'Contravariant<String>'.
+// [cfe] unspecified
 
   // Middle <: T <: Lower is not a valid constraint
   inferCovContra(Covariant<Middle>(), Contravariant<Lower>());
 //^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-//                                    ^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.INVALID_CAST_NEW_EXPR
-// [cfe] The argument type 'Contravariant<Lower>' can't be assigned to the parameter type 'Contravariant<Middle>'.
+// [cfe] unspecified
 
   // Upper <: T <: Lower is not a valid constraint
   inferCovContra(Covariant<Upper>(), Contravariant<Lower>());
 //^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-//                                   ^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.INVALID_CAST_NEW_EXPR
-// [cfe] The argument type 'Contravariant<Lower>' can't be assigned to the parameter type 'Contravariant<Upper>'.
+// [cfe] unspecified
 
   // Upper <: T <: Middle is not a valid constraint
   inferCovContra(Covariant<Upper>(), Contravariant<Middle>());
 //^^^^^^^^^^^^^^
 // [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-//                                   ^^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.INVALID_CAST_NEW_EXPR
-// [cfe] The argument type 'Contravariant<Middle>' can't be assigned to the parameter type 'Contravariant<Upper>'.
+// [cfe] unspecified
 
   // Inference for Contrabound(...) produces Lower <: T <: Upper.
   // Since T is contravariant, we choose Upper as the solution.
diff --git a/tools/VERSION b/tools/VERSION
index 0010549..6868e51 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 10
 PATCH 0
-PRERELEASE 144
+PRERELEASE 145
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/sdks/README b/tools/sdks/README
index 88e40d8..b7d766a5 100644
--- a/tools/sdks/README
+++ b/tools/sdks/README
@@ -3,9 +3,8 @@
 
 The DEPS use CIPD's ${platform} syntax find the right SDK for the platform.
 
-We are currently using the 32-bit ia32 build as the default on Windows, and the
-64-bit x64 build as the default on Linux and Mac. arm and arm64 CIPD packages
-are used on Linux.
+We use the x64 build as the default on Linux, Mac and Windows. Builds for Linux
+on ARM and ARM64 are also provided.
 
 To upload new versions of these CIPD packages, run "./update.sh" in this
 directory. Because these SDKs are used for the presubmit dartfmt check on
diff --git a/tools/sdks/update.sh b/tools/sdks/update.sh
index dc96ef1..df63b09 100755
--- a/tools/sdks/update.sh
+++ b/tools/sdks/update.sh
@@ -61,9 +61,8 @@
   -ref $channel
 rm -rf sdk
 
-# We currently use the ia32 SDK on x64 Windows as well, see also README.
-gsutil.py cp "gs://dart-archive/channels/$channel/release/$1/sdk/dartsdk-windows-ia32-release.zip" .
-unzip -q dartsdk-windows-ia32-release.zip -d sdk
+gsutil.py cp "gs://dart-archive/channels/$channel/release/$1/sdk/dartsdk-windows-x64-release.zip" .
+unzip -q dartsdk-windows-x64-release.zip -d sdk
 cipd create \
   -name dart/dart-sdk/windows-amd64 \
   -in sdk \
@@ -72,16 +71,6 @@
   -ref $channel
 rm -rf sdk
 
-gsutil.py cp "gs://dart-archive/channels/$channel/release/$1/sdk/dartsdk-windows-ia32-release.zip" .
-unzip -q dartsdk-windows-ia32-release.zip -d sdk
-cipd create \
-  -name dart/dart-sdk/windows-386 \
-  -in sdk \
-  -install-mode copy \
-  -tag version:$1 \
-  -ref $channel
-rm -rf sdk
-
 popd
 
 gclient setdep --var="sdk_tag=version:$1"
