Version 2.10.0-145.0.dev

Merge commit 'eac07c1770d2ea1ef4af58a537f9208321fdcca7' into 'dev'
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"