diff --git a/runtime/bin/builtin.dart b/runtime/bin/builtin.dart
index 27d751a..d8c586c 100644
--- a/runtime/bin/builtin.dart
+++ b/runtime/bin/builtin.dart
@@ -350,7 +350,7 @@
   _finishedOneLoadRequest(uri);
 }
 
-void _asyncLoadError(int tag, String uri, String libraryUri, LoadError error) {
+void _asyncLoadError(tag, uri, libraryUri, error) {
   if (_logBuiltin) {
     _print("_asyncLoadError($uri), error: $error");
   }
@@ -359,7 +359,7 @@
     // uri.
     libraryUri = uri;
   }
-  _asyncLoadErrorCallback(uri, libraryUri, error);
+  _asyncLoadErrorCallback(uri, libraryUri, new LoadError(error.toString()));
   _finishedOneLoadRequest(uri);
 }
 
@@ -373,15 +373,10 @@
     if (dataOrError is List<int>) {
       _loadScript(tag, uri, libraryUri, dataOrError);
     } else {
-      assert(dataOrError is String);
-      var error = new LoadError(dataOrError.toString());
-      _asyncLoadError(tag, uri, libraryUri, error);
+      _asyncLoadError(tag, uri, libraryUri, dataOrError);
     }
   }).catchError((e) {
-    // Wrap inside a LoadError unless we are already propagating a previously
-    // seen LoadError.
-    var error = (e is LoadError) ? e : new LoadError(e.toString);
-    _asyncLoadError(tag, uri, libraryUri, error);
+    _asyncLoadError(tag, uri, libraryUri, e.toString());
   });
 
   try {
@@ -392,10 +387,7 @@
     if (_logBuiltin) {
       _print("Exception when communicating with service isolate: $e");
     }
-    // Wrap inside a LoadError unless we are already propagating a previously
-    // seen LoadError.
-    var error = (e is LoadError) ? e : new LoadError(e.toString);
-    _asyncLoadError(tag, uri, libraryUri, error);
+    _asyncLoadError(tag, uri, libraryUri, e.toString());
     receivePort.close();
   }
 }
diff --git a/tests/language/language.status b/tests/language/language.status
index a4b2459..60eafb7 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -41,11 +41,6 @@
 cyclic_type2_test: Fail, OK
 least_upper_bound_expansive_test/*: Fail, OK
 
-[ $compiler == none || ($compiler == dart2dart && $builder_tag != new_backend) ]
-async_throw_in_catch_test: Crash, RuntimeError # Issue 21404 or it could be a test error
-
-[ $compiler == none && ($runtime == drt || $runtime == dartium|| $runtime == ContentShellOnAndroid) ]
-
 [ $compiler == none && $runtime == vm ]
 class_keyword_test/02: MissingCompileTimeError # Issue 13627
 unicode_bom_test: Fail # Issue 16067
diff --git a/tools/VERSION b/tools/VERSION
index db3bd8d..26e0d2a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -28,4 +28,4 @@
 MINOR 9
 PATCH 0
 PRERELEASE 10
-PRERELEASE_PATCH 8
+PRERELEASE_PATCH 9
